UINT2_TO_UDINT
Recebe 2 valores inteiros de 16 bits e retorna o valor inteiro de 32bits.
Bloco
UINT2_TO_UDINT
+-------------+
UINT ----|LSW |---- UDINT
| |
UINT ----|MSW |
+-------------+
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 32bits, este é enviado em 2 registros (16 bits) MODBUS sequenciais. Esta função agrupa estes registros retornando o valor original do dado.
Parâmetro
Nome |
Parâmetro |
Tipo Dado |
V. Ini. |
Descrição |
LSW |
Entrada |
UINT |
0 |
Word menos significativa |
MSW |
Entrada |
UINT |
0 |
Word mais significativa |
Retorno
Tipo Dado |
Descrição |
UDINT |
Resultado da composição dos valores LSW e MSW como um valor inteiro de 32 bits |
Exemplo
Declaração de Variáveis
Nome |
Tipo |
Valor Inicial |
Descrição |
|---|---|---|---|
vlsw |
UINT |
16#1234 |
Valor de lsw |
vmsw |
UINT |
16#5678 |
Valor de msw |
result |
UDINT |
Valor de saída |
Código ST
(* Exemplo de ativação da função dentro da POU *)
(* ... *)
result := HILS.UINT2_TO_UDINT(LSW := vlsw, MSW := vmsw);
// Result ira receber o valor 16#56781234
(* ... *)
Dica
Se as variáveis de entrada forem do tipo INT faça:
result := HILS.UINT2_TO_UDINT(LSW := INT_TO_UINT(vlsw), MSW := INT_TO_UINT(vmsw));