Pergunta
Resposta
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.