PLC数据移位类应用指令介绍
发布时间:2016-11-04 11:04 来源:欧姆龙 阅读:
PLC数据移位类应用指令介绍:
1.SFT指令格式:条件IN条件Sp条件RSFT(10)
STESFT指令有三个输入条件: IN为数据输入,Sp为移位脉冲输入,R为复位输入。操作数ST指定开始通道,操作数E指定结束通道,它们分别可以是IR、SR、AR、LR、hR。但是ST不能大于E,且两者必须在相同的区域内。功能: 移位操作指令。只有当条件R为OFF时才进行移位操作。所谓的移位操作,就是指Sp输入脉冲的每个上升沿,都会使由ST和E所指定数据中的所有二进制位依次左移一位。移位后数据最高位由于移出而丢失,最低位补入IN的状态。当R为ON时进行复位操作。复位时所有的数据位置0,IN和Sp的输入无效。
例4-8:在程序中,使用了SR中的1秒时钟脉冲(25502)作为移位脉冲,实现的是每秒移位一次的操作。参加移位的数据为200通道的16位二进制数。
2.SFTR指令格式:SFTR(84) @SFTR(84)C CST STE E其中,操作数C为控制字,它可以是IR、SR、hR、AR、LR、DM、*DM、#;操作数ST为开始通道,操作数E为结束通道,它们分别可以是IR、SR、hR、AR、LR、DM、*DM;ST不能大于E,且两者必须是在同一区域内。功能: 可逆移位寄存器指令。当执行条件满足时,根据C的规定执行二进制数据的左移或右移操作。C中的R为复位操作标志,Sp为移位操作标志。移位数据包括进位标志(25504)在内。左移时数据通道中的最高位移入进位标志,数据通道的最低位移入C中的输入数据IN;右移时输入数据IN移入数据通道最高位,数据通道最低位移入进位标志。复位操作时,数据通道连同进位标志一并置0。
例4-9:设有如下的程序段:LD 00000OUT 20012LD 00001OUT 20013LD 00002OUT 20014LD 00003OUT 20015LD 00004@SFTR(84)200DM0010DM0011其中,用00000、00001、00002和00003输入方向、数据、脉冲和复位信号。采用微分型指令可以保证移位操作只在00004变化的上升沿时执行一次。
3.WSFT指令格式:WSFT(16) @ WSFT(16)ST STE E其中,操作数ST为开始通道,操作数E为结束通道,它们可以是IR、SR、hR、AR、LR、DM、*DM。ST不能大于E,且两者必须是在同一区域内。功能: 字移位指令。实现每次一个通道(16位二进制数)数据的左移。最低位置0000,最高位移出丢失。例4-10:设有如下的WSFT指令:LD 00000WSFT(16)AR00AR02指令执行前,AR00通道赋值#1234,AR01通道赋值#4567,AR02通道赋值#789A。
指令执行一次后,数据通道的内容将会改变: AR00通道为#0000,AR01通道为#1234,AR02通道为#4567。4.ASL和ASR指令格式:ASL(25) @ASL(25)Ch ChASR(26) @ASR(26)Ch Ch其中,操作数Ch为移位通道,它可以是IR、SR、hR、AR、LR、DM、*DM。功能: ASL为算术左移指令,执行算术左移操作时,将通道中的16位二进制数据顺序左移一位,最高位移入进位标志,最低位补入一个0。ASR为算术右移指令,执行算术右移操作时,将通道中的16位二进制数据顺序右移一位,最低位移入进位标志,最高位补入一个0。
例4-11:设将#6786传送到原操作数200通道中,则下面指令执行一次后200通道中的数据变为#CF0C。LD 00000@ASL(25)200说明: 当通道中的数据为0000时,系统置相等标志25506为ON。5.ROL和ROR指令格式:ROL(25) @ROL(25)Ch ChROR(26) @ROR(26)Ch Ch其中,操作数Ch为移位通道,它可以是IR、SR、hR、AR、LR、DM、*DM。功能: ROL为循环左移指令,执行循环左移操作时,将通道中的16位数据连同进位位循环左移一位,通道中的最高位移入进位标志,原进位位的值移入通道的最低位。ROR为循环右移指令,执行循环右移操作时,将通道中的16位数据连同进位位循环右移一位,通道中的最低位移入进位标志,原进位位的值移入通道的最高位。
例4-12:将#6786传送到原操作数200通道中,且25504为1。当下面指令执行一次后200通道中的数据变为#CF0D,25504被置为0。LD 00000@ROL(27)200说明: 当通道中的数据为0000时,系统置相等标志25506为ON。6.SLD和SRD指令格式:SLD(74) @SLD(74)ST STE ESRD(75) @SRD(75)ST STE E其中,操作数ST为开始通道,操作数E为结束通道,它们可以是IR、SR、hR、AR、LR、DM、*DM;ST不能大于E,且两者必须是在同一区域内。功能: SLD为十六进制数左移指令。左移时每位十六进制顺序左移一位,最高一位数移出丢失,最低位补入数字0。SRD为十六进制数右移指令。右移时每位十六进制顺序右移一位,最低一位数移出丢失,最高位补入数字0。
例4-13:设指令执行前将#6787传送给200通道,#CF0D传送给201通道。当下面指令执行一次后,200通道中的数据变为#7870,201通道中的数据变为#F0D6。LD 00000SLD(74)200201思考题:执行程序,闭合一次00000,写出200和201通道的内容;闭合一次00001,写出200和201通道的内容。