移位指令属于输出指令。每一次梯级条件由假变真时,移位指令把指定地址内的数据向指定方向整体移动一位。移位指令助记符及主要功能见表4-19。
表4-19 移位指令控制文件结构
位左移(BSL)指令和位右移(BSR)指令的梯形图符号表示为
移位指令在每次梯级条件由假变真时使整个队列向左或向右移动一位。移位时补入的位由位地址指定的位提供,移除的位放入到指令控制字的卸载位中。当该指令执行时变址寄存器S:24的值被清0,因此程序中如果用到变址寄存器的值需要通过程序保存变址寄存器的值,并在移位指令执行后,再将保持的值恢复到变址寄存器中。
使用移位指令时,需要输入4个参数:
1)文件(File):所要移位的位队列的地址,地址必须指定到字。
2)控制(Control):用于存储移位指令的状态字和队列大小的控制字,如R6。
3)位地址(Bit Address):指当移位时,空出的最低位或最高位需要补入位的来源。
4)长度(Length):指位队列中位的数量,也就是整个位队列的长度。(www.xing528.com)
当梯级条件由假变真时,BSL指令对File文件指定的数据向左(向高位)移动一位,由位地址指定的一位被移入最右位(最低位)。文件中的最高位被移出到卸载位中。图4-23所示的梯形图程序中,要左移的整个队列是指文件N7中的第1个字节的第0~15位,一共16个位,其中最高位是第15位,最低位是第0位。当按钮1由OFF变为ON时,队列移位1次,整个队列向左移动1位,最低位装入I:0/2的值,移出的最高位放入到控制文件R6:14这个字节中的第10位UL状态位中。
与BSL指令相类似,BSR指令的梯级条件由假变真时,BSR指令对File文件指定的数据向右(向低位)移动一位。由位地址指定的一位被移入最左位(最高位)。文件中的最低位被移出到卸载位中。图4-23所示梯形图程序中,要右移的整个队列是指文件B3中的第30个字节的第0~31个字节的第1位,一共18个位,其中最低位是30字节的第0位,最高位是31字节的第1位。当按钮2由OFF变为ON时,队列移位1次,整个队列向右移动1位,最高位装入I:0/2的值,移出的最低位放入到控制文件R6:16这个字节中的第10位UL状态位中。
图4-23 移位指令应用举例
例1:流水灯控制。PLC输出端O:0/0到O:0/2连接3个指示灯,让这3个指示灯轮流点亮,时间间隔是2s。
实现上述功能的梯形图程序如图4-24所示,在程序中,第1条指令是起动指令,当按钮1(连接I:0/6,该按钮为不带锁的按钮)按下时将B3:0/0置位,将B3:0/1和B3:0/2清0,定时器T4:1实现2s中的定时,每当定时时间到后,队列B3:0/2、B3:0/1、B3:0/0向左移动一次,其中最低位补入R6:12/10(从队列中卸载的存储在UL中的位)。
图4-24 流水灯梯形图程序
图4-24 流水灯梯形图程序(续)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。