MBshift

PLCopen motion icon

 FunctionClosed A 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. - Multi-byte shift / rotate.

Inputs

Input

Data Type

Range

Unit

Default

Description

Buffer

SINT / USINT

 

 

 

Array of bytes.

Pos

DINT

 

 

 

Base position in the array.

NbByte

DINT

 

 

 

Number of bytes to be shifted or rotated.

NbShift

DINT

 

 

 

Number of shifts or rotations.

ToRight

BOOL

TRUE, FALSE

 

 

  • TRUE for right.
  • FALSE for left.

Rotate

BOOL

TRUE, FALSE

 

 

  • TRUE for rotate.
  • FALSE for shift.

InBit

BOOL

TRUE, FALSE

 

 

Bit to be introduced in a shift.

Outputs

Output

Data Type

Range

Unit

Description

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.

FBD Language

FFLD Language

  • In the FFLD language, the input rung (EN) enables the operation.
  • The rung output is the result ("Q").
  • The function is called only if EN is TRUE.

IL Language

Not available.

ST Language

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