Problems reading modbus REAL from energymeters

Hi!

I´m trying to read values from several Schneider iEM3250 energy meters, all of them giving me the same problem.
Refer to the manual for modbus info: (https://www.se.com/ww/en/product/A9MEM3250/iem3250-energy-meter---ct---modbus/)

For example, on page 60 there's a list of registers for voltages, starting at 3020 and incrementing by 2.
The document says size:2 and type Float32. Each being 16bit value I suppose which then makes sense.

In citect I connect using the MODBUS1 protocol, and addressing them as Holding, function 4 in citect.
So the addresses are 43020, 43022, 43024 ... etc.

All the phase-phase voltages reads good, but only the first two phase-neutral reads good. The last one reports -nan in runtime. (address 43032).

When using a modbus poll program (AVreporter modbus communication tester) I find that the addresses I read from citect varies a lot in value, while the following address stays quite still.
I suppose when addressing REAL citect combines two bytes into a REAL value?

All the addresses that works has a following value of around 17500, but the non-working address has a value of 65470.
I don´t know, but starting to guess that citect expects a signed INT, but gets an unsigned INT a freaks out?

Anyone got an idea?

Regards
Anders

Parents
  • I think Iv'e found it!

    I went full mental and addressed ALL addresses between like 43010 up to 43040 and just had a look. Addressed them as G4nnnn made it compileable.

    Well, it seemed like I was 2 off in addresses, so subtracting 1 from every address and changing to MODBUS (from MODBUS1) protocol solved it!
    This is not the first time Iv'e encountered this, and it feels wrong doing this. But now it works at least.

Reply
  • I think Iv'e found it!

    I went full mental and addressed ALL addresses between like 43010 up to 43040 and just had a look. Addressed them as G4nnnn made it compileable.

    Well, it seemed like I was 2 off in addresses, so subtracting 1 from every address and changing to MODBUS (from MODBUS1) protocol solved it!
    This is not the first time Iv'e encountered this, and it feels wrong doing this. But now it works at least.

Children
No Data