UINT4_TO_ULINT
Recebe 4 valores inteiros de 16 bits e retorna o valor inteiro de 32bits.
Bloco
UINT4_TO_ULINT
+-------------+
UINT ----|W_0 |----- ULINT
| |
UINT ----|W_1 |
| |
UINT ----|W_2 |
| |
UINT ----|W_3 |
+-------------+
Nota
Esta função é normalmente utilizada para conversão de pacotes MODBUS recebidos de equipamentos remotos. Quando o valor a ser obtido for um valor numerico de 64bits, este é enviado em 4 registros (16 bits) MODBUS sequenciais. Esta função agrupa estes registros retornando o valor original do dado.
Parâmetro
Nome |
Classe |
Tipo |
Dim. |
V. Ini. |
Descrição |
W_0 |
Entrada |
UINT |
0 |
Word menos significativa |
|
W_1 |
Entrada |
UINT |
0 |
2 word menos significativa |
|
W_2 |
Entrada |
UINT |
0 |
3 word menos significativa |
|
W_3 |
Entrada |
UINT |
0 |
Word mais significativa |
Retorno
Tipo Dado |
Descrição |
ULINT |
Resultado da composição dos valores W_0, W_1, W_2 e W_3 como um valor inteiro de 64 bits |
Exemplo
Declaração de Variáveis
Nome |
Tipo |
Valor Inicial |
Descrição |
|---|---|---|---|
v0 |
UINT |
16#1234 |
Valor de W_0 |
v1 |
UINT |
16#5678 |
Valor de W_1 |
v2 |
UINT |
16#9ABC |
Valor de W_2 |
v3 |
UINT |
16#DEF0 |
Valor de W_3 |
result |
ULINT |
Valor de saída |
Código ST
(* Exemplo de ativação da função dentro da POU *)
(* ... *)
result := HILS.UINT4_TO_ULINT(W_0:= v0, W_1:= v1, W_2:= v2, W_3:= v3);
// Result ira receber o valor 16#DEF09ABC56781234
(* ... *)
Dica
Se as variáveis de entrada forem do tipo INT faça:
result := HILS.UINT4_TO_ULINT(W_0:= INT_TO_UINT(v0), W_1:= INT_TO_UINT(v1), W_2:= INT_TO_UINT(v2), W_3:= INT_TO_UINT(v3));