ROL

Rotaciona “N” bits de um operando “IN” à esquerda. É um bloco de função.

Biblioteca: IEC_STD · Namespace: IEC · Tipo: bloco de função

Bloco de função

                   ROL
             +-------------+
ANY_BIT  ----|IN           |---- ANY_BIT
             |             |
ANY_INT  ----|N            |
             +-------------+

Este bloco aceita como parâmetro IN qualquer tipo do grupo ANY_BIT (BOOL, BYTE, WORD, DWORD ou LWORD) e como parâmetro N qualquer tipo do grupo ANY_INT (SINT, USINT, INT, UINT, DINT, UDINT, LINT ou ULINT). Para mais informações consulte os Grupos de tipos de dados. O tipo de retorno é sempre o mesmo do tipo de entrada IN.

Parâmetros

Nome

Direção

Tipo

Faixa / Unidade

Descrição

IN

IN

ANY_BIT

—

Operando a ser rotacionado para a esquerda.

N

IN

ANY_INT

—

Número de bits a serem rotacionados IN para a esquerda.

Retorno / Saídas

Tipo

Faixa / Unidade

Descrição

ANY_BIT

—

Valor resultante da operação de rotacionamento.

Observações

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    value_in  : BYTE; (* valor a ser deslocado *)
    value_n   : INT;  (* quantidade de bits para deslocamento *)
    value_out : BYTE; (* valor resultante da função matemática *)
END_VAR

(* Exemplo de ativação da função dentro da POU *)
(* ... *)
value_in  := 16#81;  (* valor a ser rotacionado *)
value_n   := 16;     (* quantidade de bits a serem rotacionados *)
value_out := ROL(IN := value_in, N := value_n); (* executa o rotacionamento de bits *)
    (* resultado value_out = 16#81 *)
(* ... *)
value_n   := 17;     (* quantidade de bits a serem rotacionados *)
value_out := ROL(IN := value_in, N := value_n); (* executa o rotacionamento de bits *)
    (* resultado value_out = 16#03 *)
(* ... *)