您现在的位置是:首页 > PLC技术 > PLC技术

S7-300/400PLC移位和循环移位指令

来源:艾特贸易2017-10-30

简介在 PLC 的应用中经常用到移位指令,在 STEP 7 中的移位指令,包括有符号整数和长整数的右移指令、无符号字型数据的左移和右移指令、无符号双字型数据的左移和右移指令、双字的循环


    PLC的应用中经常用到移位指令,在STEP 7中的移位指令,包括有符号整数和长整数的右移指令、无符号字型数据的左移和右移指令、无符号双字型数据的左移和右移指令、双字的循环左移和循环右移指令。

    移位指令是将累加器1中的数据或者累加器1低字中的数据逐位左移或逐位右移。左移相当于累加器的内容乘以2“,右移相当于累加器的内容除以2nn为指定的移动位数或移位次数)。

    累加器1中移位后空出的位填0或符号位。被移动的最后1位保存在状态字的CC1中,可使用条件跳转指令对CC1进行判断,CCOOV被复位到0

循环移位指令的特点是移出的空位填以从累加器中移出的位。移位和循环移位指令的操作数及功能说明如表3-35所示。

3-35移位和循环移位指令的操作数及功能

 表3-35移位和循环移位指令的操作数及功能

3-54所示为字的左移(6位)指令,图3-55所示为双字的右移(3位)指令。

 图3-54字的左移(6位)指令

3-54字的左移(6位)指令

 图3-55双字的右移(3位)指令

3-55双字的右移(3位)指令

双字左移指令的具体应用如图3-56所示。

 图3-56双字左移指令的应用

3-56双字左移指令的应用

    3-56中,当10.0接通时,双字左移指令开始工作,将MD10中的内容左移4位,并将结果存入MD20中,如果移位指令执行,则输出Q4.0“1”

实现上述相同功能的语句表程序为:

 

循环移位指令只能对双字进行操作,移位范围为031,如果移位大于32,高位移出的位信号插入到低位移空的位中,例如将一个双字循环左移3位,移位前后位排列次序如图3-57所示。

 图3-57循环移位示意图

3-57循环移位示意图

   STL编程语言中,RLDARRDA指令对双字进行循环移位操作,每次触发时循环左移、右移一位,将状态字中CC1的信号插入移空的位上。如果移出的位信号为1,置位状态字中CC1位,可以触发JP程序跳转指令进行逻辑判断。

    使用移位和循环指令的示例程序如表3-36所示。

3-36使用移位和循环指令的示例程序

 表3-36使用移位和循环指令的示例程序

表3-36使用移位和循环指令的示例程序