西门子PLC数据处理指令
2、字左移和字右移,SLW和SRW
本文引用地址:https://www.eepw.com.cn/article/201612/331133.htm使能输入有效时,把字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的字存储单元。最大实际可移位次数为16。
指令格式: SLW OUT, N (字左移);SRW OUT, N (字右移)
例: SLW MW0, 2;SRW LW0, 3
以字右移指令为例,指令执行情况如表所示。

图6 字右移指令
3、双字左移和双字右移,SLD和SRD
使能输入有效时,把双字型输入数据IN左移或右移N位后,再将结果输出到OUT所指的双字存储单元。最大实际可移位次数为32。
指令格式:SLD OUT, N (双字左移);SRD OUT, N (双字右移)
例: SLD MD0, 2;SRD LD0, 3
(二)循环左移、循环右移
循环左移和循环右移根据所循环移位的数的长度分别又可分为字节型、字型、双字型。
移位数据存储单元的移出端与另一端相连,同时又与SM1.1(溢出)相连,所以最后被移出的位被移到另一端的同时,也被放到SM1.1位存储单元。
例如在循环右移时,移位数据的最右端位移入最左端,同时又进入SM1.1。SM1.1始终存放最后一次被移出的位。


图7 循环左移、循环右移
循环移位的类型:
◆ 字节循环左移和字节循环右移
◆ 字循环左移和字循环右移
◆ 双字循环左移和双字循环右移
(三)寄存器移位
SHRB,寄存器移位指令:该指令在梯形图中有3个数据输入端:DATA为数值输入, 将该位的值移入移位寄存器;S_BIT为移位寄存器的最低位端;N指定移位寄存器的长度。每次使能输入有效时,整个移位寄存器移动1位。
移位寄存器长度在指令中指定,没有字节型、字型、双字型之分。可指定的最大长度为64位,可正也可负。

图11 移位寄存器

图12 指令SHRB执行结果三、字节交换指令
使能输入有效时,将字型输入数据IN的高字节和低字节进行交换。
本指令只对字型数据进行处理,指令的执行不影响的特殊存储器位。
使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址)。
指令格式: SWAP IN (字节交换)

图13 指令SWAP执行结果四、存储器填充指令,FILL
使能输入有效时,用字型输入数据IN填充从输出OUT所指的单元开始的N个字存储单元。
填充指令只对字型数据进行处理,N值为字节型,可取从1~255的整数。www.diangon.com指令的执行不影响的特殊存储器位。
使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址);0091(操作数超界)。
指令格式: FILL IN, OUT, N
评论