上月我的“怎样学习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