Carlo Gavazzi EM530 / EM540 Modbus register map
Also covers EM530DINAV53XS1X
Three-phase energy analysers with RS485 (EM530 and EM540, standard and MID PFA/PFB/PFC). Some setup registers are read-only or missing on MID and AV2 models
- Verified
- 262 registers
- Modbus RTU
- Revision 4 · 2026-11-10
- Identity: serial number
Verified: Tested on a real device.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 1
- Serial
- 9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
- Byte / word order
- CDAB · bytes big-endian, words low first (word swap)
- Addresses
- 0-based
- Max read
- 20 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 262 holding registers
- Groups
- 21
- Translation tables
- 4
- Revision
- 4 · 2026-11-10
- Firmware
- 1.3.3
- Added
- ()
- File
- maps/carlo-gavazzi/em530-em540.mbmap.json · 47 KB · history
- SHA-256
- f6d382db5f07ce7cc82b590fd39a43dbe7f78152321b610cd1ff4fb33ad9a504
- Manufacturer
- gavazziautomation.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 |
|---|---|---|---|---|
| Serial number | Serial number | holding 20480 | string[7] |
Sources and notes
Source: Carlo Gavazzi, "EM530/EM540 Modbus communication protocol", public version 1.3 (2024-02-13), tables 4.1-4.24; https://www.gavazziautomation.com/fileadmin/images/PIM/OTHERSTUFF/COMPRO/EM500_CPP_Mod_V1.3_13022024.pdf
- Carlo Gavazzi EM530 and EM540 energy analysers (RS485).
- FC03 and FC04 return the same values; this map reads everything as holding registers.
- Tables 4.1 and 4.2 of the protocol hold the same values at two addresses; the second copy is in the group "By phase (copy)".
- Tested on EM530DINAV53XS1X (EM530 X), firmware 1.3.3, October 2026, over RS485. Checked: voltage, frequency, device and setup registers, the "By phase (copy)" group and the 32-bit word order. Current, power, power factor and energy were read with no current flowing, and the per-phase registers of L2 and L3 were not tested under load.
- A second unit was tested under load (about 15.5 A per phase) over RS485 at 9600 baud, November 2026: 252 of 257 registers read. Checked: voltages, currents, power, power factor, frequency, THD, demand, energies, the "By phase (copy)" group, setup and the 32-bit word order. Apparent power matches active and reactive power on every phase (L2: 2628 W and 2628 var give 3715.8 VA), the per-phase kWh add up to the total (20111.5 against 20111.7 kWh) and the 64-bit Wh copies agree with the 0.1 kWh values.
- Digital input status (768), Active tariff (769) and the firmware word (770, firmware 1.3.3) answered illegal address when read together as one block of 3 registers, but each read fine on its own (768 and 769 as a block of 2, 770 alone). The meter refuses a read that runs from 0301h into 0302h, so the map reads 770 alone (read_alone) and 768 and 769 together (read_group). The identification code (11) read 0, which is not in the model list, and FC17 got no reply.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 0 | int32 CDAB | R | V | ×0.1 | ||
| HR | 2 | int32 CDAB | R | V | ×0.1 | ||
| HR | 4 | int32 CDAB | R | V | ×0.1 | ||
| HR | 6 | int32 CDAB | R | V | ×0.1 | ||
| HR | 8 | int32 CDAB | R | V | ×0.1 | ||
| HR | 10 | int32 CDAB | R | V | ×0.1 | ||
| HR | 12 | int32 CDAB | R | A | ×0.001 | ||
| HR | 14 | int32 CDAB | R | A | ×0.001 | ||
| HR | 16 | int32 CDAB | R | A | ×0.001 | ||
| HR | 18 | int32 CDAB | R | W | ×0.1 | ||
| HR | 20 | int32 CDAB | R | W | ×0.1 | ||
| HR | 22 | int32 CDAB | R | W | ×0.1 | ||
| HR | 24 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 26 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 28 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 30 | int32 CDAB | R | var | ×0.1 | ||
| HR | 32 | int32 CDAB | R | var | ×0.1 | ||
| HR | 34 | int32 CDAB | R | var | ×0.1 | ||
| HR | 36 | int32 CDAB | R | V | ×0.1 | ||
| HR | 38 | int32 CDAB | R | V | ×0.1 | ||
| HR | 40 | int32 CDAB | R | W | ×0.1 | ||
| HR | 42 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 44 | int32 CDAB | R | var | ×0.1 | ||
| HR | 46 | int16 | R | ×0.001 | Negative = exported active power, positive = imported. See the L/C rows for inductive or capacitive load | ||
| HR | 47 | int16 | R | ×0.001 | Negative = exported active power, positive = imported. See the L/C rows for inductive or capacitive load | ||
| HR | 48 | int16 | R | ×0.001 | Negative = exported active power, positive = imported. See the L/C rows for inductive or capacitive load | ||
| HR | 49 | int16 | R | ×0.001 | Negative = exported active power, positive = imported. See the L/C rows for inductive or capacitive load | ||
| HR | 50 | int16 | R | Meaningful only in a 3-phase system | |||
| HR | 51 | int16 | R | Hz | ×0.1 | ||
| HR | 52 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 54 | int32 CDAB | R | kvarh | ×0.1 | ||
| HR | 56 | int32 CDAB | R | W | ×0.1 | ||
| HR | 58 | int32 CDAB | R | W | ×0.1 | ||
| HR | 60 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 62 | int32 CDAB | R | kvarh | ×0.1 | ||
| HR | 64 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 66 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 68 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 70 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 72 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 78 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 80 | int32 CDAB | R | kvarh | ×0.1 | ||
| HR | 82 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 84 | int32 CDAB | R | kvarh | ×0.1 | ||
| HR | 86 | int32 CDAB | R | kVAh | ×0.1 | ||
| HR | 88 | int32 CDAB | R | kVAh | ×0.1 | ||
| HR | 90 | int32 CDAB | R | h | ×0.01 | ||
| HR | 92 | int32 CDAB | R | h | ×0.01 | ||
| HR | 110 | int32 CDAB | R | h | ×0.01 | ||
| HR | 112 | int32 CDAB | R | h | ×0.01 | ||
| HR | 114 | int16 | R | ×0.001 | Negative = lead (C), positive = lag (L) | ||
| HR | 115 | int16 | R | ×0.001 | Negative = lead (C), positive = lag (L) | ||
| HR | 116 | int16 | R | ×0.001 | Negative = lead (C), positive = lag (L) | ||
| HR | 117 | int16 | R | ×0.001 | Negative = lead (C), positive = lag (L) | ||
| HR | 118 | int16 | R | ||||
| HR | 119 | int16 | R | ||||
| HR | 120 | int16 | R | ||||
| HR | 121 | int16 | R | ||||
| HR | 130 | int32 CDAB | R | % | ×0.01 | ||
| HR | 132 | int32 CDAB | R | % | ×0.01 | ||
| HR | 134 | int32 CDAB | R | % | ×0.01 | ||
| HR | 138 | int32 CDAB | R | % | ×0.01 | ||
| HR | 140 | int32 CDAB | R | % | ×0.01 | ||
| HR | 142 | int32 CDAB | R | % | ×0.01 | ||
| HR | 146 | int32 CDAB | R | % | ×0.01 | ||
| HR | 148 | int32 CDAB | R | % | ×0.01 | ||
| HR | 150 | int32 CDAB | R | % | ×0.01 | ||
| HR | 152 | int32 CDAB | R | A | ×0.001 | ||
| HR | 154 | int32 CDAB | R | A | ×0.001 | ||
| HR | 156 | int32 CDAB | R | A | ×0.001 | ||
| HR | 158 | int32 CDAB | R | A | ×0.001 | ||
| HR | 160 | int32 CDAB | R | A | ×0.001 | ||
| HR | 162 | int32 CDAB | R | A | ×0.001 | ||
| HR | 164 | int32 CDAB | R | A | ×0.001 | ||
| HR | 172 | int32 CDAB | R | W | ×0.1 | ||
| HR | 174 | int32 CDAB | R | W | ×0.1 | ||
| HR | 176 | int32 CDAB | R | W | ×0.1 | ||
| HR | 178 | int32 CDAB | R | W | ×0.1 | ||
| HR | 180 | int32 CDAB | R | W | ×0.1 | ||
| HR | 182 | int32 CDAB | R | W | ×0.1 | ||
| HR | 190 | int32 CDAB | R | W | ×0.1 | Same value as 0038h | |
| HR | 192 | int32 CDAB | R | W | ×0.1 | Same value as 003Ah | |
| HR | 214 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 216 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 246 | int32 CDAB | R | h | ×0.01 | ||
| HR | 248 | int32 CDAB | R | A | ×0.001 | ||
| HR | 254 | int32 CDAB | R | h | ×0.01 | ||
| HR | 258 | int32 CDAB | R | V | ×0.1 | ||
| HR | 260 | int32 CDAB | R | V | ×0.1 | ||
| HR | 262 | int32 CDAB | R | W | ×0.1 | ||
| HR | 264 | int32 CDAB | R | VA | ×0.1 | ||
| HR | 266 | int32 CDAB | R | var | ×0.1 | ||
| HR | 268 | int32 CDAB | R | ×0.001 | |||
| HR | 270 | int32 CDAB | R | ||||
| HR | 272 | int32 CDAB | R | Hz | ×0.1 | ||
| HR | 274 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 276 | int32 CDAB | R | kvarh | ×0.1 | ||
| HR | 278 | int32 CDAB | R | kWh | ×0.1 | ||
| HR | 280 | int32 CDAB | R | kvarh | ×0.1 | ||
| HR | 282 | int32 CDAB | R | W | ×0.1 |
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).