Caminho:  Equipamentos (Dispositivos) > SCA06 > Ladder > Logic > Logic Rotate >

ROL

Rotação Lógica à Esquerda

Previous pageReturn to chapter overviewNext page

Bloco que executa uma operação de rotação lógica à esquerda em um valor passado por Value, armazenando o resultado em Result.

 

Representação Ladder

 

ROL_block

 

Estrutura do Bloco

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_INPUT

EN

BOOL

Habilitação do bloco

Value

BYTE USINT SINT WORD UINT INT DWORD UDINT DINT

Variável a sofrer rotação

Shift

BYTE USINT

Indice de deslocamento

VAR_OUTPUT

ENO

BOOL

Fim de operação

Result

BYTE USINT SINT WORD UINT INT DWORD UDINT DINT

Variável que armazena o resultado da operação

 

Funcionamento

 

Este bloco, quando tem um valor TRUE em EN, envia para a saída Result o valor da variável Value após realizar um determinado número de deslocamentos lógicos à esquerda, de acordo com o valor de Shift. Os bits mais significativos que forem sendo descartados são reenviados aos bits menos significativos, caracterizando a rotação.

 

Quando EN possui valor FALSE, Result permanece inalterado.

 

O valor de ENO repassa para o próximo bloco Ladder o valor de EN após finalizada a operação.

 

Fluxograma do Bloco

 

ROL_flowchart

 

Exemplo

 

ROL_example01

 

O exemplo acima realiza uma rotação lógica à esquerda de uma posição na variável VALUE, cujo valor inicial é -100 (1001 1100 em binário). Os bits descartados à esquerda são reinseridos à direita. O resultado final (0011 1001 em binário) é armazenado em RESULT.

 

ROL_example02

 

O exemplo acima realiza uma rotação lógica à esquerda de cinco posições na variável VALUE, cujo valor inicial é 21 (0001 0101 em binário). Os bits descartados à esquerda são reinseridos à direita. O resultado final (1010 0010 em binário) é armazenado em RESULT.