- Home
- Modbus register maps
- Carlo Gavazzi
- EM100 / ET100 series (EM111, EM112, ET112)
Energy meter · Modbus register map
Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112) Modbus register map
Updated 16 October 2026
The EM111/EM112 are Carlo Gavazzi's single-phase DIN-rail energy meters, and the ET112 is the bidirectional version for PV and storage. The S1 versions have an RS485 Modbus RTU port; values are 32-bit integers sent low word first with fixed weights, readable with function 03 or 04. This map covers voltage, current, powers, demand, PF, frequency, total/partial/tariff energy, high-resolution energy totals, hour counter, identification, setup, serial settings and resets.
This page lists 48 Modbus registers for the Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112) — 18 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
- EM100 / ET100 series (EM111, EM112, ET112)
- Equipment type
- Energy meter
- Registers
- 48 (18 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
- CDAB low word first (word-swapped)
- Also known as
- EM111, EM112, ET112, EM110, EM111-DIN, EM112-DIN, ET112-DIN, EM111DINAV81XS1X, EM112DINAV01XS1X, ET112DINAV01XS1X
Integration notes: Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112)
Read input registers 0000h-0023h with function 04 (or 03) in one request; decode INT32 values low word first and apply the fixed weights (V and W x10, A and PF x1000, energy x10).
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 L-N | INT32 CDAB | Voltage | Read |
| IR 2 | A | INT32 CDAB | Current | Read |
| IR 4 | W | INT32 CDAB | Active power | Read |
| IR 14 | PF | INT16 | Power factor | Read |
| IR 16 | kWh(+) total | INT32 CDAB | Imported energy | Read |
| IR 32 | kWh(-) total | INT32 CDAB | Exported energy | Read |
Enable Modbus control & writes
S1 versions carry the RS485 Modbus RTU port. Address, baud rate, parity and stop bits are in registers 2000h-2003h (or the instrument's own setup menu, see its manual).
Byte order & addressing
- INT32 values are low word first (CDAB).
- Function 06 only for writes; broadcast to address 0 is supported.
- Measurement mode (1103h) can only be written on non-MID X versions.
Network setup
- Defaults: address 1, 9600 baud, no parity, 1 stop bit.
- Terminate the master end with 120 ohm and the last meter by bridging A- to T.
- Use a repeater for runs longer than 1000 m or more than 160 instruments on one bus.
Watch out for
- Total energy reset (4001h) is documented for non-MID X versions only.
Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112) 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 L-N | INT32 | CDAB | × 0.1 | V | Read | ||
| IR | 2doc 300003 / 0002h | A | Negative when exporting in measurement mode B. | INT32 | CDAB | × 0.001 | A | Read | |
| IR | 4doc 300005 / 0004h | W | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 6doc 300007 / 0006h | VA | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 8doc 300009 / 0008h | var | INT32 | CDAB | × 0.1 | var | Read | ||
| IR | 10doc 300011 / 000Ah | W dmd | Demand (average) active power. | INT32 | CDAB | × 0.1 | W | Read | |
| IR | 11doc 300012 / 000Bh | Carlo Gavazzi identification code | Read alone; shares 000Bh with W dmd (000Ah-000Bh). | UINT16 | Read | 100 = EM110 AV7; 101 = EM111 AV7; 102 = EM112 AV1; 103 = EM111 AV8; 104 = EM112 AV0; 110 = EM110 AV8; 114 = EM111 AV5; 120 = ET112 AV0; 121 = ET112 AV1 | |||
| IR | 12doc 300013 / 000Ch | W dmd peak | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 14doc 300015 / 000Eh | PF | INT16 | × 0.001 | Read | ||||
| IR | 15doc 300016 / 000Fh | Frequency | INT16 | × 0.1 | Hz | Read | |||
| IR | 16doc 300017 / 0010h | kWh(+) total | Imported active energy. | INT32 | CDAB | × 0.1 | kWh | Read | |
| IR | 18doc 300019 / 0012h | kvarh(+) total | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 20doc 300021 / 0014h | kWh(+) partial | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 22doc 300023 / 0016h | kvarh(+) partial | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 24doc 300025 / 0018h | kWh(+) tariff 1 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 26doc 300027 / 001Ah | kWh(+) tariff 2 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 32doc 300033 / 0020h | kWh(-) total | Exported active energy. | INT32 | CDAB | × 0.1 | kWh | Read | |
| IR | 34doc 300035 / 0022h | kvarh(-) total | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 44doc 300045 / 002Ch | Hour counter | ET112 only. | INT32 | CDAB | × 0.01 | h | Read | |
| IR | 770doc 300771 / 0302h | Version code | 0 = version A, 1 = B, and so on. | UINT16 | Read | ||||
| IR | 771doc 300772 / 0303h | Revision code | UINT16 | Read | |||||
| IR | 1024doc 301025 / 0400h | kWh(+) total integer part | Whole units; add the decimal part register. | INT32 | CDAB | kWh | Read | ||
| IR | 1026doc 301027 / 0402h | kWh(+) total decimal part | Thousandths, 0-999. | INT32 | CDAB | × 0.001 | kWh | Read | |
| IR | 1028doc 301029 / 0404h | kvarh(+) total integer part | Whole units; add the decimal part register. | INT32 | CDAB | kvarh | Read | ||
| IR | 1030doc 301031 / 0406h | kvarh(+) total decimal part | Thousandths, 0-999. | INT32 | CDAB | × 0.001 | kvarh | Read | |
| IR | 1034doc 301035 / 040Ah | kWh(-) total decimal part | Thousandths, 0-999. | INT32 | CDAB | × 0.001 | kWh | Read | |
| IR | 1036doc 301037 / 040Ch | kvarh(-) total integer part | Whole units; add the decimal part register. | INT32 | CDAB | kvarh | Read | ||
| IR | 1038doc 301039 / 040Eh | kvarh(-) total decimal part | Thousandths, 0-999. | INT32 | CDAB | × 0.001 | kvarh | Read | |
| HR | 4096doc 304097 / 1000h | Password | 0-9999, EM only; always 0 on ET. | UINT16 | Read/write | ||||
| HR | 4098doc 304099 / 1002h | Measuring system | UINT16 | Read/write | 0 = 1P (1-phase) | ||||
| HR | 4099doc 304100 / 1003h | CT ratio | Raw 10-600 = CT 1.0-60.0. | UINT32 | CDAB | × 0.1 | Read/write | ||
| HR | 4112doc 1010h | Demand integration time | 1-30. | UINT32 | CDAB | Read/write | |||
| HR | 4114doc 1012h | Pulse output Ton | UINT32 | CDAB | Read/write | 0 = 30 ms; 1 = 100 ms | |||
| HR | 4352doc 304353 / 1100h | Display mode | EM112 only. | UINT16 | Read/write | 0 = Full; 1 = Easy | |||
| HR | 4353doc 304354 / 1101h | Tariff management | UINT16 | Read/write | 0 = Off; 1 = On | ||||
| HR | 4354doc 304355 / 1102h | Home page selection | 0-17, EM112 only; 0 on others. | UINT16 | Read/write | ||||
| HR | 4355doc 304356 / 1103h | Measurement mode | Writable on non-MID X versions; repeated writes of 1 toggle. | UINT16 | Read/write | 0 = A (easy connection); 1 = B (bidirectional) | |||
| HR | 4608doc 304609 / 1200h | Tariff mode | UINT16 | Read/write | 0 = Via digital input; 1 = Via serial | ||||
| HR | 4609doc 304610 / 1201h | Tariff selection via serial | Read-only when 1200h = 0. | UINT16 | Read/write | 1 = Tariff 1; 2 = Tariff 2 | |||
| HR | 8192doc 308193 / 2000h | RS485 address | 1-247, default 1. | UINT16 | Read/write | ||||
| HR | 8193doc 308194 / 2001h | RS485 baud rate | UINT16 | Read/write | 1 = 9600 (default); 2 = 19200; 3 = 38400; 4 = 57600; 5 = 115200 | ||||
| HR | 8194doc 308195 / 2002h | RS485 parity | UINT16 | Read/write | 1 = None (default); 2 = Even | ||||
| HR | 8195doc 308196 / 2003h | RS485 stop bits | UINT16 | Read/write | 1 = 1 (default); 2 = 2 (only with no parity) | ||||
| HR | 8196doc 308197 / 2004h | Max words per read | Read-only; returns 50. | UINT16 | Read | ||||
| HR | 16384doc 316385 / 4000h | Reset partial, tariff and demand | Write 1: clears partial and tariff meters, kW dmd and peak. | UINT16 | Read/write | ||||
| HR | 16385doc 316386 / 4001h | Reset total energy meters | Write 1; non-MID (X) versions only. | UINT16 | Read/write | ||||
| HR | 16386doc 316387 / 4002h | Reset hour counter | Write 1; ET112 only. | UINT16 | Read/write | ||||
| HR | 20496doc 320497 / 5010h | Production year | EM111 made from Oct 2018 onward. | UINT16 | Read |
Notes on this map
- Word order: the protocol states INT32/UINT32/UINT64 are LSW first with bytes MSB first, so 32-bit values are CDAB.
- Functions 03 and 04 are equivalent; up to 50 registers per request.
- Table 2.4-4 (0100h-0189h) mirrors the same values, with PF as INT32; it is not duplicated here.
- The integer/decimal split totalizers (0400h-040Fh) exist only on EM111/EM112 from firmware b.10, in units made from 1 January 2020 (serial YR2020 001xxxU onward).
- Registers marked 'not available, value = 0' (tariffs 3-4, negative partials, kVAh, THD) are left out.
- Left out: the INT64 energy block at 0500h (no value weight given), kWh-per-pulse settings (1020h/1022h, no weight), the ASCII serial-number letters (5000h-5006h), and kWh(-) total integer part (0408h), whose Notes cell is empty in the document, so its weight is not stated (its decimal-part partner 040Ah is printed with a weight and is kept).
- In measurement mode A (and PFA models) energy always counts as imported; mode B (PFB, ET112) separates kWh(+) and kWh(-) and current/power go negative when exporting.
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 EM100 / ET100 series (EM111, EM112, ET112)
What Modbus registers does the Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112) have?
This map lists 48 registers: 28 input registers, 20 holding registers. 18 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112) 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; use 4xxxxx for function 03) and as the hex physical address placed in the frame. Wire address = physical address (300001 / 0000h is address 0). Setup rows are written with function 06 and are listed as holding registers; 1010h/1012h are printed with the hex address only.
What byte order does the Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112) 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 EM100 / ET100 series (EM111, EM112, ET112)?
Start with IR 0 V L-N (Voltage); IR 2 A (Current); IR 4 W (Active power); IR 14 PF (Power factor); IR 16 kWh(+) total (Imported energy); IR 32 kWh(-) total (Exported energy).
How do I enable Modbus control of the Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112)?
S1 versions carry the RS485 Modbus RTU port. Address, baud rate, parity and stop bits are in registers 2000h-2003h (or the instrument's own setup menu, see its manual).
Where is the official Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112) Modbus documentation?
The source is EM100 Series and ET100 Series Communication Protocol (Version 2 Revision 14), published free by Carlo Gavazzi at https://www.gavazziautomation.com/fileadmin/images/PIM/OTHERSTUFF/COMPRO/EM111_EM112_ET112_CP.pdf.
More Carlo Gavazzi Modbus register maps
- 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 (energy analyzer)
Carlo Gavazzi EM24-DIN Ethernet (E1)
EM24-DIN energy analyzers with the E1 Ethernet (RJ45) Modbus TCP port, AV2 and AV5 inputs, X/PFA/PFB, protocol version 0 revision 1.3 (FW 1.0).
Also known as: EM24 E1, EM24_E1, EM24DINAV23XE1X, EM24DINAV23XE1PFA, EM24DINAV23XE1PFB, EM24DINAV53XE1X, EM24DINAV53XE1PFA, EM24DINAV53XE1PFB - 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: EM100 Series and ET100 Series Communication Protocol · Version 2 Revision 14. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.