Downloads

Pergunta

Como acessar valores em ponto flutuante [D] dos controladores HI utilizando o protocolo MODBUS?

Resposta

Atualizado em Dez. 3, 2013, 10:02 a.m.

Considerando a utilização do protocolo MODBUS (RTU ou TCP), para leitura ou escrita de memórias em ponto flutuante (D) nos controladores da HI Tecnologia, deve-se:

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

  • Endereço = Dxxxx * 2 + Offset, onde:

    • Dxxxx: Número da variável D a ser obtida ou escrita no controlador;
    • Offset: Offset para caracterizar acesso a base D, visto que no protocolo MODBUS este tipo de variável não existe. A princípio, o valor deste offset é 10000. 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 "10001".

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

Endereço = 5 * 2 + 10000 = 10010 (considerando que o endereçamento começa em 0) Endereço = 5 * 2 + 10001 = 10011 (considerando que o endereçamento começa em 1)

2) Obter a variável através de um comando MODBUS “Read Holding Register” solicitando 2 registros para cada variável D a ser lida do controlador. Isto é necessário porque o tipo de dado D possui tamanho de 32 bits (4 bytes), enquanto o tipo Holding Register do protocolo MODBUS espera um valor de 16 bits (2 bytes).

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

  • Endereço = 10004 ou 10005. Endereço da variável D2 no controlador HI.
  • Quantidade = 2. Quantidade de registros "Holding Register" a serem lidos no controlador HI.

O valor dos 2 registros "Holding Registers" obtidos do controlador HI correspondem a um único valor em ponto flutuante, mapeado em 4 bytes no formato IEEE.

Veja também:

ID Pergunta