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