Modbus and SDM530-Modbus smart meter

Andrzej Szymkowicz 3 years ago in Devices / Modbus 0


Does any one can help how to configure modbus device in order to read meeters (e.g. L1 Voltage)?

I can reed some value but something is wrong with coding.

Here you have information from the manual (mull manual: http://eastrongroupco.hk02.057321.com/data/uploads/Eastron_SDM530-Modbus_protocol_V1_1.pdf)

The format for each byte in RTU mode is:

Coding System: Data Format:

Error Check Field: Framing:

8-bit per byte 4 bytes (2 registers) per parameter.

Floating point format ( to IEEE 754) Most significant register first (Default). The default may be changed if required -See Holding Register "Register Order" parameter. 2 byte Cyclical Redundancy Check (CRC) 1 start bit 8 data bits, least significant bit sent first 1 bit for even/odd parity (or no parity) 1 stop bit if parity is used; 1 or 2 bits if no parity

Data Coding All data values in the SDM530-Modbus smart meter are transferred as 32 bit IEEE754 floating point numbers, (input and output) therefore each SDM530-Modbus meter value is transferred using two Modbus Protocol registers. All register read requests and data write requests must specify an even number of registers. Attempts to read/write an odd number of registers prompt

the SDM530-Modbus smart meter to return a Modbus Protocol exception message. However, for compatibility with some SCADA systems, SDM530-Modbus Smart meter will response to any single input or holding register read with an instrument type specific value.

The SDM530-Modbus can transfer a maximum of 40 values in a single transaction; therefore the maximum number of registers requestable is 80. Exceeding this limit prompts the SDM530-Modbus to generate an exception response.

Data transmission speed is selectable between 2400, 4800, 9600,

1.2 Input register

Input registers are used to indicate the present values of the measured and calculated electrical quantities. Each parameter is held in two consecutive16 bit register.The following table details the 3X register address, and the values of the address bytes within the message. A (*) in the column indicates that the parameter is valid for the particular wiring system. Any parameter with a cross(X) will return the value zero. Each parameter is held in the 3X registers. Modbus Protocol function code 04 is used to access all parameters.