Operatore IEC per lo scorrimento bit per bit verso destra di un operando.
erg:= SHR (in, n)
in: operando da spostare verso destra
n: numero di bit di cui in viene spostato verso destra
NOTA: Se n supera l'ampiezza del tipo di dati, il modo in cui verranno riempiti gli operandi BYTE, WORD, DWORD e LWORD dipende dal sistema di destinazione. Alcuni eseguono il riempimento con una serie di zeri (0), altri con n MOD <register width>.
Il seguente esempio in notazione esadecimale mostra i risultati dell'operazione aritmetica in funzione del tipo della variabile di ingresso (BYTE o WORD).
PROGRAM shr_st
VAR
in_byte : BYTE:=16#45; (* 2#01000101 )
in_word : WORD:=16#0045; (* 2#0000000001000101 )
erg_byte : BYTE;
erg_word : WORD;
n: BYTE :=2;
END_VAR
erg_byte:=SHR(in_byte,n); (* Result is 16#11, 2#00010001 *)
erg_word:=SHR(in_word,n); (* Result is 16#0011, 2#0000000000010001 *)
LD in_byte
SHR 2
ST erg_byte