西門子PLC數據處理指令
2、字左移和字右移,SLW和SRW
本文引用地址:http://www.104case.com/article/201612/331133.htm使能輸入有效時,把字型輸入數據IN左移或右移N位后,再將結果輸出到OUT所指的字存儲單元。最大實際可移位次數為16。
指令格式: SLW OUT, N (字左移);SRW OUT, N (字右移)
例: SLW MW0, 2;SRW LW0, 3
以字右移指令為例,指令執行情況如表所示。

圖6 字右移指令
3、雙字左移和雙字右移,SLD和SRD
使能輸入有效時,把雙字型輸入數據IN左移或右移N位后,再將結果輸出到OUT所指的雙字存儲單元。最大實際可移位次數為32。
指令格式:SLD OUT, N (雙字左移);SRD OUT, N (雙字右移)
例: SLD MD0, 2;SRD LD0, 3
(二)循環左移、循環右移
循環左移和循環右移根據所循環移位的數的長度分別又可分為字節型、字型、雙字型。
移位數據存儲單元的移出端與另一端相連,同時又與SM1.1(溢出)相連,所以最后被移出的位被移到另一端的同時,也被放到SM1.1位存儲單元。
例如在循環右移時,移位數據的最右端位移入最左端,同時又進入SM1.1。SM1.1始終存放最后一次被移出的位。


圖7 循環左移、循環右移
循環移位的類型:
◆ 字節循環左移和字節循環右移
◆ 字循環左移和字循環右移
◆ 雙字循環左移和雙字循環右移
(三)寄存器移位
SHRB,寄存器移位指令:該指令在梯形圖中有3個數據輸入端:DATA為數值輸入, 將該位的值移入移位寄存器;S_BIT為移位寄存器的最低位端;N指定移位寄存器的長度。每次使能輸入有效時,整個移位寄存器移動1位。
移位寄存器長度在指令中指定,沒有字節型、字型、雙字型之分。可指定的最大長度為64位,可正也可負。

圖11 移位寄存器

圖12 指令SHRB執行結果三、字節交換指令
使能輸入有效時,將字型輸入數據IN的高字節和低字節進行交換。
本指令只對字型數據進行處理,指令的執行不影響的特殊存儲器位。
使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址)。
指令格式: SWAP IN (字節交換)

圖13 指令SWAP執行結果四、存儲器填充指令,FILL
使能輸入有效時,用字型輸入數據IN填充從輸出OUT所指的單元開始的N個字存儲單元。
填充指令只對字型數據進行處理,N值為字節型,可取從1~255的整數。www.diangon.com指令的執行不影響的特殊存儲器位。
使能流輸出ENO斷開的出錯條件:SM4.3(運行時間);0006(間接尋址);0091(操作數超界)。
指令格式: FILL IN, OUT, N
評論