PLC中寄存器移位的SHRB指令将DATA数值移入移位寄存器。梯形图中,EN为使能输入端,连接移位脉冲信号,每次使能有效时,整个移位寄存器移动1位。
DATA为数据输入端,连接移入移位寄存器的二进制数值,执行指令时将该位的值移入寄存器。S_BIT指定移位寄存器的最低位。N指定移位寄存器的长度和移位方向,移位寄存器的最大长度为64位。
N为正值表示左移位,输入数据(DATA)移入移位寄存器的最低位(S_BIT),并移出移位寄存器的最高位。移出的数据被放置在溢出内存位(SM1.1)中。N为负值表示右移位,输入数据移入移位寄存器的最高位中,并移出最低位(S_BIT)。移出的数据被放置在溢出内存位(SM1.1)中。
扩展资料
SHRB指令的操作数为I, Q, M, SM, T, C, V, S, L 。数据类型为:BOOL变量。N的操作数为VB, IB, QB, MB, SB, SMB, LB, AC, 常量。数据类型为:字节。
使ENO = 0的错误条件:0006(间接地址),0091(操作数超出范围),0092(计数区错误)。移位指令影响特殊内部标志位:SM1.1(为移出的位值设置溢出位)。
移位寄存器指令影响的特殊继电器:SM1.0(零),SM1.1(溢出)。当移位操作结果为0时,SM1.0自动置位;SM1.1的状态由每次移出位的状态决定。
影响允许输出ENO正常工作的出错条件为:SM4.3(运行时间)、0006(间接寻址),0091(操作数超界),0092(计数区错误)。
SHRB是移位寄存器指令,当使能条件满足,将指定起始位S_BIT(例如Q0.2)及左边所有的比特位中的数值(数据)都依次向左移动一位,移位寄存器最高位溢出(N指定移位寄存器长度,也就是起始位数值最多能移动的位数,当起始位数值移动N位时溢出,寄存器不再移位,而首次DATA的数据则移动了N-1位,在寄存器的最高位或最低位),将溢出位的数值(布尔量0或1)存到系统存储器SM1.1中,指定起始时间位Q0.2空出,然后立马将DATA(该指令外部地址数据,布尔量,例如M0.0)中的值寄存到Q0.2中(M0.0的值不受该指令影响),这样就完成了一次移位寄存器的指定数据移位和寄存器外来数据寄存到指定位的功能,说白了该指令是指定移位+将数据寄存到指定位,所以该指令叫移位寄存器指令。
移位寄存器指令在1个扫描周期内,数据只移动1位,直到在后面的扫描周期内,使能条件满足移动指定N位后该指令才算完成工作
SHRB 是字节右移位指令。把数值2进制数字按照指定位移数定向移动,并将结果输出字节,移位指令对每个移出位补0.
字节移位指令一共有四个
循环右移、循环左移、右移、左移
循环移位指令(左、右)八个位是循环移动的
也就是说循环左移1位就是向左移动1位 最高位移到最低位处
循环右移1位相应的位向右移动1位最低位移到最高位
例如:11000010 》》》循环右移1位》》》01100001
11000010 》》》循环左移1位》》》10000101
右移1位:也就是说相应的位都右移1位 最低位消失 最高位补0
左移1位:也就是说相应的位都左移1位 最高位消失 最低位补0
例如:11000010》》》左移》》》》》10000100
11000010》》》右移》》》》》01100001
代号直接看西门子就是了
满意请及时加分 谢谢