发表于:2010/11/4 11:34:54
#0楼
上月我的“怎样学习plc的应用指令”一文中讲到,绝大多数用户几乎都不会使用某些指令。可以将它们称为plc的“休眠”指令,学习指令时可以暂时不管使用它们的细节。万一在读程序时遇到它们,可以通过指令的在线帮助或查手册来了解它们。
本文介绍几种常见的plc的“休眠”指令。
1. 三菱的fx系列的“休眠”指令
1)程序流控制中的监控定时器刷新指令。
2)bcd码移位传送指令。
3)位右移、位左移、字右移、字左移指令。它们与其他plc以字、双字、字节为单位的移位指令不同。
4)求置on位总数、on位判别指令。
5)矩阵输入、16键输入、数字开关输入、带锁存的7段显示、方向开关、ascii码转换、打印输出。这类指令与plc的数字输入和显示有关,有的是为了节省plc的输入点,有的需要自制印刷电路板,不但麻烦,可靠性也不能保证。现在的人机界面(特别是国产的文本显示器)已经非常便宜,但是功能比这些指令实现的功能强大得多。
6)带加减速功能的脉冲输出、绝对值式凸轮顺控、增量式凸轮顺控、旋转工作台控制、数据排序,时钟数据加、减法指令,二进制数与格雷码的相互转换指令,读、写fx0n-3a模拟量模块指令。这类指令的应用面很窄,有的与特定的硬件有关。
2.s7-200的“休眠”指令
1)与字符串有关的指令。
2)扩展读、写实时钟指令,用于夏时制。
3)看门狗复位指令。
4)诊断led指令。
5)移位寄存器读、写指令。
3.s7-300/400的“休眠”指令
1)cad:改变累加器1中双字的字节顺序。
实数转换为整数时,一般用四舍五入的指令round,偶尔用截位取整的指令trunc。下面两条指令用得很少:rnd+:将浮点数转换为大于等于它的最小双整数,rnd-:将浮点数转换为小于等于它的最大双整数。
2)cdb:交换共享数据块和实例db,l dblg:共享数据块的长度送累加器1,l dbno:共享数据块的编号送累加器1,l dilg:背景db的长度送累加器1,l dino:背景db的编号送累加器1。
3)jl:多分支跳转指令。
jcb:rlo=1时跳转,将rlo复制到br,jnb:rlo=0时跳转,将rlo复制到br。
4)l stw:将状态字装载到累加器1中,t stw:将累加器1传送至状态字,car:交换地址寄存器1和地址寄存器2。
5)与主控继电器有关的指令。s7-200没有类似的指令。
6)rlda:累加器1的双字通过cc1循环左移,rrda:累加器1的双字通过cc1循环右移累加器1 (32 位)。
7)累加器指令
tak:交换累加器1、2的内容。
s7-400 cpu有4个累加器,组成了一个堆栈,可以用下面的指令,将一些临时数据保存在累加器3、4:
push:入栈指令,pop:出栈指令,ent:进入累加器堆栈指令,leave:离开累加器堆栈指令。
如果使用上述指令,在编程时需要记住每个累加器中放的是什么数据。可以将中间结果保存在累加器之外的存储区,所以实际上很少使用堆栈指令。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=128244&Name=liaochangchu
本文介绍几种常见的plc的“休眠”指令。
1. 三菱的fx系列的“休眠”指令
1)程序流控制中的监控定时器刷新指令。
2)bcd码移位传送指令。
3)位右移、位左移、字右移、字左移指令。它们与其他plc以字、双字、字节为单位的移位指令不同。
4)求置on位总数、on位判别指令。
5)矩阵输入、16键输入、数字开关输入、带锁存的7段显示、方向开关、ascii码转换、打印输出。这类指令与plc的数字输入和显示有关,有的是为了节省plc的输入点,有的需要自制印刷电路板,不但麻烦,可靠性也不能保证。现在的人机界面(特别是国产的文本显示器)已经非常便宜,但是功能比这些指令实现的功能强大得多。
6)带加减速功能的脉冲输出、绝对值式凸轮顺控、增量式凸轮顺控、旋转工作台控制、数据排序,时钟数据加、减法指令,二进制数与格雷码的相互转换指令,读、写fx0n-3a模拟量模块指令。这类指令的应用面很窄,有的与特定的硬件有关。
2.s7-200的“休眠”指令
1)与字符串有关的指令。
2)扩展读、写实时钟指令,用于夏时制。
3)看门狗复位指令。
4)诊断led指令。
5)移位寄存器读、写指令。
3.s7-300/400的“休眠”指令
1)cad:改变累加器1中双字的字节顺序。
实数转换为整数时,一般用四舍五入的指令round,偶尔用截位取整的指令trunc。下面两条指令用得很少:rnd+:将浮点数转换为大于等于它的最小双整数,rnd-:将浮点数转换为小于等于它的最大双整数。
2)cdb:交换共享数据块和实例db,l dblg:共享数据块的长度送累加器1,l dbno:共享数据块的编号送累加器1,l dilg:背景db的长度送累加器1,l dino:背景db的编号送累加器1。
3)jl:多分支跳转指令。
jcb:rlo=1时跳转,将rlo复制到br,jnb:rlo=0时跳转,将rlo复制到br。
4)l stw:将状态字装载到累加器1中,t stw:将累加器1传送至状态字,car:交换地址寄存器1和地址寄存器2。
5)与主控继电器有关的指令。s7-200没有类似的指令。
6)rlda:累加器1的双字通过cc1循环左移,rrda:累加器1的双字通过cc1循环右移累加器1 (32 位)。
7)累加器指令
tak:交换累加器1、2的内容。
s7-400 cpu有4个累加器,组成了一个堆栈,可以用下面的指令,将一些临时数据保存在累加器3、4:
push:入栈指令,pop:出栈指令,ent:进入累加器堆栈指令,leave:离开累加器堆栈指令。
如果使用上述指令,在编程时需要记住每个累加器中放的是什么数据。可以将中间结果保存在累加器之外的存储区,所以实际上很少使用堆栈指令。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=128244&Name=liaochangchu
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/