1.循环移位指令
不带进位的循环右移、左移指令ROR、ROL的助记符、功能、操作数、程序步如表5.5-1所示。
表5.5-1 循环移位指令的使用要素
注意:移位指令是16位或32位操作数,因此操作数为位组合形式时,Kn必须为K4(16位)或K8(32位)。
ROR(ROL)指令基本功能:执行条件成立,[D·]中的位状态循环向右(左)移动n位,即高(低)位→低(高)位→高(低)位,最低(高)位循环移动的同时将状态存入进位标志位M8022中。
ROR指令使用说明如图5.5-1所示,每次X1由OFF变为ON时,各位数据循环移位4次(n=4),最后一次的最低位循环移动的同时将状态存入进位标志位M8022中。
RCR(RCL)指令基本功能:执行条件成立,[D.]中的位状态带上进位标志位状态循环向右(左)移动n位,即高(低)位→低(高)位→进位标志位→高(低)位。
图5.5-1 不带进位的循环右移示意图
a)应用程序 b)移位示意
在使用上述指令时,每个扫描周期都会进行一次带进位的循环左移,实际控制中常常要求驱动条件X10由OFF→ON时才进行一次带进位的循环左移。解决的办法是使用后缀(P),改用脉冲方式。RCL指令也可以进行32位操作方式,使用前缀(D)。将上述这条指令改为32位脉冲操作方式时,指令格式为(D)RCL(P)D10K4。
2.位移位指令
位移位指令有位右移位指令SFTR、位左移位指令SFTL,它们的助记符、功能、操作数、程序步如表5.5-2所示。
表5.5-2 非循环移位指令的使用要素
(www.xing528.com)
SFTR、SFTL位移位指令是对[S·]所指定的n1个位元件连同[D·]所指定的n2个位元件的数据右移或左移n2位。
图5.5-2所示为位移位指令的使用说明。图5.5-2a所示为位右移位指令的梯形图,当X0由OFF变为ON时,[D·]内M0~M15的16位数据中的高4位数据M15~M12连同[S·]内X0~X3的4位数据向右移4位,X0~X3的4位数据从[D·]的高位端移入,而[D·]的低位M0~M3的数据移出(溢出)。若图中n2=1,则每次只进行1位移位。图5.5-2b所示为位左移位指令的梯形图,移位原理与位右移位类似。
图5.5-2 位移位指令的使用说明
a)位右移位指令 b)位左移位指令
3.字元件移位指令
字元件右移指令WSFR、字元件左移指令WSFL的助记符、功能、操作数和程序步如表5.5-3所示。字移位时以字为单位向右或向左移位。
表5.5-3 字移位指令的使用要素
在WSFR、WSFL指令的功能是对[S·]所指定的n1个字元件连同[D·]所指定的n2个字元件的右移或左移n2个数据。
图5.5-3a所示为字元件右移指令的梯形图。当X0由OFF变为ON时,[D·]内D10~D25的16个数据连同[S·]内D0~D3的4个数据向右移4个字,D0~D3的4个字数据从[D·]的高字端移入,而D10~D13的输据被移出(溢出)。图5.5-3b为字元件左移指令的梯形图,其原里与字元件右移指令类似。
图5.5-3 字元件移位指令使用说明
a)右移 b)左移
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。