SHR

Deslocamento de “N” bits de um operando “IN” à direita.

  • ANY_BIT pode ser tipo de dados: BOOL, BYTE, WORD, DWORD ou LWORD

  • ANY_INT pode ser tipo de dados: SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT

  • Para mais informações consulte os Grupos de tipos de dados.

Bloco

                   SHR
             +-------------+
ANY_BIT  ----|IN           |---- ANY_BIT
             |             |
ANY_INT  ----|N            |
             +-------------+

Parâmetro

Nome

Parâmetro

Tipo Dado

Descrição

IN

Entrada

ANY_BIT

Operando a ser deslocado para a direita.

N

Entrada

ANY_INT

Número de bits a serem deslocados “IN1” para a direita.

Retorno

Tipo Dado

Descrição

ANY_BIT

Valor resultante da operação de deslocamento.

Nota

O firmware do equipamento utilizado pode não suportar todos os tipos de dados definidos no padrão IEC616161-3. Para mais informações sobre as restrições de implementação de cada firmware consulte Recursos dependentes de implementação da norma IEC61131-3

Exemplo

Declaração de Variáveis

Nome

Tipo

Descrição

value_in

WORD

valor a ser deslocado

value_n

INT

quantidade de bits para deslocamento

value_out

WORD

valor resultante da função matemática

Clique aqui para baixar a tabela de variáveis

Código ST

(* Exemplo de ativação da função dentro da POU *)
(* ... *)
value_in  := 2#1000_0000_0000_0001;   (* valor a ser deslocado *)
value_n   := 1;       (* quantidade de bits a serem deslocados *)
value_out := SHR(IN := value_in, N := value_n); (* executa o deslocamento de bits *)
    (* resultado value_out = 2#0100_0000_0000_0000 *)
(* ... *)
value_n   := 15;       (* quantidade de bits a serem deslocados *)
value_out := SHR(value_in, value_n); (* executa o deslocamento de bits *)
    (* resultado value_out = 2#0000_0000_0000_0001 *)
(* ... *)