Downloads

Pergunta

Como acessar valores inteiros em 32 bits [L] dos controladores HI, utilizando o protocolo ModBus?

Resposta

Atualizado em Abril 7, 2014, 6:03 p.m.

Os equipamentos da HI tecnologia com firmware G3 possuem suporte para operação com variáveis do tipo Long (inteiros de 32 bits com sinal).

Considerando a utilização do protocolo Modbus-RTU/TCP para leitura e/ou escrita de memórias Long (L) na base de dados dos controladores da HI tecnologia, deve-se:

1) Calcular o endereço da variável L utilizando a seguinte fórmula:

  • Endereço = 20000 + Lxxxx * 2, onde:

    • 20000: Offset para acesso às variáveis L dos controladores HI. Alguns equipamentos e/ou aplicativos consideram como primeiro endereço de uma variável o endereço "1" ao invés de "0". Neste caso o offset deve ser acrescido de "1", devendo ser considerado como offset o valor "20001".

    • Lxxxx: Número da variável L a ser acessada no controlador HI
  • Exemplo 1: Para acessar a variável L1 devemos especificar o seguinte endereço:

Endereço = 20000 + 1 * 2 = 20002 (considerando offset 20000) Endereço = 20001 + 1 * 2 = 20003 (considerando offset 20001)

  • Exemplo 2: Para acessar a variável L5, devemos especificar o seguinte endereço:

Endereço = 20000 + 5 * 2 = 20010 (considerando offset 20000) Endereço = 20001 + 5 * 2 = 20011 (considerando offset 20001)

e assim, sucessivamente.

2) Solicitar 2 registros para cada variável L a ser acessada no controlador HI, pois, como o tipo de dado L é de 32 bits (4 bytes), devemos mapeá-lo em 2 registros do tipo "holding register".

Por exemplo, para leitura da variável L2, deve-se montar um comando Modbus “Read Holding Register”, especificando:

  • Endereço = 20004 ou 20005. Endereço da variável L2 no controlador HI.
  • Quantidade = 2. Quantidade de registros "holding register" a serem lidos no controlador HI. No caso, uma única variável do tipo L (4 bytes) do controlador HI mapeado em 2 "holding register" (4 bytes) do protocolo ModBus.

O valor dos 2 registros "holding registers" obtidos do controlador HI corresponde a um único valor L.

Veja também:

ID Pergunta