PLC S7-200 Smart SHRB 移位寄存器指令

SHRB指令:

将DATA值的值(0/1),写入S_BIT指定的寄存器,寄存器S_BIT的长度由内N指出(最大为64)。

EN使能、当N>0时,S_BIT寄存器的值向高移动1位,将DATA的值写入S_BIT寄存器的最低位,将溢出位的值保存到SM1.1中;

EN使能、当N<0时,S_BIT寄存器的值向低移动1位,将DATA的值写入S_BIT寄存器的最高位,将溢出位的值保存到SM1.1中。

 

效果演示:

1、N>0时,I0.1状态做DATA输入值,M0.0做寄存器(最低位),寄存器总长度为 8 bit位;I0.0上升沿做SHRB的使能。

 

I0.0第1次接通,M0.0-M0.7每1个位都向高位移动1位,M0.7被移出并保存到SM1.1中;然后将I0.1的状态(1)保存到M0.0中;

此时M0.0-7的Bit值为:

M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7
1 0 0 0 0 0 0 0

I0.0第2次接通,M0.0-M0.7每1个位都向高位移动1位,M0.7被移出并保存到SM1.1中;然后将I0.1的状态(1)保存到M0.0中;

此时M0.0-7的Bit值为:

M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7
1 1 0 0 0 0 0 0

I0.0第3次接通,M0.0-M0.7每1个位都向高位移动1位,M0.7被移出并保存到SM1.1中;然后将I0.1的状态(0)保存到M0.0中;

此时M0.0-7的Bit值为:

M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7
0 1 1 0 0 0 0 0

这里可以看出,寄存器M0使用了8个Bit位长度,因为N>0(8>0),所以SHRB每次都将M0.0-7的所有位向高地址移动1位,并将DATA的值写入M0.0。

 

2、N<0时,I0.1状态做DATA输入值,M0.0做寄存器(最低位),寄存器总长度为 8 bit位;I0.0上升沿做SHRB的使能。

这里仍然按照上面的操作进行,I0.0前2次按下I0.1保持接通,I0.0第3次按下I0.1断开。

I0.0第1次接通,M0.0-M0.7每1个位都向低位移动1位,M0.0被移出并保存到SM1.1中;然后将I0.1的状态(1)保存到M0.7中;

此时M0.0-7的Bit值为:

M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7
0 0 0 0 0 0 0 1

I0.0第2次接通,M0.0-M0.7每1个位都向低位移动1位,M0.0被移出并保存到SM1.1中;然后将I0.1的状态(1)保存到M0.7中;

此时M0.0-7的Bit值为:

M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7
0 0 0 0 0 0 1 1

I0.0第3次接通,M0.0-M0.7每1个位都向低位移动1位,M0.0被移出并保存到SM1.1中;然后将I0.1的状态(0)保存到M0.7中;

此时M0.0-7的Bit值为:

M0.0 M0.1 M0.2 M0.3 M0.4 M0.5 M0.6 M0.7
0 0 0 0 0 1 1 0

这里可以看出,寄存器M0使用了8个Bit位长度,因为N<0(-8<0),所以SHRB每次都将M0.0-7的所有位向低地址移动1位,并将DATA的值写入M0.7。

 

 

posted @ 2025-02-18 15:13  DW039  阅读(412)  评论(0)    收藏  举报