Schneider Power Meter Modbus


TheKPAXian

Recommended Posts

Hi,

 

we have an Schneider iEM3150 Power Meter and an USB to RS485 Converter.

 

I'm trying to read a value from the Power Meter over Modbus, but I only get Modbus errors. For some addresses is Modbus error #-53, for others is Modbus error #61. Any help would be appreciated.

 

Currently testing the DAQ Factory demo version.

Link to comment
Share on other sites

Those are non-standard error codes.  -53 is actually presumably 203 because DAQFactory is returning a signed error code and I'm guessing the device is returning an unsigned one.  Both this and 61 are non-standard and you'd have to contact Schneider or refer to their help.  I couldn't find error codes in their manual.  A few points I did notice:

 

1) they have some data types that are 64 integers.  DAQFactory won't read these straight up in a single channel.  You'll have to read the values as four consecutive registers, which can be done by reading two consecutive (+2) 32 bit unsigned integers and then combining them yourself.  I would imagine if you tried to read just 2 of the registers and not all 4 the device will give an error

2)  this device uses 0 index notation but then unfortunately also has some registers in the 40000 range, just to make things confusing.  If you read the 40000 registers (like 45100) then DAQFactory will think you have +1 notation and will shift all your registers.  To force DAQFactory to use 0 index notation read a single register in the 50000 range.  This can be done in a startup script:

 

try

   Device.myDevice.readHoldingU16(ID, 50001, 1)

catch()

endcatch

 

Change ID to your device's ID, and myDevice to the name of the device.  The try/catch is required because the poll will likely generate an error since 50001 doesn't exist and this will keep the error from stopping the sequence.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.