- Home
- Modbus register maps
- Eastron
- SDM230-DI
Energy meter · Modbus register map
Eastron SDM230-DI Modbus register map
Updated 16 October 2026
The SDM230-DI is a single-phase, direct-connected (up to 100 A) DIN-rail energy meter with two digital inputs and an RS485 Modbus RTU port. Measurements, demand and energy totals are 32-bit IEEE floats in input registers (function 04); settings are held in holding registers (function 03 read, 16 write). This map covers the electrical values, import/export and resettable energy, demand, RS485 settings and the measurement-mode selector.
This page lists 41 Modbus registers for the Eastron SDM230-DI — 12 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Eastron’s own free documentation (linked below) and checked against it.
- Manufacturer
- Eastron
- Model
- SDM230-DI
- Equipment type
- Energy meter
- Registers
- 41 (12 writable)
- Transport
- Modbus RTU
- Default unit ID
- 1
- Default serial
- 9600 baud, 8N1
- Documented addressing
- Modicon 3xxxx/4xxxx (drop the prefix, subtract 1)
- 32-bit word order
- ABCD high word first (big-endian)
- Also known as
- SDM230 DI
- Source document
- SDM230-DI User Manual · 2025 V1.00 · rev. 2025-06-04
Integration notes: Eastron SDM230-DI
Read two-register floats with function 04: voltage at 0x0000, current 0x0006, active power 0x000C, import/export kWh at 0x0048/0x004A. Write settings with function 16 after unlocking with the password in the KPPA register.
Minimum registers to map
Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.
| Register | Name | Type | Why | Access |
|---|---|---|---|---|
| IR 0 | Voltage | FLOAT32 ABCD | Voltage | Read |
| IR 6 | Current | FLOAT32 ABCD | Current | Read |
| IR 12 | Active power | FLOAT32 ABCD | Active power | Read |
| IR 30 | Power factor | FLOAT32 ABCD | Power factor | Read |
| IR 70 | Frequency | FLOAT32 ABCD | Frequency | Read |
| IR 72 | Import active energy | FLOAT32 ABCD | Import kWh | Read |
| IR 74 | Export active energy | FLOAT32 ABCD | Export kWh | Read |
Enable Modbus control & writes
Modbus RTU is always on at the RS485 terminals. To change key settings, write the password (default 1000) as a float to 40015 (KPPA) first; a read of 40015 returns 1 when unlocked.
Byte order & addressing
- Settings such as address and baud code are 32-bit floats over two registers; DI filter time, reset, measurement mode, meter code, version and program number are single 16-bit registers.
- Power factor carries a sign for current direction: positive for forward current, negative for reverse.
Network setup
- Defaults: address 1, 9600 bps, 8 data bits, no parity, 1 stop bit.
- Address 1-247; up to 64 meters per bus and 1000 m cable per the manual.
- Comm settings can also be changed from the front-panel setup menu.
Watch out for
- The Int64 energy and Int32 reading blocks (310001 onwards) are not mapped because their word order is not documented; use the float registers.
Eastron SDM230-DI Modbus registers
Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| IR | 0doc 30001 | Voltage | Line-to-neutral RMS voltage. | FLOAT32 | ABCD | V | Read | ||
| IR | 6doc 30007 | Current | FLOAT32 | ABCD | A | Read | |||
| IR | 12doc 30013 | Active power | FLOAT32 | ABCD | W | Read | |||
| IR | 18doc 30019 | Apparent power | FLOAT32 | ABCD | VA | Read | |||
| IR | 24doc 30025 | Reactive power | FLOAT32 | ABCD | VAr | Read | |||
| IR | 30doc 30031 | Power factor | Sign follows current direction: negative means reverse flow. | FLOAT32 | ABCD | Read | |||
| IR | 36doc 30037 | Phase angle | FLOAT32 | ABCD | Degrees | Read | |||
| IR | 70doc 30071 | Frequency | FLOAT32 | ABCD | Hz | Read | |||
| IR | 72doc 30073 | Import active energy | FLOAT32 | ABCD | kWh | Read | |||
| IR | 74doc 30075 | Export active energy | FLOAT32 | ABCD | kWh | Read | |||
| IR | 76doc 30077 | Import reactive energy | FLOAT32 | ABCD | kVArh | Read | |||
| IR | 78doc 30079 | Export reactive energy | FLOAT32 | ABCD | kVArh | Read | |||
| IR | 80doc 30081 | Apparent energy | FLOAT32 | ABCD | kVAh | Read | |||
| IR | 82doc 30083 | Ah | Accumulated ampere-hours. | FLOAT32 | ABCD | Ah | Read | ||
| IR | 84doc 30085 | Total active power demand | Footnoted as 'import – export' in the manual; see notes. | FLOAT32 | ABCD | W | Read | ||
| IR | 86doc 30087 | Max total active power demand | Footnoted as 'import – export' in the manual; see notes. | FLOAT32 | ABCD | W | Read | ||
| IR | 88doc 30089 | Import active power demand | FLOAT32 | ABCD | W | Read | |||
| IR | 90doc 30091 | Import active power max demand | FLOAT32 | ABCD | W | Read | |||
| IR | 92doc 30093 | Export active power demand | FLOAT32 | ABCD | W | Read | |||
| IR | 94doc 30095 | Export active power max demand | FLOAT32 | ABCD | W | Read | |||
| IR | 258doc 30259 | Current demand | FLOAT32 | ABCD | A | Read | |||
| IR | 264doc 30265 | Max current demand | FLOAT32 | ABCD | A | Read | |||
| IR | 342doc 30343 | Total kWh | Import plus export active energy. | FLOAT32 | ABCD | kWh | Read | ||
| IR | 344doc 30345 | Total kVArh | Import plus export reactive energy. | FLOAT32 | ABCD | kVArh | Read | ||
| IR | 384doc 30385 | Resettable total active energy | Partial counter. | FLOAT32 | ABCD | kWh | Read | ||
| IR | 386doc 30387 | Resettable total reactive energy | Partial counter. | FLOAT32 | ABCD | kVArh | Read | ||
| HR | 2doc 40003 | Demand period | 0 to 60 minutes; 0 updates demand every second. Default 60. | FLOAT32 | ABCD | min | Read/write | ||
| HR | 14doc 40015 | Key parameter programming authorization (KPPA) | Read 0/1 authorization state; write the password to unlock key settings. | FLOAT32 | ABCD | Read/write | 0 = Not authorized; 1 = Authorized | ||
| HR | 18doc 40019 | Parity / stop bits | RS485 framing. Default one stop bit, no parity. | FLOAT32 | ABCD | Read/write | 0 = 1 stop bit, no parity; 1 = 1 stop bit, even parity; 2 = 1 stop bit, odd parity; 3 = 2 stop bits, no parity | ||
| HR | 20doc 40021 | Modbus address | Node address 1 to 247. Default 1. | FLOAT32 | ABCD | Read/write | |||
| HR | 24doc 40025 | Password | Range 0000 to 9999. Default 1000. | FLOAT32 | ABCD | Read/write | |||
| HR | 28doc 40029 | Baud rate | Default 9600. | FLOAT32 | ABCD | Read/write | 0 = 2400; 1 = 4800; 2 = 9600; 3 = 19200; 4 = 38400; 6 = 115200 | ||
| HR | 58doc 40059 | Automatic scrolling display | 0 to 30 s; 0 disables scrolling. Default 0. | FLOAT32 | ABCD | s | Read/write | ||
| HR | 60doc 40061 | Backlight time | 0 to 121; 0 keeps backlight on, 121 keeps it off. Default 60. | FLOAT32 | ABCD | min | Read/write | ||
| HR | 768doc 40769 | DI filter time | Digital input debounce time, 0 to 255 ms. Default 100. | UINT16 | ms | Read/write | |||
| HR | 61456doc 461457 | Reset | Write a code to clear stored values. | UINT16 | Write | 0 = Reset maximum demand; 6 = Reset DI counts | |||
| HR | 63776doc 463777 | Measurement mode | How the meter forms its total energy. | UINT16 | Read/write | 1 = Total = import; 2 = Total = import + export; 3 = Total = import - export | |||
| HR | 63792doc 463793 | Running time | Accumulated operating time in hours. | FLOAT32 | ABCD | h | Read/write | ||
| HR | 64514doc 464515 | Meter code | Model identification code (hex). | UINT16 | Read | ||||
| HR | 64644doc 464645 | Software version | High byte and low byte form version XX.YY. | UINT16 | Read | ||||
| HR | 64646doc 464647 | Program number | Firmware program identifier (hex). | UINT16 | Read |
Notes on this map
- Word order: the manual states that floats are sent big-endian with the first register holding the high 16 bits, and its example returns 42 70 00 00 for 60 minutes. All floats here are ABCD.
- The input table footnote says total kWh/kVArh is import plus export; the measurement-mode register (463777) can change how the meter forms its total, so check that setting if totals look wrong.
- Left out: Int64 energy (Wh / VArh, from 310001) and Int32 scaled readings (from 310251), because the manual states big-endian order only for floats.
- Left out: DI-1/DI-2 counters (40770/40772) and serial number (464513), unsigned 32-bit values with no stated word order.
- The reset register also lists a kWh reset code, but the code is blank in the manual, so only the demand (0000) and DI-count (0006) codes are given.
- Demand footnote: the manual says the power-sum demand is calculated for 'import – export' (en dash) without saying whether that means net import minus export or both directions combined; check on a live meter if the sign matters.
Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.
Questions about the Eastron SDM230-DI
What Modbus registers does the Eastron SDM230-DI have?
This map lists 41 registers: 26 input registers, 15 holding registers. 12 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Eastron SDM230-DI Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers Modicon 3xxxx/4xxxx (drop the prefix, subtract 1). Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. Registers are printed Modicon style (30001, 40003, six-digit 463777...) next to the hex start address sent on the wire. Wire address = printed number minus 30001 / 40001 / 400001; the manual's example reads 40003 at start address 0x0002.
What byte order does the Eastron SDM230-DI use for 32-bit values?
Multi-register values in this map use ABCD (high word first (big-endian)). Set your client to this order for every 32/64-bit value in the table.
What are the minimum Modbus registers to integrate the Eastron SDM230-DI?
Start with IR 0 Voltage (Voltage); IR 6 Current (Current); IR 12 Active power (Active power); IR 30 Power factor (Power factor); IR 70 Frequency (Frequency); IR 72 Import active energy (Import kWh); IR 74 Export active energy (Export kWh).
How do I enable Modbus control of the Eastron SDM230-DI?
Modbus RTU is always on at the RS485 terminals. To change key settings, write the password (default 1000) as a float to 40015 (KPPA) first; a read of 40015 returns 1 when unlocked.
Where is the official Eastron SDM230-DI Modbus documentation?
The source is SDM230-DI User Manual (2025 V1.00), revision 2025-06-04, published free by Eastron at https://www.eastrongroup.com/eastrongroup/2025/06/17/eastronsdm230-diusermanualv1.00.pdf.
More Eastron Modbus register maps
- Energy meter
Eastron SDM120CT-40mA
Eastron SDM120CT-40mA single-phase CT-connected DIN-rail meter with RS485 Modbus RTU, user manual V1.0 (2026-07-16).
Also known as: SDM120CT-M-40mA, SDM120CT-M 40mA - Energy meter
Eastron SDM630-DI
Eastron SDM630-DI three-phase DIN-rail meter (100 A direct, two digital inputs, RS485 Modbus RTU), manual V1.02.
Also known as: SDM630 DI - Energy meter
Eastron SDM630MCT
Eastron SDM630MCT three-phase CT-connected DIN-rail meter with RS485 Modbus RTU, protocol implementation V1.7.
Also known as: SDM630 MCT
Source: SDM230-DI User Manual · 2025 V1.00 · rev. 2025-06-04. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.