Function - Multibyte shift / rotate


Buffer : SINT/USINT  Array of bytes
Pos : DINT           Base position in the array
NbByte : DINT        Number of bytes to be shifted/rotated
NbShift : DINT       Number of shifts or rotations
ToRight : BOOL       TRUE for right / FALSE for left
: BOOL        TRUE for rotate / FALSE for shift
: BOOL         Bit to be introduced in a shift


Q : BOOL             TRUE if successful


Use the "ToRight" argument to specify a shift to the left (FALSE) or to the right (TRUE). Use the "Rotate" argument to specify either a shift (FALSE) or a rotation (TRUE). In case of a shift, the "InBit" argument specifies the value of the bit that replaces the last shifted bit.

In LD language, the rung input (EN) validates the operation. The rung output is the result ("Q").

ST Language

Q := MBShift (Buffer, Pos, NbByte, NbShift, ToRight, Rotate, InBit);

FBD Language

LD Language

(* the function is called only if EN is TRUE   *)

IL Language:

Not available