PLC中寄存器移位的SHRB指令怎么使用的?
给我说说原理,最好还给我举一个实际的例子说明一下。谢谢
s7 200 西门子的 展开
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(计数区错误)。
移位寄存器指令在1个扫描周期内,数据只移动1位,直到在后面的扫描周期内,使能条件满足移动指定N位后该指令才算完成工作
循环右移、循环左移、右移、左移
循环移位指令(左、右)八个位是循环移动的
也就是说循环左移1位就是向左移动1位 最高位移到最低位处
循环右移1位相应的位向右移动1位最低位移到最高位
例如:11000010 》》》循环右移1位》》》01100001
11000010 》》》循环左移1位》》》10000101
右移1位:也就是说相应的位都右移1位 最低位消失 最高位补0
左移1位:也就是说相应的位都左移1位 最高位消失 最低位补0
例如:11000010》》》左移》》》》》10000100
11000010》》》右移》》》》》01100001
代号直接看西门子就是了
满意请及时加分 谢谢