Page 1 of 1

Lendo variáveis tipo float utilizando protocolo Modbus RTU

Posted: Wed Mar 06, 2019 2:47 am
by oliveirafabiano
Estou tentando ler variáveis em um multimedidor Kron, através de um Neon como mestre. Tentei no bloco SCB usar a função "5", porém é somente para variáveis tipo Word. A que estou tentando é do tipo "Read input register" em float (32 bits). Teria como juntar 2 words e transformá-las em float?
Segue a sequência do formato dos dados.
Tela Multimedidor.png
Tela Multimedidor.png (64.51 KiB) Viewed 5655 times

Re: Lendo variáveis tipo float utilizando protocolo Modbus RTU

Posted: Wed Mar 06, 2019 12:26 pm
by Juliana
{Editado em 12/mar}
Prezado Fabiano,
Você pode obter as variáveis de 32 bits ao ler duas variáveis do tipo input register conforme o endereço fornecido pelo fabricante, no caso, os medidores Kron.
Utilize o bloco de comunicação SCB 235, com código de função 2, que disponibiliza as variáveis lidas inteira de 32 bits em variáveis do tipo D.
O programa de exemplo EPE.00048- Comunicação remota com dispositivos utilizando Protocolo ModBus-RTU/TCP irá te auxiliar na implementação.

Qualquer dúvida, permanecemos a disposição.

Re: Lendo variáveis tipo float utilizando protocolo Modbus RTU

Posted: Wed Mar 27, 2019 7:43 pm
by oliveirafabiano
Juliana, não funcionou!
Acredito que seja porque o código de função 2 que você mencionou do bloco, se refere a "Read Holding Register" que é a função "03" no protocolo Modbus. A variável que estou tentando ler é do tipo "Read Input Registers" que se refere a função "04" no protocolo.
O único código de função que lê esse tipo de variável, no bloco de comunicação é o "5", porém acredito que só leia word (16 bits).

Re: Lendo variáveis tipo float utilizando protocolo Modbus RTU

Posted: Thu Mar 28, 2019 7:02 pm
by phius
Fabiano, neste caso você precisará fazer a leitura de 2 Input Registers, que seria o código = 5, e guardar em 2 memórias M.

Depois você pode utilizar o comando de "Troca de Variáveis" e mover esses 2 "M" em uma memória "D".

Veja a documentação do comando de "Troca de Variáveis" aqui.