陕西西门子S7-200SMART代理经销商
移位指令是将输入的内容(例如,一个整型数或一个双整型数),按“位跟位”的方式,向左或向右移动若干位(由移位数决定)。向左移位相当于将输入的内容“乘”2N(N是移位数,也是乘法的加权)。向右移位相当于将输入的内容被2N“除”(N是移位数,也是除法的加权)。例如,将十进制数3的二进制表达式,向左移3位,则在累加器中得到的是十进制数24的二进制表示式(因为3×23=3×8=24),如图4-81所示。
图4-81 左移3位指令图示说明
另例如,将十进制数16的二进制表达式,向右移2位,则在累加器中得到的是十进制数4的二进制表示式(因为16/22=16/4=4),如图4-82所示。
图4-82 右移2位指令图示说明
提供输入参数N的数是指移位的位数,被移位指令移位后的空位用“0”填充,或用符号位的符号状态填充(“正数”用“0”填充,“负数”用“1”填充)。被移出“位”的状态,装入状态字的CC1位。状态字的CC0位和OV位被指令复位成“0”。可以用跳转指令评估CC1位的状态。
有以下一些移位指令:
SHR_I:整型数右移指令;
SHR_DI:双整型数右移指令;
SHL_W:字左移指令;
SHR_W:字右移指令;
SHL_DW:双字左移指令;
SHR_DW:双字右移指令。
1.指令符号
-( RET)
2.指令功能说明
-( RET)(返回)指令是用来有条件地退出方块。
表4-155为返回指令对状态位的影响。
表4-155 返回指令对状态位的影响
- | BR | CC1 | CC0 | OV | OS | OR | STA | RLO | /FC |
写状态位 | ① | - | - | - | 0 | 0 | 1 | 1 | 0 |
①返回操作RET表示内部按“SAVE;BEC”的次序操作,这样也会影响BR位。
3.指令应用举例(见图4-80)
图4-80 返回指令应用举例
如图4-80所示,如果I0.0为逻辑“1”状态,退出方块运行。
1.指令符号
-( MCRA)
2.指令功能说明
-( MCRA)(激活主控继电器)指令用来激活主控继电器功能。在执行该命令之后,可以用以下指令编程MCR控制区域:-(MCR<)和-(MCR>)。
表4-153为激活主控继电器指令对状态位的影响。
表4-153 激活主控继电器指令对状态位的影响
- | BR | CC1 | CC0 | OV | OS | OR | STA | RLO | /FC |
写状态位 | - | - | - | - | - | - | - | - | - |
3.指令应用举例(见图4-78)
如图4-78所示,MCR功能由MCRA梯节激活。在-(MCR<)和-(MCR>) (输出Q4.0,Q4.1)之间的梯节执行如下:
1) I0.0=“1”(MCR接通):如果I0.3是逻辑“1”状态,则Q4.0置“1”,或者I0.3=“0”,Q4.0不变,以及将I0.4的逻辑状态分配给输出Q4.1。
2) I0.0=“0”(MCR断开):不管I0.3的逻辑状态是什么,Q4.0总是不变,以及输出Q4.1=“0”,与I0.4的逻辑状态无关。
在下一个梯节是指令是-( MCRD),结束MCR功能。这意味着此后不允许应用“指令对”-( MCR<)和-(MCR>)来编程更多的MCR区域。
1.指令符号
-( MCR>)
2.指令功能说明
-( MCR>)(断开主控继电器)指令,将MCR堆栈中保存的RLO结果从堆栈中移出。MCR嵌套堆栈是一个LIFO(后进先出)堆栈,嵌套数Z多可以有8级。如果堆栈已经全空,-( MCR>)功能会产生一个MCR堆栈故障(MCRF)。在一个打开的MCR区域中,以下一些指令单元会受到保存在MCR堆栈中的RLO的状态的影响以及与MCR有关:
-(#): 中间输出;
-( ):输出线圈;
-(S): 置位指令;
-(R): 复位指令;
RS: 复位触发器;
SR: 置位触发器;
MOVE:赋值指令。
表4-152为断开主控继电器指令对状态位的影响。
表4-152 断开主控继电器指令对状态位的影响
- | BR | CC1 | CC0 | OV | OS | OR | STA | RLO | /FC |
写状态位 | - | - | - | - | - | 0 | 1 | - | 0 |
3.指令应用举例(见图4-77)
如图4-77所示,MCR功能由MCRA梯节激活。Z多允许建立8个MCR嵌套区域,在本例中有2个MCR区域。第1个-(MCR>)(MCR断开)梯节与第2个-(MCR<)(MCR接通)梯节构成一个MCR区域,两者之间的所有梯节属于MCR区域2。
功能执行如下:
1) I0.0=“1”(MCR区域1接通):将I0.4的逻辑状态分配给Q4.1。
2) I0.0=“0”(MCR区域1断开):Q4.1置“0”,而且与I0.4的逻辑状态无关。
3) I0.1=“1”(MCR区域2接通):如果I0.3是逻辑“1”状态,则Q4.0置“1”。
4) I0.1=“0”(MCR区域2断开):Q4.0保持不变,而且与I0.3的逻辑状态无关。
1.指令符号
-(MCR<)
2.指令功能说明
-(MCR<)(接通主控继电器)指令,将RLO的结果保存在MCR堆栈中。MCR嵌套堆栈是一个LIFO(后进先出)堆栈,嵌套数Z多可以有8级。如果堆栈已经全满。
-( MCR<)功能会产生一个MCR堆栈故障(MCRF)。在一个打开的MCR区域中,以下一些指令单元会受到保存在MCR堆栈中的RLO的状态的影响以及与MCR有关:
-(#): 中间输出;
-( ):输出线圈;
-(S): 置位指令;
-(R): 复位指令;
RS: 复位触发器;
SR: 置位触发器;
MOVE:赋值指令。
表4-151为接通主控继电器指令对状态位的影响。
表4-151 接通主控继电器指令对状态位的影响
- | BR | CC1 | CC0 | OV | OS | OR | STA | RLO | /FC |
写状态位 | - | - | - | - | - | 0 | 1 | - | 0 |
3.指令应用举例(见图4-76)
如图4-76所示,MCR功能由MCRA梯节激活。Z多允许建立8个MCR嵌套区域,在本例中有2个MCR区域。功能执行如下:
1) I0.0=“1”(MCR区域l接通):将I0.4的逻辑状态分配给Q4.1。
2) I0.0=“0”(MCR区域1断开):Q4.1置“0”,而且与I0.4的逻辑状态无关。
3) I0.1=“1”(MCR区域2接通):如果I0.3是逻辑“1”状态,则Q4.0置“1”。
4) I0.1=“0”(MCR区域2断开):Q4.0保持不变,而且与I0.3的逻辑状态无关。
陕西西门子S7-200SMART代理经销商