MBSHIFTPLCopen motion icon

FunctionClosedA function calculates a result according to the current value of its inputs. A function has no internal data and is not linked to declared instances. - Multibyte shift / rotate

Inputs

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
Rotate
: BOOL        TRUE for rotate / FALSE for shift
InBit
: BOOL         Bit to be introduced in a shift

Outputs

Q : BOOL             TRUE if successful

Remarks

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 FFLD 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

FFLD Language

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

IL Language:

Not available