版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
1. 左移位指令
2.右移位指令
3.循环左移位
4.循环右移位
5.寄存器移位
(1)左移位指令
原理:使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1 置1。
种类:按参与移位数据的位数分为:字节左移、字左移、双字左移三种。
作用:左移位具有二进制数乘法运算作用,左移移位相当于乘2,左移n位相当乘2n。
例:1.用左移指令实现流水灯控制
用常量每次移动不同位数可以实现循环移位控制形成流水灯效果。
当移位到最高位后,移位变量自动清零,从而实现了循环左移,也可以实现循环右移控 制。
如图
2.利用自动归位变量移位实现循环左移
用变量和条件赋值实现循环左移控制。
当移位到最高位后,再执行一次移位时会发生溢出,置位SM1.1,用SM1.1再次赋值,可以循环移位流水灯控制。
如图
(2)右移位指令(SHR)
原理:使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位补0,最后一移出位保存在SM1.1 中
种类:按参与移位数据的位数分为:字节右移、字右移、双字右移三种。
应用:右移位具有二进制数乘法运算作用,左移移位相当于除2,左移n位相当除2n。
如图
例:右移位指令应用
同样可以实现循环移位控制。也可以用于实现多台电动机的顺序启动,逆序停止控制。
电路功能:顺序启动,同时停止。
如要实现顺序启动顺序停止控制,可采用两个子程序实现。
如图
注:数据处理指令
如图
(3)循环左移(ROL)
说明:移位数据存储单元移出端(最高位)与移入端(最低位)相连,同时最高位又与SM1.1(溢出)相连。
种类:字节循环左移、字循环左移、双字循环左移三种。
例如:移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。
如图
例:1.用循环移位实现单按钮控制
基本思路:给中间字节变量MB0赋以花数,用控制开关控制其移位。然后进行位连接。
如图
2.用循环左移实现流水灯控制
变量每次移动一位实现循环左移流水灯控制。
如图
3.常数每次移动不同位数实现流水灯控制
移位次数自动调节如采用加1指令,可以实现循环左移。
移位次数自动调整采用减1指令,可实现循环右移。
如图
(4)循环右移(ROR)
说明:移位数据存储单元的移出端(最低位)与移入端(最高位)相连,同时最低位又与SM1.1(溢出)相连。种类:字节循环左移、字循环左移、双字循环左移三种。
例如:移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。
如图
注:移位及循环移位指令
如图
例:使用循环移位指令,可以实现流水灯效果,可以产生步进电动机的驱动脉冲,移位方向用于控制步进电动机转动方向。
利用移位指令也可以实现起保停单按钮控制。
如图
(5)移位寄存器指令(SHRB)
移位寄存器是将串行数据转化成并行数据的器件,在S7-200中设有移位寄存器指令,而且移位寄存的位数可以在1~64位之间任意选择。但是移位方向只能左移不能右移。
其中EN是使能输入控制
端,DATA是数据输入端
为位地址,S_BIT是移位
寄存器的最低位,N是移
位寄存器的长度
如图
例:移位寄存器指令的应用
使用移位寄存器指令可以从DATA位地址输入端输入串行信号,从移位寄存器中得到转换后的并行数据。
实例:用移位寄存器指令实现多台电动机的顺序启动顺序停止控制。
如图
例:应用实例
用寄存器移位指令实现流水灯效果。
将寄存器的首位连接起来,可实现循环左移位,不能显示循环右移。
如图
(采集自网络 侵权删)
点阅读原文了解更多西门子PLC知识