UINT2_TO_REAL
Recebe 2 valores inteiros de 16 bits e retorna o valor real associado.
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 do tipo REAL (32bits), este é enviado em 2 registros (16 bits) MODBUS sequenciais. Esta função agrupa estes registros retornando o valor original do dado.
Bloco
UINT2_TO_REAL
+-------------+
UINT ----|LSW |---- REAL
| |
UINT ----|MSW |
+-------------+
Dica
Para conhecer melhor o recurso e suas funcionalidades acesse o vídeo tutorial: Trabalhando com Bloco de Função UINT2_TO_REAL.
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 |
REAL |
Resultado da composição dos valores LSW e MSW como um valor real de 32 bits |
Exemplo
Declaração de Variáveis
Nome |
Tipo |
Valor Inicial |
Descrição |
|---|---|---|---|
vlsw |
UINT |
16#AB93 |
Valor de lsw |
vmsw |
UINT |
16#1638 |
Valor de msw |
result |
REAL |
Valor de saída |
Código ST
(* Exemplo de ativação da função dentro da POU *)
(* ... *)
result := HILS.UINT2_TO_REAL(LSW := vlsw, MSW := vmsw);
(* ... *)
Dica
Se as variáveis de entrada forem do tipo INT faça:
result := HILS.UINT2_TO_REAL(LSW := INT_TO_UINT(vlsw), MSW := INT_TO_UINT(vmsw));