Ao utilizar leitura via rede Modbus (RTU ou TCP), os valores do tipo FLOAT / REAL (32 bits) são transmitidos em 2 words e necessitam serem agrupados para que o valor possa ser lido:
No exemplo abaixo, o valor 123,456 está sendo lido via Modbus TCP de outro equipamento utilizando IO scanning. O valor recebido é:
Para conseguir agrupá-los em uma única variável e ler em formato REAL, a forma mais simples é utilizar a estrutura de memória do próprio PLC, que é organizado conforme abaixo:
Ex: A %MD0 é composta pela %MW0 e %MW1, portanto podemos mover os valores para as 2 words e ler o resultado na %MD0, declarando a mesma como REAL:
Quando colocado em execução, o resultado é:
OBS: Dependendo do equipamento escravo, a ordem das words pode ser recebida de forma invertida. Neste caso, fazer o swap das variáveis, alterando conforme exemplo abaixo:
Word_0_via_rede -> Word_1
Word_1_via_rede -> Word_0