SHL
Deslocamento de “N” bits de um operando “IN” à esquerda.
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
SHL
+-------------+
ANY_BIT ----|IN |---- ANY_BIT
| |
ANY_INT ----|N |
+-------------+
Parâmetro
Nome |
Parâmetro |
Tipo Dado |
Descrição |
IN1 |
Entrada |
ANY_BIT |
Operando a ser deslocado para a esquerda. |
N |
Entrada |
ANY_INT |
Número de bits a serem deslocados “IN1” para a esquerda. |
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 |
Código ST
(* 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 *)
(* ... *)