您现在的位置是:首页 > PLC技术 > PLC技术
S7-300/400PLC移位和循环移位指令
来源:艾特贸易2017-10-30
简介在 PLC 的应用中经常用到移位指令,在 STEP 7 中的移位指令,包括有符号整数和长整数的右移指令、无符号字型数据的左移和右移指令、无符号双字型数据的左移和右移指令、双字的循环
在PLC的应用中经常用到移位指令,在STEP 7中的移位指令,包括有符号整数和长整数的右移指令、无符号字型数据的左移和右移指令、无符号双字型数据的左移和右移指令、双字的循环左移和循环右移指令。
移位指令是将累加器1中的数据或者累加器1低字中的数据逐位左移或逐位右移。左移相当于累加器的内容乘以2“,右移相当于累加器的内容除以2n(n为指定的移动位数或移位次数)。
累加器1中移位后空出的位填0或符号位。被移动的最后1位保存在状态字的CC1中,可使用条件跳转指令对CC1进行判断,CCO和OV被复位到0。
循环移位指令的特点是移出的空位填以从累加器中移出的位。移位和循环移位指令的操作数及功能说明如表3-35所示。
表3-35移位和循环移位指令的操作数及功能
图3-54所示为字的左移(6位)指令,图3-55所示为双字的右移(3位)指令。
图3-54字的左移(6位)指令
图3-55双字的右移(3位)指令
双字左移指令的具体应用如图3-56所示。
图3-56双字左移指令的应用
图3-56中,当10.0接通时,双字左移指令开始工作,将MD10中的内容左移4位,并将结果存入MD20中,如果移位指令执行,则输出Q4.0为“1”。
实现上述相同功能的语句表程序为:
循环移位指令只能对双字进行操作,移位范围为0~31,如果移位大于32,高位移出的位信号插入到低位移空的位中,例如将一个双字循环左移3位,移位前后位排列次序如图3-57所示。
图3-57循环移位示意图
STL编程语言中,RLDA与RRDA指令对双字进行循环移位操作,每次触发时循环左移、右移一位,将状态字中CC1的信号插入移空的位上。如果移出的位信号为1,置位状态字中CC1位,可以触发JP程序跳转指令进行逻辑判断。
使用移位和循环指令的示例程序如表3-36所示。
表3-36使用移位和循环指令的示例程序
点击排行
