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

Clique aqui para baixar a tabela de variáveis

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));