SHL

Der IEC-Operator dient dem bitweisen Verschieben eines Operanden nach links.

Syntax: erg := SHL (in, n)

in: Operand, der nach links verschoben wird.

n: Anzahl der Bits, um die in nach links verschoben wird.

SHL 1:

Wenn n die Datentyp-Breite überschreitet, hängt es vom Zielsystem ab, wie BYTE-, WORD-, DWORD- und LWORD-Operanden aufgefüllt werden. Die Zielsysteme bewirken Auffüllen mit Nullen oder mit n MOD <Registerbreite>.

SHL 2:

Beachten Sie, dass Sie die Anzahl der Bits, die TwinCAT für die Rechenoperation berücksichtigt, durch den Datentyp der Eingangsvariablen in vorgeben.

Beispiele:

Die Ergebnisse für nResByte und nResWord sind unterschiedlich, obwohl die Werte der Eingangsvariablen nInByte und nInWord gleich, die Datentypen der Eingangsvariablen jedoch unterschiedlich sind.

ST:

PROGRAM Shl_st
VAR
    nInByte  :  BYTE:=16#45; (*2#01000101*)
    nInWord  :  WORD:=16#0045; (*2#0000000001000101*)
    nResByte :  BYTE;
    nResWord :  WORD;
    nVar : BYTE  := 2; 
END_VAR

nResByte := SHL(nInByte,nVar); (*Result is 16#14, 2#00010100*)
nResWord := SHL(nInWord,nVar); (*Result is 16#0114, 2#0000000100010100*)

FUP:

SHL 3: