1.左移、右移指令
S7-200的左、右移位指令的梯形圖編程格式如圖10-5.1所示。
梯形圖中的SHL B為(wei) 移位指令標記,其中:
SHL: SH為(wei) 移位標記,L為(wei) 左移(R為(wei) 右移):
B:字節指令標記(W為(wei) 16位字,WD為(wei) 32位雙字);
IN:需要移位的存儲(chu) 器地址;
OUT:結果存儲(chu) 器地址。
S7-200的移位指令具有如下特點:
①S7-200的移位分為(wei) 兩(liang) 步執行。
——利用移位指令( MOV)將需要移位的數據移動到結果存儲(chu) 器中,見圖10-5.1 (b)。如果僅(jin) 需要對指定存儲(chu) 器內(nei) 容移位、且執行結果仍然保存在原存儲(chu) 器中,則不需要執行本步驟,見圖10-5.1 (a)。
——對結果存儲(chu) 器進行移位。
②S7-200執行移位指令時,將數據被移出後的“空位”自動補入狀態“0”。
③被移出的最後一位狀態被保存在係統標誌寄存器SMl.1中。
④移位位數N-般不應超過移位數據本身的長度(字節操作為(wei) 8,字操作為(wei) 16,雙字操作為(wei) 32),如果超過數據本身的長度,則需要進行“取餘(yu) ”處理。例如:對字節數據指定移動12位時,實際移動為(wei) 4位(12除以8後取餘(yu) 數4);當N為(wei) 0時,不進行移位操作,同時係統標誌寄存器SMl.0被置“1”狀態。
2.循環左移、循環右移指令
S7-200的循環左、右移位指令的梯形圖編程格式如圖10-5.2所示。
梯形圖中的ROL B為(wei) 移位指令標記,其中:
ROL: RO為(wei) 循環移位標記,L為(wei) 左移(R為(wei) 右移):
B:字節指令標記(W為(wei) 16位字,WD為(wei) 32位雙字);
IN:需要移位的存儲(chu) 器地址:
OUT:結果存儲(chu) 器地址。
S7-200的移位指令可以將被移出的數據從(cong) 另一端依次返回到移出數據後的空位上,實現數據的循環移動。其他特點與(yu) “左、右移位”指令相同。
3.移位寄存器指令
利用移位寄存器指令,可以將來自寄存器外部的二進製位信號( DATA),按照規定的方向逐步移入寄存器內(nei) 。S7-200移位寄存器的梯形圖編程格式如圖10-5.3所示。
梯形圖中的SHRB為(wei) 移位指令標記,其中:
DATA:二進製位狀態輸入;
S__ BIT:移位寄存器的最低位地址;
N:移位寄存器的長度與(yu) 移位方向,正數為(wei) 左移,輸入從(cong) 最低位移入移位寄存器;負數為(wei) 右移,輸入從(cong) 最高位移入移位寄存器。
為(wei) 了保證數據在每次“使能”輸入信號到來時隻移動一位,“使能”輸入應使用邊沿指令。