Lendo variáveis tipo float utilizando protocolo Modbus RTU

Tutoriais, duvidas e outras informações do SPDSW e OPPE
Post Reply
oliveirafabiano
Posts: 3
Joined: Sun Oct 28, 2018 12:41 am

Lendo variáveis tipo float utilizando protocolo Modbus RTU

Post 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 5591 times
Juliana
Posts: 26
Joined: Fri Feb 15, 2019 1:05 pm

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

Post 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.
oliveirafabiano
Posts: 3
Joined: Sun Oct 28, 2018 12:41 am

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

Post 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).
User avatar
phius
Moderadores
Posts: 57
Joined: Fri Dec 16, 2016 12:08 pm

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

Post 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.
Post Reply