首页 理论教育 移位指令及示例梯形图,包括SHRB指令和无符号数据移位

移位指令及示例梯形图,包括SHRB指令和无符号数据移位

时间:2023-06-17 理论教育 版权反馈
【摘要】:表6-3 移位指令格式及功能被移位的数据是无符号的。图6-2 移位指令应用梯形图4.移位寄存器指令SHRB移位寄存器指令是一个移位长度可指定的移位指令。表6-5 寄存移位指令示例梯形图中DATA为数值输入,指令执行时将该位的值移入移位寄存器。

移位指令及示例梯形图,包括SHRB指令和无符号数据移位

移位指令在PLC控制中是比较常用的,移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。前两类移位指令按移位数据的长度又分为字节型、字型、双字型3种,移位指令最大移位位数N≤数据类型(B、W、DW)对应的位数,移位位数(次数)N为字节型数据。

1.左、右移位指令

左、右移位数据存储单元的移出端与SM1.1(溢出)端相连,移出位被放到SM1.1特殊存储单元,移位数据存储单元的另一端补0。当移位操作结果为0时,SM 1.0自动置位。移位指令格式见表6-3。

表6-3 移位指令格式及功能

(1)被移位的数据是无符号的。

(2)左移位指令SHL(ShiR Left)。使能输入有效时,将输入的字节、字或双字IN左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,最后一次移出位保存在SM1.1(溢出)。

(3)右移位指令SHR(ShiR mght)。使能输入有效时,将输入的字节、字或双字IN右移N位后,将结果输出到OUT所指定的存储单元中,最后一次移出位保存在SM1.1。

(4)移位次数Ⅳ与移位数据长度有关,如果Ⅳ小于实际的数据长度,则执行Ⅳ次移位;如果N大于实际的数据长度,则执行移位的次数等于实际的数据长度。

2.循环左、右移位

循环移位将移位数据存储单元的首尾相连,同时又与溢出标志SM1.1连接,SM1.1用来存放被移出的位。指令格式见表6-4。

表6-4 循环移位指令格式及功能

(1)被移位的数据是无符号的。

(2)循环左移位指令ROL(Rotate Left)。使能输入有效时,字节、字或双字IN数据循环左移N位后,将结果输出到OUT所指定的存储单元中,并将最后一次移出位送SM1.1。

(3)循环右移位指令ROR(Rotate Right)。使能输入有效时,字节、字或双字IN数据循环右移N位后,将结果输出到OUT所指定的存储单元中,并将最后一次移出位送SM1.1。

(4)移位次数N与移位数据长度有关,如果N小于实际的数据长度,则执行N次移位;如果N大于实际的数据长度,则执行移位的次数等于实际的数据长度。(www.xing528.com)

3.左、右移位及循环移位指令对标志位、ENO的影响及操作数的寻址范围

移位指令影响的特殊存储器位:SM 1.0(零);SM1.1(溢出)。如果移位操作使数据变为0,则SM1.0置位。

影响允许输出ENO正常工作的出错条件是:SM4.3(运行时间),0006(间接寻址错误)。

N、IN、OUT操作数的数据类型为B、W、DW。

例如,将VD 10右移2位送ACO。梯形图程序如图6-2所示。

图6-2 移位指令应用梯形图

4.移位寄存器指令SHRB

移位寄存器指令是一个移位长度可指定的移位指令。在顺序控制和步进控制中,应用移位寄存器编程是很方便的。移位寄存器指令格式示例见表6-5。

表6-5 寄存移位指令示例

梯形图中DATA为数值输入,指令执行时将该位的值移入移位寄存器。S-BIT为寄存器的最低位。Ⅳ为移位寄存器的长度(1~64),N为正值时左移位(由低位到高位),DATA值从S-BIT位移入,移出位进入SM1.1;N为负值时右移位(由高位到低位),SBIT移出到SM1.1,另一端补充DATA移入位的值。

每次使能有效时,整个移位寄存器移动1位,最高位的计算方法:[N的绝对值-1+(S-BIT的位号)]/8,余数即是最高位的位号,商与S.BIT的字节号之和即是最高位的字节号。移位指令影响的特殊存储器位:SM1.1(溢出)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈