SHL
Desloca os bits de um operando “IN” para a esquerda em “N” posições. É uma função pura (sem estado; retorna o resultado diretamente).
Biblioteca: IEC_STD · Namespace: IEC · Tipo: função
Função
SHL
+-------------+
ANY_BIT ----|IN |---- ANY_BIT
| |
ANY_INT ----|N |
+-------------+
Esta função aceita como entrada IN qualquer tipo do grupo ANY_BIT
(BOOL, BYTE, WORD, DWORD ou LWORD) e como entrada N
qualquer tipo do grupo ANY_INT (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 esquerda. |
N |
IN |
ANY_INT |
— |
Número de bits a serem deslocados de |
Retorno / Saídas
Tipo |
Faixa / Unidade |
Descrição |
|---|---|---|
ANY_BIT |
— |
Valor resultante do deslocamento de |
Observações
O firmware do equipamento pode não suportar todos os tipos de dados definidos no padrão IEC 61131-3. Consulte Recursos dependentes de implementação da norma IEC61131-3 para restrições de implementação específicas de cada firmware.
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_1111_0000_0001; (* valor a ser deslocado *)
value_n := 1; (* quantidade de bits a serem deslocados *)
value_out := SHL(IN := value_in, N := value_n); (* executa o deslocamento de bits *)
(* resultado value_out = 2#0001_1110_0000_0010 *)
(* ... *)
value_n := 15; (* quantidade de bits a serem deslocados *)
value_out := SHL(value_in, value_n); (* executa o deslocamento de bits *)
(* resultado value_out = 2#1000_0000_0000_0000 *)
(* ... *)