SHR

Desloca “N” bits de um operando IN para a direita. É uma função pura (sem estado; retorna o resultado diretamente).

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

Função

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

Esta função aceita como parâmetro de entrada IN qualquer tipo do grupo ANY_BIT (BOOL, BYTE, WORD, DWORD ou LWORD) e como N qualquer tipo do grupo ANY_INT (SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT; ver Grupos de tipos de dados para a lista completa de tipos suportados). 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 deslocado para a direita.

N

IN

ANY_INT

—

Número de bits a serem deslocados de IN para a direita.

Retorno / Saídas

Tipo

Faixa / Unidade

Descrição

ANY_BIT

—

Valor resultante da operação de deslocamento. O tipo é idêntico ao de IN.

Observações

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

 VAR
     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 *)
 END_VAR

 (* 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 *)
 (* ... *)