Easy Modbus
  1. Home
  2. Modbus register maps
  3. Carlo Gavazzi
  4. 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

Short answer

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
Source document
EM100 Series and ET100 Series Communication Protocol · Version 2 Revision 14
Download CSV all columns JSON Manufacturer PDF ↗

Integration notes: Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112)

Integration in brief

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.

RegisterNameTypeWhyAccess
IR 0V L-NINT32 CDABVoltageRead
IR 2AINT32 CDABCurrentRead
IR 4WINT32 CDABActive powerRead
IR 14PFINT16Power factorRead
IR 16kWh(+) totalINT32 CDABImported energyRead
IR 32kWh(-) totalINT32 CDABExported energyRead

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

Network setup

Watch out for

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.

48 of 48 shown
Carlo Gavazzi EM100 / ET100 series (EM111, EM112, ET112) Modbus register map
TableAddressNameDescriptionTypeOrderScaleUnitsAccessValues / bits
IR0doc 300001 / 0000hV L-NINT32CDAB× 0.1VRead
IR2doc 300003 / 0002hANegative when exporting in measurement mode B.INT32CDAB× 0.001ARead
IR4doc 300005 / 0004hWINT32CDAB× 0.1WRead
IR6doc 300007 / 0006hVAINT32CDAB× 0.1VARead
IR8doc 300009 / 0008hvarINT32CDAB× 0.1varRead
IR10doc 300011 / 000AhW dmdDemand (average) active power.INT32CDAB× 0.1WRead
IR11doc 300012 / 000BhCarlo Gavazzi identification codeRead alone; shares 000Bh with W dmd (000Ah-000Bh).UINT16Read100 = 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
IR12doc 300013 / 000ChW dmd peakINT32CDAB× 0.1WRead
IR14doc 300015 / 000EhPFINT16× 0.001Read
IR15doc 300016 / 000FhFrequencyINT16× 0.1HzRead
IR16doc 300017 / 0010hkWh(+) totalImported active energy.INT32CDAB× 0.1kWhRead
IR18doc 300019 / 0012hkvarh(+) totalINT32CDAB× 0.1kvarhRead
IR20doc 300021 / 0014hkWh(+) partialINT32CDAB× 0.1kWhRead
IR22doc 300023 / 0016hkvarh(+) partialINT32CDAB× 0.1kvarhRead
IR24doc 300025 / 0018hkWh(+) tariff 1INT32CDAB× 0.1kWhRead
IR26doc 300027 / 001AhkWh(+) tariff 2INT32CDAB× 0.1kWhRead
IR32doc 300033 / 0020hkWh(-) totalExported active energy.INT32CDAB× 0.1kWhRead
IR34doc 300035 / 0022hkvarh(-) totalINT32CDAB× 0.1kvarhRead
IR44doc 300045 / 002ChHour counterET112 only.INT32CDAB× 0.01hRead
IR770doc 300771 / 0302hVersion code0 = version A, 1 = B, and so on.UINT16Read
IR771doc 300772 / 0303hRevision codeUINT16Read
IR1024doc 301025 / 0400hkWh(+) total integer partWhole units; add the decimal part register.INT32CDABkWhRead
IR1026doc 301027 / 0402hkWh(+) total decimal partThousandths, 0-999.INT32CDAB× 0.001kWhRead
IR1028doc 301029 / 0404hkvarh(+) total integer partWhole units; add the decimal part register.INT32CDABkvarhRead
IR1030doc 301031 / 0406hkvarh(+) total decimal partThousandths, 0-999.INT32CDAB× 0.001kvarhRead
IR1034doc 301035 / 040AhkWh(-) total decimal partThousandths, 0-999.INT32CDAB× 0.001kWhRead
IR1036doc 301037 / 040Chkvarh(-) total integer partWhole units; add the decimal part register.INT32CDABkvarhRead
IR1038doc 301039 / 040Ehkvarh(-) total decimal partThousandths, 0-999.INT32CDAB× 0.001kvarhRead
HR4096doc 304097 / 1000hPassword0-9999, EM only; always 0 on ET.UINT16Read/write
HR4098doc 304099 / 1002hMeasuring systemUINT16Read/write0 = 1P (1-phase)
HR4099doc 304100 / 1003hCT ratioRaw 10-600 = CT 1.0-60.0.UINT32CDAB× 0.1Read/write
HR4112doc 1010hDemand integration time1-30.UINT32CDABRead/write
HR4114doc 1012hPulse output TonUINT32CDABRead/write0 = 30 ms; 1 = 100 ms
HR4352doc 304353 / 1100hDisplay modeEM112 only.UINT16Read/write0 = Full; 1 = Easy
HR4353doc 304354 / 1101hTariff managementUINT16Read/write0 = Off; 1 = On
HR4354doc 304355 / 1102hHome page selection0-17, EM112 only; 0 on others.UINT16Read/write
HR4355doc 304356 / 1103hMeasurement modeWritable on non-MID X versions; repeated writes of 1 toggle.UINT16Read/write0 = A (easy connection); 1 = B (bidirectional)
HR4608doc 304609 / 1200hTariff modeUINT16Read/write0 = Via digital input; 1 = Via serial
HR4609doc 304610 / 1201hTariff selection via serialRead-only when 1200h = 0.UINT16Read/write1 = Tariff 1; 2 = Tariff 2
HR8192doc 308193 / 2000hRS485 address1-247, default 1.UINT16Read/write
HR8193doc 308194 / 2001hRS485 baud rateUINT16Read/write1 = 9600 (default); 2 = 19200; 3 = 38400; 4 = 57600; 5 = 115200
HR8194doc 308195 / 2002hRS485 parityUINT16Read/write1 = None (default); 2 = Even
HR8195doc 308196 / 2003hRS485 stop bitsUINT16Read/write1 = 1 (default); 2 = 2 (only with no parity)
HR8196doc 308197 / 2004hMax words per readRead-only; returns 50.UINT16Read
HR16384doc 316385 / 4000hReset partial, tariff and demandWrite 1: clears partial and tariff meters, kW dmd and peak.UINT16Read/write
HR16385doc 316386 / 4001hReset total energy metersWrite 1; non-MID (X) versions only.UINT16Read/write
HR16386doc 316387 / 4002hReset hour counterWrite 1; ET112 only.UINT16Read/write
HR20496doc 320497 / 5010hProduction yearEM111 made from Oct 2018 onward.UINT16Read

Notes on this map

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

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.