- Home
- Modbus register maps
- Carlo Gavazzi
- EM24-DIN Ethernet (E1)
Energy meter (energy analyzer) · Modbus register map
Carlo Gavazzi EM24-DIN Ethernet (E1) Modbus register map
Updated 16 October 2026
The EM24 E1 is the Ethernet version of Carlo Gavazzi's EM24-DIN three-phase energy analyzer, with Modbus TCP on an RJ45 port. Measurements are 32-bit integers sent low word first with fixed weights and can be read with function 03 or 04, up to 125 registers per request. This map covers voltages, currents, powers, PF, frequency, demand, total/partial/phase/tariff energy, hour meter, identification, measurement setup, tariff, TCP/IP settings and reset commands.
This page lists 89 Modbus registers for the Carlo Gavazzi EM24-DIN Ethernet (E1) — 29 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from Carlo Gavazzi’s own free documentation (linked below) and checked against it.
- Manufacturer
- Carlo Gavazzi
- Model
- EM24-DIN Ethernet (E1)
- Equipment type
- Energy meter (energy analyzer)
- Registers
- 89 (29 writable)
- Transport
- Modbus TCP
- Default unit ID
- Not stated
- TCP port
- 502
- Documented addressing
- Modicon 3xxxx/4xxxx (drop the prefix, subtract 1)
- 32-bit word order
- CDAB low word first (word-swapped)
- Firmware
- 1.0
- Also known as
- EM24 E1, EM24_E1, EM24DINAV23XE1X, EM24DINAV23XE1PFA, EM24DINAV23XE1PFB, EM24DINAV53XE1X, EM24DINAV53XE1PFA, EM24DINAV53XE1PFB
Integration notes: Carlo Gavazzi EM24-DIN Ethernet (E1)
Connect with Modbus TCP on port 502 (default IP 192.168.1.10, DHCP off) and read input registers 0000h-007Bh with function 04 or 03. Decode INT32 values low word first and apply the fixed weights.
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 | V L1-N | INT32 CDAB | V L1-N | Read |
| IR 12 | A L1 | INT32 CDAB | A L1 | Read |
| IR 40 | W system | INT32 CDAB | W system | Read |
| IR 49 | PF system | INT16 | PF system | Read |
| IR 51 | Frequency | UINT16 | Frequency | Read |
| IR 52 | kWh(+) total | INT32 CDAB | kWh(+) total | Read |
| IR 78 | kWh(-) total | INT32 CDAB | kWh(-) total | Read |
Enable Modbus control & writes
The E1 versions answer Modbus TCP on the RJ45 port. To change IP settings, write the stored IP/mask/gateway/port/DHCP registers (2100h-210Dh) and then write 1 to 210Eh to apply them.
Byte order & addressing
- INT32 values are low word first (CDAB).
- The identification code at 000Bh must be read with a length of 1.
- New TCP/IP settings do nothing until 210Eh is written.
- With DHCP on, the stored IP settings are ignored; read 2120h-2123h for the address actually in use.
Network setup
- Default IP 192.168.1.10, mask 255.255.255.0, gateway 192.168.1.1, port 502, DHCP off.
- Only functions 03, 04 and 06 are supported.
Watch out for
- Measuring system, CT/VT and total/all resets are refused while the front selector is in LOCK.
- If CT x VT exceeds the limit, the write is rejected; lower one before raising the other.
Carlo Gavazzi EM24-DIN Ethernet (E1) 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 300001 / 0000h | V L1-N | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 2doc 300003 / 0002h | V L2-N | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 4doc 300005 / 0004h | V L3-N | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 6doc 300007 / 0006h | V L1-L2 | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 8doc 300009 / 0008h | V L2-L3 | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 10doc 300011 / 000Ah | V L3-L1 | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 11doc 300012 / 000Bh | Carlo Gavazzi identification code | Read with length 1 only; longer reads return the V L3-L1 data. | UINT16 | Read | 1648 = EM24DINAV23XE1X; 1649 = EM24DINAV23XE1PFA; 1650 = EM24DINAV23XE1PFB; 1651 = EM24DINAV53XE1X; 1652 = EM24DINAV53XE1PFA; 1653 = EM24DINAV53XE1PFB | |||
| IR | 12doc 300013 / 000Ch | A L1 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 14doc 300015 / 000Eh | A L2 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 16doc 300017 / 0010h | A L3 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 18doc 300019 / 0012h | W L1 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 20doc 300021 / 0014h | W L2 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 22doc 300023 / 0016h | W L3 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 24doc 300025 / 0018h | VA L1 | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 26doc 300027 / 001Ah | VA L2 | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 28doc 300029 / 001Ch | VA L3 | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 30doc 300031 / 001Eh | var L1 | INT32 | CDAB | × 0.1 | var | Read | ||
| IR | 32doc 300033 / 0020h | var L2 | INT32 | CDAB | × 0.1 | var | Read | ||
| IR | 34doc 300035 / 0022h | var L3 | INT32 | CDAB | × 0.1 | var | Read | ||
| IR | 36doc 300037 / 0024h | V L-N system | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 38doc 300039 / 0026h | V L-L system | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 40doc 300041 / 0028h | W system | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 42doc 300043 / 002Ah | VA system | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 44doc 300045 / 002Ch | var system | INT32 | CDAB | × 0.1 | var | Read | ||
| IR | 46doc 300047 / 002Eh | PF L1 | Negative = capacitive (lead), positive = inductive (lag). | INT16 | × 0.001 | Read | |||
| IR | 47doc 300048 / 002Fh | PF L2 | Negative = capacitive (lead), positive = inductive (lag). | INT16 | × 0.001 | Read | |||
| IR | 48doc 300049 / 0030h | PF L3 | Negative = capacitive (lead), positive = inductive (lag). | INT16 | × 0.001 | Read | |||
| IR | 49doc 300050 / 0031h | PF system | Negative = capacitive (lead), positive = inductive (lag). | INT16 | × 0.001 | Read | |||
| IR | 50doc 300051 / 0032h | Phase sequence | Meaningful on 3-phase systems only. | INT16 | Read | 0 = L1-L2-L3; -1 = L1-L3-L2 | |||
| IR | 51doc 300052 / 0033h | Frequency | UINT16 | × 0.1 | Hz | Read | |||
| IR | 52doc 300053 / 0034h | kWh(+) total | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 54doc 300055 / 0036h | kvarh(+) total | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 56doc 300057 / 0038h | DMD W | Demand active power. | INT32 | CDAB | × 0.1 | W | Read | |
| IR | 58doc 300059 / 003Ah | DMD W max | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 60doc 300061 / 003Ch | kWh(+) partial | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 62doc 300063 / 003Eh | kvarh(+) partial | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 64doc 300065 / 0040h | kWh(+) L1 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 66doc 300067 / 0042h | kWh(+) L2 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 68doc 300069 / 0044h | kWh(+) L3 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 70doc 300071 / 0046h | kWh(+) tariff 1 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 72doc 300073 / 0048h | kWh(+) tariff 2 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 74doc 300075 / 004Ah | kWh(+) tariff 3 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 76doc 300077 / 004Ch | kWh(+) tariff 4 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 78doc 300079 / 004Eh | kWh(-) total | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 80doc 300081 / 0050h | kvarh(-) total | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 90doc 300091 / 005Ah | Hour meter | INT32 | CDAB | × 0.01 | h | Read | ||
| IR | 110doc 300111 / 006Eh | kvarh(+) tariff 1 | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 112doc 300113 / 0070h | kvarh(+) tariff 2 | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 114doc 300115 / 0072h | kvarh(+) tariff 3 | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 116doc 300117 / 0074h | kvarh(+) tariff 4 | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 118doc 300119 / 0076h | DMD VA | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 120doc 300121 / 0078h | DMD VA max | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 122doc 300123 / 007Ah | DMD A max | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 770doc 300771 / 0302h | Measurement module version | High byte: bits 4-7 major, 0-3 minor; low byte revision. | UINT16 | Read | ||||
| IR | 772doc 300773 / 0304h | Communication module version | Same encoding as 0302h. | UINT16 | Read | ||||
| IR | 41216doc 341217 / A100h | Front selector status | UINT16 | Read | 0 = Unlocked (kvarh position); 1 = Unlocked (2 position); 2 = Unlocked (1 position); 3 = Locked (LOCK position) | ||||
| HR | 4096doc 304097 / 1000h | Password | 0-9999. | UINT16 | Read/write | ||||
| HR | 4098doc 304099 / 1002h | Measuring system | Writable only with selector not in LOCK; PFA/PFB: 3P.n only. | UINT16 | Read/write | 0 = 3P.n (default); 1 = 3P.1; 2 = 2P; 3 = 1P; 4 = 3P | |||
| HR | 4099doc 304100 / 1003h | CT ratio | Raw 10 = 1.0; max 2615.0 (MID) or 6975.0. Read-only on AV2. | UINT32 | CDAB | × 0.1 | Read/write | ||
| HR | 4101doc 304102 / 1005h | VT ratio | Raw 10 = 1.0; read-only on AV2 and MID. | UINT32 | CDAB | × 0.1 | Read/write | ||
| HR | 4112doc 304113 / 1010h | DMD interval time | 1-30, default 15. | UINT32 | CDAB | min | Read/write | ||
| HR | 4360doc 304361 / 1108h | Filter span parameter | 0-100, default 2. | UINT16 | Read/write | ||||
| HR | 4361doc 304362 / 1109h | Filter coefficient | 1-32, default 2. | UINT16 | Read/write | ||||
| HR | 4609doc 304610 / 1201h | Current tariff | To set: write 5Ah in high byte, tariff in low byte (5A03h = tariff 3). | UINT16 | Read/write | 0 = Tariff disabled; 1 = Tariff 1; 2 = Tariff 2; 3 = Tariff 3; 4 = Tariff 4 | |||
| HR | 8448doc 308449 / 2100h | Stored IP address octet A | 0-255; default 192.168.1.10. Used when DHCP is off. | UINT16 | Read/write | ||||
| HR | 8449doc 308450 / 2101h | Stored IP address octet B | 0-255; default 192.168.1.10. Used when DHCP is off. | UINT16 | Read/write | ||||
| HR | 8450doc 308451 / 2102h | Stored IP address octet C | 0-255; default 192.168.1.10. Used when DHCP is off. | UINT16 | Read/write | ||||
| HR | 8451doc 308452 / 2103h | Stored IP address octet D | 0-255; default 192.168.1.10. Used when DHCP is off. | UINT16 | Read/write | ||||
| HR | 8452doc 308453 / 2104h | Stored subnet mask octet A | 0-255; default 255.255.255.0. | UINT16 | Read/write | ||||
| HR | 8453doc 308454 / 2105h | Stored subnet mask octet B | 0-255; default 255.255.255.0. | UINT16 | Read/write | ||||
| HR | 8454doc 308455 / 2106h | Stored subnet mask octet C | 0-255; default 255.255.255.0. | UINT16 | Read/write | ||||
| HR | 8455doc 308456 / 2107h | Stored subnet mask octet D | 0-255; default 255.255.255.0. | UINT16 | Read/write | ||||
| HR | 8456doc 308457 / 2108h | Stored gateway octet A | 0-255; default 192.168.1.1. | UINT16 | Read/write | ||||
| HR | 8457doc 308458 / 2109h | Stored gateway octet B | 0-255; default 192.168.1.1. | UINT16 | Read/write | ||||
| HR | 8458doc 308459 / 210Ah | Stored gateway octet C | 0-255; default 192.168.1.1. | UINT16 | Read/write | ||||
| HR | 8459doc 308460 / 210Bh | Stored gateway octet D | 0-255; default 192.168.1.1. | UINT16 | Read/write | ||||
| HR | 8460doc 308461 / 210Ch | Modbus TCP port | 1-9999, default 502. | UINT16 | Read/write | ||||
| HR | 8461doc 308462 / 210Dh | DHCP | UINT16 | Read/write | 0 = Off (default); 1 = On | ||||
| HR | 8462doc 308463 / 210Eh | Apply TCP/IP changes | Write 1 to activate stored IP, mask, gateway, port, DHCP. | UINT16 | Read/write | ||||
| HR | 8480doc 308481 / 2120h | Actual IP address octet A | UINT16 | Read | |||||
| HR | 8481doc 308482 / 2121h | Actual IP address octet B | UINT16 | Read | |||||
| HR | 8482doc 308483 / 2122h | Actual IP address octet C | UINT16 | Read | |||||
| HR | 8483doc 308484 / 2123h | Actual IP address octet D | UINT16 | Read | |||||
| HR | 16385doc 316386 / 4001h | Reset total meters | Write 1; hour counter excluded; selector not in LOCK. | UINT16 | Read/write | ||||
| HR | 16386doc 316387 / 4002h | Reset hour counter | Write 1. | UINT16 | Read/write | ||||
| HR | 16387doc 316388 / 4003h | Reset all meters | Write 1; hour counter excluded; selector not in LOCK. | UINT16 | Read/write | ||||
| HR | 16388doc 316389 / 4004h | Reset partial meters | Write 1. | UINT16 | Read/write | ||||
| HR | 16389doc 316390 / 4005h | Reset DMD max | Write 1. | UINT16 | Read/write | ||||
| HR | 40960doc 340961 / A000h | Type of application | PFA: A, B, C, G only; PFB: E, F, H only; X: all. | UINT16 | Read/write | 0 = Application A; 1 = Application B; 2 = Application C; 3 = Application D; 4 = Application E; 5 = Application F; 6 = Application G; 7 = Application H |
Notes on this map
- Word order: the document states INT32/UINT32/UINT64 values are LSW first with bytes MSB first, so 32-bit values are CDAB; CT and VT rows also say 'LSW:MSW'.
- This map is not the same as the RS485 EM24-DIN map: tariff kvarh, DMD VA and DMD A max sit at different addresses, and frequency is UINT16 here.
- The by-phase duplicate table (00FEh-017Fh) is not repeated here.
- Left out: display page selectors (A001h-A004h), user ID codes (A005h-A007h), MAC address, actual subnet/gateway (2124h-212Bh), measurement firmware CRC (0350h) and the ASCII serial-number letters.
- Tariff write format here is high byte 5Ah, low byte tariff (0-4); the RS485 EM24 protocol documents the bytes the other way round, so do not reuse code between the two.
- Changing the active tariff resets all demand values.
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 Carlo Gavazzi EM24-DIN Ethernet (E1)
What Modbus registers does the Carlo Gavazzi EM24-DIN Ethernet (E1) have?
This map lists 89 registers: 56 input registers, 33 holding registers. 29 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Carlo Gavazzi EM24-DIN Ethernet (E1) 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 as a 6-digit Modicon number for function 04 (3xxxxx; 4xxxxx for function 03) beside the hex physical address placed in the request. Wire address = physical address (300001 / 0000h is address 0). Setup rows are written with function 06 and are listed as holding registers.
What byte order does the Carlo Gavazzi EM24-DIN Ethernet (E1) use for 32-bit values?
Multi-register values in this map use CDAB (low word first (word-swapped)). Set your client to this order for every 32/64-bit value in the table.
What are the minimum Modbus registers to integrate the Carlo Gavazzi EM24-DIN Ethernet (E1)?
Start with IR 0 V L1-N (V L1-N); IR 12 A L1 (A L1); IR 40 W system (W system); IR 49 PF system (PF system); IR 51 Frequency (Frequency); IR 52 kWh(+) total (kWh(+) total); IR 78 kWh(-) total (kWh(-) total).
How do I enable Modbus control of the Carlo Gavazzi EM24-DIN Ethernet (E1)?
The E1 versions answer Modbus TCP on the RJ45 port. To change IP settings, write the stored IP/mask/gateway/port/DHCP registers (2100h-210Dh) and then write 1 to 210Eh to apply them.
Where is the official Carlo Gavazzi EM24-DIN Ethernet (E1) Modbus documentation?
The source is EM24_E1 (Ethernet) Communication Protocol (Version 0 Revision 1.3), published free by Carlo Gavazzi at https://www.gavazziautomation.com/fileadmin/images/PIM/OTHERSTUFF/COMPRO/EM24_E1_CP.pdf.
More Carlo Gavazzi Modbus register maps
- Energy meter
Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112)
Single-phase EM111, EM112 energy meters and ET112 bidirectional meter with the S1 (RS485 Modbus RTU) port, protocol version 2 revision 14.
Also known as: EM111, EM112, ET112, EM110, EM111-DIN, EM112-DIN, ET112-DIN, EM111DINAV81XS1X, EM112DINAV01XS1X, ET112DINAV01XS1X - Energy meter (energy analyzer)
Carlo Gavazzi EM210 (AV versions)
EM210 three-phase energy analyzers, AV input versions with the RS485 Modbus RTU option, protocol version 4 revision 3 (newest variables need firmware A.5/A.6).
Also known as: EM210, EM210-72D, EM210 AV - Energy meter (energy analyzer)
Carlo Gavazzi EM24-DIN (PFA, PFB and X models)
EM24-DIN three-phase energy analyzers, PFA/PFB (MID) and X models with the RS485 Modbus RTU port (IS option), protocol version 4 revision 0.
Also known as: EM24, EM24DIN, EM24DINAV93XISPFA, EM24DINAV93XISPFB, EM24DINAV93XISX, EM24DINAV53XISX, EM24DINAV23XISX, EM24 DIN AV9, EM24 DIN AV5 - Energy meter
Carlo Gavazzi EM24-IS (SFA and SFB models)
EM24-DIN AV2/AV5 IS SFA and SFB versions (identification codes 1696-1699), protocol revision 2.0.
Also known as: EM24DINAV23XISSFA, EM24DINAV53XISSFA, EM24DINAV23XISSFB, EM24DINAV53XISSFB, EM24 SFA, EM24 SFB - Energy meter
Carlo Gavazzi EM270 / EM280 dual three-phase energy meters with TCD current sensors
EM270 X (firmware r.b0+), EM270 W (r.C0+) and EM280 (r.E0+) on RS485 Modbus RTU, per communication protocol version 5 revision 1 (2018-01-29).
Also known as: EM270, EM280, EM270 X, EM270 W, EM27072DMV53X2SX, EM28072DMV53X2SX - Energy meter
Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors
EM271 (firmware r.d0+, PF values from r.d2) on RS485 Modbus RTU, per communication protocol version 1 revision 2 (2018-01-29).
Also known as: EM271, EM27172DMV53X2SX, EM27172DMV63X2SX - Energy meter
Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340)
EM330, EM331, EM340, EM341 energy meters and ET330/ET340 bidirectional meters with the S1 (RS485 Modbus RTU) port, protocol version 2 revision 17.
Also known as: EM330, EM340, ET330, ET340, EM331, EM341, EM330-DIN, EM340-DIN, ET340-DIN, EM340DINAV23XS1X, EM340DINAV23XS1PFA, EM340DINAV23XS1PFB - Energy meter
Carlo Gavazzi EM530 / EM540 three-phase energy meters (RS485 Modbus)
EM530 (CT-connected) and EM540 (direct-connected) with the S1 RS485 port, X and MID (PFA/PFB/PFC) versions, protocol document version 1.3.
Also known as: EM530, EM540, EM530DINAV53XS1X, EM530DINAV53XS1PFA, EM530DINAV53XS1PFB, EM530DINAV53XS1PFC, EM540DINAV23XS1X, EM540DINAV23XS1PFA, EM540DINAV23XS1PFB, EM540DINAV23XS1PFC, EM500 series - Power meter (power analyzer)
Carlo Gavazzi WM15 power analyzer
WM15-96 three-phase panel power analyzers with RS485 Modbus RTU (OS / OSPF / HOS versions), protocol version 1.2.
Also known as: WM15, WM15-96, WM1596AV53XOSX, WM1596AV53XOSPFB, WM1596AV53HOSX - Power meter (power analyzer)
Carlo Gavazzi WM20 / WM30 / WM40 power analyzers
WM20, WM30 and WM40 modular power analyzers with an RS485 (or Ethernet) Modbus module, protocol internal version rev. 4.0 (2018-03-28); WM30 = firmware letter X, WM40 = Y, WM20 = Z.
Also known as: WM20, WM30, WM40, WM20-96, WM30-96, WM40-96 - Power meter (power analyzer)
Carlo Gavazzi WM50 power analyzer with TCD branch channels
WM50 base unit (firmware X0, i.e. all A and B versions) with an MC485232 or MCETH communication module, plus TCD branch channels, per communication protocol user version rev. 1.0.0 (2017-09-27).
Also known as: WM50, WM50AV5, WM50-96, WM50 AV5
Source: EM24_E1 (Ethernet) Communication Protocol · Version 0 Revision 1.3. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.