Opérateur IEC servant à effectuer un décalage bit à bit vers la droite d'un opérande.
erg:= SHR (in, n)
in : opérande à décaler vers la droite.
n : nombre de bits de décalage de in vers la droite.
NOTE : lorsque n dépasse la largeur du type de données, le remplissage des opérandes BYTE, WORD, DWORD et LWORD dépend du système cible. Certains systèmes ajoutent des zéros (0), d'autres n MOD <register width>.
L'exemple suivant illustre les différents résultats, en notation hexadécimale, de l'opération arithmétique en fonction du type de variable d'entrée (BYTE ou 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