ROR

Rotate N bits to the right

ROR rotates a defined number (N) of bits to the right.

Example



  1.  (1) source register
  2.  (2) target register
  3.  (3) (n = 4 bit)

Parameters

Input

IN (BOOL, WORD, DWORD)

1st input: input value

N (BOOL, WORD, DWORD)

2nd input: number of bits by which the input value is rotated to the right

Output

Var_OUT (BOOL, WORD, DWORD)

Output as input: result

Example

POU header

All input and output variables used for programming this function have been declared in the POU header. The same POU header is used for all programming languages.

	VAR
		source_register: WORD:=0;
		target_register: WORD:=0;
	END_VAR

This example uses variables. You can also use a constant for the input variable.

LD body

The first N bits (here N = 4) of source_register are right-rotated. The result will be written into target_register.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,ROR!,Instance,9,0,14,4,,?DIN?DN?C);
B(B_VARIN,,source_register,7,1,9,3,);
B(B_VARIN,,4,7,2,9,4,);
B(B_VAROUT,,target_register,14,1,16,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

IL body

LD

source_register

ROR

4

ST

target_register

Modified on: 2019-01-24Feedback on this pagePanasonic hotline