Bit-shift instructions
596
Part III FP Instructions
F126_DROL
32-bit data left rotate
When input n = 0, no rotation takes place.
When at input n > 32, the same result is achieved as with a number n < 32: e.g. n = 33 produces
the same result as when n = 0; n = 34 the same as n = 1.
The bit at position 32 - n (the last bit shifted out to the right) is simultaneously stored in special
internal relay R9009 (carry flag) so that it can be evaluated accordingly.
1 0 1 0 1 1 0 0 1 0 1 1
31 0
1 1 0 0 1 0 1 0
28 27 24 23 4 3
· · ·
1 0 1 1
0
data
data
start: ON
Carry flag
This instruction also exists as a P instruction (for FP2/2SH, FP3/5, FP10/10SH PLC types), which
is only executed at the rising edge of the EN trigger. Select [Insert P instruction] from the
"Instructions" pane if you require a P instruction. To facilitate reuse, the instruction then appears
under "Recently used" in the pop-up menu. Press <Ctrl>+<Shift>+<v> within the programming
area to open the list of recently used elements.
PLC types
Availability of F126_DROL (see page 1321)
Variable Data type Function
n INT number of bits to be rotated (range: 0 to 255)
d ANY32 32-bit area
For Relay T/C Register Constant
n WX WY WR WL SV EV DT LD FL dec. or hex.
d - DWY DWR DWL DSV DEV DDT DLD DFL -
No. IEC address Set If
R9009 %MX0.900.9 for an instant the bit at position 32 - n of d has the
value 1.
Description
The function rotates the value at output d to the left. The number of bits at output d to be rotated to
the left is specified by the value assigned at input n. This shift can lie between 0 and 255 (only the
lower value byte of n is effective).Left rotate means that the bits shifted out of bit position 31 (MSB)
are shifted via bit position 0 (LSB) into the value at output d.
Data types
Operands
Error flags
Example
In this example, the same POU header is used for all programming languages. For an example
using IL (instruction list), please refer to the online help.