Legrand EMDX3 4 120 45 Modbus register map
EMDX3 multifunction measuring unit, RS-485 Modbus RTU
- Official
- 131 registers
- Modbus RTU
- Revision 1 · 2026-10-18
- Identity: model
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 1
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit defaults
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 131 holding registers
- Groups
- 12
- Translation tables
- 12
- Revision
- 1 · 2026-10-18
- Added
- ()
- File
- maps/legrand/emdx3-412045.mbmap.json · 25 KB · history
- SHA-256
- aa6d06c710f1db1b8570f2458f4833c8e00db2b03037c0cf83420da715e024dc
- Manufacturer
- legrand.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Model | Device identifier | holding 768 | uint16 | 4112 = EMDX3 4 120 45 |
Sources and notes
Source: Legrand EMDX3 Measuring Unit RS485 Modbus table, cat. no. 4 120 45
- The table calls the measurement block 'input registers' but lists only function codes 3 (read) and 16 (write), so every register is read as a holding register.
- Only the sections of the table that hold measurements and settings are mapped. The 'Register Number' column of the manual is the address plus one; this map uses the address column.
- Voltages are in mV and currents in mA. Powers and energies are raw counts whose unit depends on the CT ratio (register 4608): powers are 0.01 W, 0.01 var or 0.01 VA when CT < 5000 and 1 W, 1 var or 1 VA when CT >= 5000; energies are 10 Wh to 1 MWh per count as the manual's note 2 lists by CT ratio. Use the signed block at 5400 (always in W, var and VA) when a fixed scale is wanted.
- A sign register next to each power value says if it is positive (0) or negative (1); the power itself is unsigned.
- In a 3-wire network without neutral the voltage THD and the voltage minimum and maximum registers refer to the chained voltages instead of the phase voltages (note 3 of the manual).
- Writing settings: write 0x5AA5 to register 9984, write the new values, write 0x5AA5 to 9984 again and then 0x000A to 9728 to save them. Writing 0x000B to 10240 after unlocking restores the defaults.
- The manual gives no factory serial settings: baud rate and parity are programmable, one stop bit, device address 1 to 247. The defaults in this file are the format's defaults.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 768 | uint16 | R | Returns 0x1010 | |||
| HR | 4096 | uint32 ABCD | R | V | ×0.001 | ||
| HR | 4098 | uint32 ABCD | R | V | ×0.001 | ||
| HR | 4100 | uint32 ABCD | R | V | ×0.001 | ||
| HR | 4102 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4104 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4106 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4108 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4110 | uint32 ABCD | R | V | ×0.001 | ||
| HR | 4112 | uint32 ABCD | R | V | ×0.001 | ||
| HR | 4114 | uint32 ABCD | R | V | ×0.001 | ||
| HR | 4116 | uint32 ABCD | R | 3-phase; 0.01 W when CT < 5000, 1 W otherwise; sign in register 4122 | |||
| HR | 4118 | uint32 ABCD | R | 3-phase; 0.01 var when CT < 5000, 1 var otherwise; sign in register 4123 | |||
| HR | 4120 | uint32 ABCD | R | 3-phase; 0.01 VA when CT < 5000, 1 VA otherwise | |||
| HR | 4122 | uint16 | R | ||||
| HR | 4123 | uint16 | R | ||||
| HR | 4124 | uint32 ABCD | R | Unit set by the CT ratio (note 2), in Wh; the wrap-around counter at 5440 counts each 100 000 000 | |||
| HR | 4126 | uint32 ABCD | R | Unit set by the CT ratio (note 2), in varh | |||
| HR | 4128 | uint32 ABCD | R | Unit set by the CT ratio (note 2), in Wh | |||
| HR | 4130 | uint32 ABCD | R | Unit set by the CT ratio (note 2), in varh | |||
| HR | 4132 | int16 | R | ×0.01 | 3-phase | ||
| HR | 4133 | uint16 | R | 3-phase | |||
| HR | 4134 | uint16 | R | Hz | ×0.1 | ||
| HR | 4135 | uint32 ABCD | R | 3-phase; 0.01 W when CT < 5000, 1 W otherwise | |||
| HR | 4137 | uint32 ABCD | R | 3-phase; 0.01 W when CT < 5000, 1 W otherwise | |||
| HR | 4139 | uint16 | R | min | |||
| HR | 4140 | uint32 ABCD | R | 0.01 W when CT < 5000, 1 W otherwise; sign in register 4146 | |||
| HR | 4142 | uint32 ABCD | R | 0.01 W when CT < 5000, 1 W otherwise; sign in register 4147 | |||
| HR | 4144 | uint32 ABCD | R | 0.01 W when CT < 5000, 1 W otherwise; sign in register 4148 | |||
| HR | 4146 | uint16 | R | ||||
| HR | 4147 | uint16 | R | ||||
| HR | 4148 | uint16 | R | ||||
| HR | 4149 | uint32 ABCD | R | 0.01 var when CT < 5000, 1 var otherwise; sign in register 4155 | |||
| HR | 4151 | uint32 ABCD | R | 0.01 var when CT < 5000, 1 var otherwise; sign in register 4156 | |||
| HR | 4153 | uint32 ABCD | R | 0.01 var when CT < 5000, 1 var otherwise; sign in register 4157 | |||
| HR | 4155 | uint16 | R | ||||
| HR | 4156 | uint16 | R | ||||
| HR | 4157 | uint16 | R | ||||
| HR | 4158 | uint32 ABCD | R | 0.01 VA when CT < 5000, 1 VA otherwise | |||
| HR | 4160 | uint32 ABCD | R | 0.01 VA when CT < 5000, 1 VA otherwise | |||
| HR | 4162 | uint32 ABCD | R | 0.01 VA when CT < 5000, 1 VA otherwise | |||
| HR | 4164 | int16 | R | ×0.01 | |||
| HR | 4165 | int16 | R | ×0.01 | |||
| HR | 4166 | int16 | R | ×0.01 | |||
| HR | 4167 | uint16 | R | ||||
| HR | 4168 | uint16 | R | ||||
| HR | 4169 | uint16 | R | ||||
| HR | 4170 | uint16 | R | % | ×0.1 | Chained voltage when there is no neutral | |
| HR | 4171 | uint16 | R | % | ×0.1 | Chained voltage when there is no neutral | |
| HR | 4172 | uint16 | R | % | ×0.1 | Chained voltage when there is no neutral | |
| HR | 4173 | uint16 | R | % | ×0.1 | ||
| HR | 4174 | uint16 | R | % | ×0.1 | ||
| HR | 4175 | uint16 | R | % | ×0.1 | ||
| HR | 4176 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4178 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4180 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4182 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4184 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4186 | uint32 ABCD | R | A | ×0.001 | ||
| HR | 4188 | uint32 ABCD | R | A | ×0.001 | (I1 + I2 + I3) / 3 | |
| HR | 4190 | uint32 ABCD | R | V | ×0.001 | Chained voltage when there is no neutral | |
| HR | 4192 | uint32 ABCD | R | V | ×0.001 | Chained voltage when there is no neutral | |
| HR | 4194 | uint32 ABCD | R | V | ×0.001 | Chained voltage when there is no neutral | |
| HR | 4196 | uint32 ABCD | R | V | ×0.001 | Chained voltage when there is no neutral | |
| HR | 4198 | uint32 ABCD | R | V | ×0.001 | Chained voltage when there is no neutral | |
| HR | 4200 | uint32 ABCD | R | V | ×0.001 | Chained voltage when there is no neutral | |
| HR | 4202 | uint32 ABCD | R | Unit set by the CT ratio (note 2), in Wh | |||
| HR | 4204 | uint32 ABCD | R | Unit set by the CT ratio (note 2), in varh | |||
| HR | 4206 | uint16 | R | h | |||
| HR | 4208 | uint32 ABCD | R | 3-phase; 0.01 W when CT < 5000, 1 W otherwise | |||
| HR | 4210 | uint32 ABCD | R | 3-phase; 0.01 var when CT < 5000, 1 var otherwise | |||
| HR | 4212 | uint32 ABCD | R | 3-phase; 0.01 VA when CT < 5000, 1 VA otherwise | |||
| HR | 4214 | uint32 ABCD | R | 3-phase; 0.01 W when CT < 5000, 1 W otherwise | |||
| HR | 4216 | uint32 ABCD | R | 3-phase; 0.01 var when CT < 5000, 1 var otherwise | |||
| HR | 4218 | uint32 ABCD | R | 3-phase; 0.01 VA when CT < 5000, 1 VA otherwise | |||
| HR | 4220 | uint32 ABCD | R | min | |||
| HR | 4608 | uint16 | R | Primary current divided by secondary current; sets the unit of powers and energies | |||
| HR | 5400 | int32 ABCD | R | W | |||
| HR | 5402 | int32 ABCD | R | var | |||
| HR | 5404 | int32 ABCD | R | W | |||
| HR | 5406 | int32 ABCD | R | W | |||
| HR | 5408 | int32 ABCD | R | W | |||
| HR | 5410 | int32 ABCD | R | var | |||
| HR | 5412 | int32 ABCD | R | var | |||
| HR | 5414 | int32 ABCD | R | var | |||
| HR | 5416 | int32 ABCD | R | ×0.001 | |||
| HR | 5418 | int32 ABCD | R | ×0.001 | |||
| HR | 5420 | int32 ABCD | R | ×0.001 | |||
| HR | 5422 | int32 ABCD | R | ×0.001 | |||
| HR | 5424 | uint32 ABCD | R | VA | |||
| HR | 5426 | uint32 ABCD | R | W | |||
| HR | 5428 | uint32 ABCD | R | var | |||
| HR | 5430 | uint32 ABCD | R | VA | |||
| HR | 5432 | uint32 ABCD | R | W | |||
| HR | 5434 | uint32 ABCD | R | var | |||
| HR | 5436 | uint32 ABCD | R | VA | |||
| HR | 5440 | uint16 | R | Counts each time the energy register passes 100 000 000 | |||
| HR | 5441 | uint16 | R | ||||
| HR | 5442 | uint16 | R | ||||
| HR | 5443 | uint16 | R |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).