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

CPM2AH系列PLC的数据移位指令说明

来源:艾特贸易2017-06-05

简介数据移位指令有移位寄存器 SFT(10) 指令、字移位 WSFT (16) 指令、异步移位寄存器 ASFT (17) 指令、算术左移 ASL (25) 指令、算术右移 ASR (26) 指令、循环左移位 ROL (27) 指令、循环右移位 ROR

    数据移位指令有移位寄存器SFT(10)指令、字移位WSFT (16)指令、异步移位寄存器ASFT (17)指令、算术左移ASL (25)指令、算术右移ASR (26)指令、循环左移位ROL (27)指令、循环右移位ROR (28)指令、1个数字左移SLD (74)指令、1个数字右移SRD (75)指令、可逆移位寄存器SFTR (84)指令等。下面介绍SFT (10)指令、SFTR (84)指令,其余指令可详见附录。

   SFT (10)SFTR (84)指令的功能号、操作码、名称、梯形图符号、功能、操作数如表3-14所示。

    3-14    SFT( 10)SFTR( 84)移位指令

SFT( 10)、SFTR( 84)移位指令

    指令说明:

   (1) SFT (10)由三个执行条件INSPR控制。当执行条件SP为上升沿(由OFFON跳变)且ROFF时,那么,执行条件IN的状态移到“起始字”~“结束字”之间的移位寄存器的最低位,寄存器的最高位丢失。执行条件SP的功能就像一条微分指令,即只有当SP为上升沿时,才移位。当执行条件RON时,移位寄存器的所有位将置为OFF(即置为0),移位寄存器将不动作。SFT (10)指令不影响标志(但是“起始字”和“结束字”不在同一数据区域中或“起始字”的地址大于“结束字”的地址时例外)。

   (2)“结束字”必须大于等于“起始字”,且“起始字”和“结束字”必须在同一数据区域中。

   (3)如果某一字的位地址既用于移位寄存器又用于单独的位状态控制指令[例如OUTKEEP(11)指令]时,则一个出错信息(线圈重复“Coil Dupl”)会在手持编程器或其他编程装置作程序字检查时出现,但程序仍能正常运行。

   (4) SFTR的功能是,当执行条件为ON时,SFTR开始工作。如果控制字复位端(bit15)ON,则从“起始字”到“结束字”通道的数据及进位位CY全部复位为0,且SFTR不能接收待移入的数据。如果控制字的复位端(bit15)OFF,则在控制字的移位脉冲位( bit14)ON时,从“起始字”到“结束字”的数据根据控制字中移位方向位(bit12)的状态进行移位。如果是左移,则“起始字”到“结束字”的数据,在每个扫描周期左移一位,控制字输入端(bit13)的内容移入“起始字”的bit00,“结束字”bit15中的数据移入进位位CY。如果是右移,则“起始字”到“结束字”的数据每个扫描周期右移一位,控制字输入端(bit13)的内容移入“结束字”的bit15中,“起始字”bit00中的数据移入进位位CY。当SFTR的驱动条件为OFF时,停止工作,此时复位信号不起作用,也就是说即便此时复位信号为ON,“起始字”到“结束字”及进位位CY中的内容均保持不变而不会被复位。

    数据移位指令的功能可用图3-25形象地表示。

数据移位指令的应用

    3-25    数据移位指令的应用

   (a)梯形图;(b) SP信号0.01上升沿之后200通道的状态;(c)复位信号0.02有效时的状态

    在图3-25中,假设200通道(字)中原来的数据(从高位到低位)是“0000 0000 0000 0010”,在触点0.01未闭合前,触点0.00闭合(为“1”),当触点0.01闭合时,该指令执行的过程是:首先将存放在200.15位中的“0”移出,并将低位的数据依次向高位移一位,最后将触点0.00的状态“1”移入。移位后的数据是“0000 0000 0000 0101”。当触点0.02闭合时,200通道中的数据均被复位为0(即为“0000000000000000”)。

    当“起始字”和“结束字”不在同一区域、间接寻址D通道不存在或“起始字”的通道号大于“结束字”的通道号时,出错标志25503置为ON,此时该指令不执行。

   SFTR指令的应用举例如图3-26所示。

SFTR指令的应用举例

    3-26    SFTR指令的应用举例

   (a)梯形图;(b)移位前数据寄存器的状态;(c)移位后数据寄存器的状态

    在图3-26中,0.04SFTR的执行条件,200CH为控制通道,可逆移位寄存器由D0D1构成。0.00控制移位方向,当0.00ON (1)时,数据左移,当0.00OFF (0)时,数据右移;0.01是移位寄存器的数据输入端,当0.01ON时,输入“1”,当0.01OFF时,输入“0”;0.02的微分信号作为移位脉冲;0.03为复位输入。当0.04ON时,STFR开始工作。若0.04ON0.03ON时,D0D1及进位位CY中的数据清零。若0.04ON0.03OFF0.02上升沿时,D0D1的数据进行一次移位,移位方向取决于0.000.00ON则左移一位,0.00OFF则右移一位。左移时,0.01的状态移入D0bit00D1bit15移入进位位CY;右移时,0.01的状态移入D1bit15D0bit00移入进位位CY

    艾特贸易网特别提示:这里以0.02的微分信号作为移位脉冲,只有当0.02上升沿时才移位一次。如果直接以0.02的高电平作为移位脉冲,当0.02ON时,每扫描一次,都要执行一次移位,移位次数将得不到有效控制。当SFTR的执行条件为OFF时,停止工作,此时控制通道200的各个控制位失效,D0D1及进位位CY的数据将保持不变。