Easy Modbus
  1. Home
  2. Modbus register maps
  3. Carlo Gavazzi
  4. EM300 / ET300 series (EM330, EM340, ET330, ET340)

Energy meter · Modbus register map

Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340) Modbus register map

Updated 16 October 2026

Short answer

Carlo Gavazzi's 300 series are three-phase DIN-rail energy meters (EM) and bidirectional PV/energy transducers (ET) with an RS485 Modbus RTU port. Measurements are 32-bit integers sent low word first with fixed weights, readable with function 03 or 04 in blocks of up to 50 registers. This map covers voltages, currents, powers, power factor, frequency, demand, total/partial/phase/tariff energy, high-resolution energy totals, run hours, identification, setup, serial settings and resets.

This page lists 83 Modbus registers for the Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340) — 23 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
EM300 / ET300 series (EM330, EM340, ET330, ET340)
Equipment type
Energy meter
Registers
83 (23 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
EM330, EM340, ET330, ET340, EM331, EM341, EM330-DIN, EM340-DIN, ET340-DIN, EM340DINAV23XS1X, EM340DINAV23XS1PFA, EM340DINAV23XS1PFB
Source document
EM300 Series and ET300 Series Communication Protocol · Version 2 Revision 17 · rev. 2021-07-05
Download CSV all columns JSON Manufacturer PDF ↗

Integration notes: Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340)

Integration in brief

Read input registers 0000h-0033h (function 04, or 03) for live values and 0034h onward for energy; decode INT32 low word first and apply the fixed weights (V and W x10, A and PF x1000).

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 L1-NINT32 CDABV L1-NRead
IR 12A L1INT32 CDABA L1Read
IR 40W systemINT32 CDABW systemRead
IR 49PF systemINT16PF systemRead
IR 51FrequencyINT16FrequencyRead
IR 52kWh(+) totalINT32 CDABkWh(+) totalRead
IR 78kWh(-) totalINT32 CDABkWh(-) totalRead
IR 11Carlo Gavazzi identification codeUINT16Model ID checkRead

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 EM300 / ET300 series (EM330, EM340, ET330, ET340) 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.

83 of 83 shown
Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340) Modbus register map
TableAddressNameDescriptionTypeOrderScaleUnitsAccessValues / bits
IR0doc 300001 / 0000hV L1-NINT32CDAB× 0.1VRead
IR2doc 300003 / 0002hV L2-NINT32CDAB× 0.1VRead
IR4doc 300005 / 0004hV L3-NINT32CDAB× 0.1VRead
IR6doc 300007 / 0006hV L1-L2INT32CDAB× 0.1VRead
IR8doc 300009 / 0008hV L2-L3INT32CDAB× 0.1VRead
IR10doc 300011 / 000AhV L3-L1INT32CDAB× 0.1VRead
IR11doc 300012 / 000BhCarlo Gavazzi identification codeRead alone; shares 000Bh with V L3-L1 high word.UINT16Read331 = EM330 AV6; 332 = EM330 AV5; 335 = ET330 AV5; 336 = ET330 AV6; 340 = EM340 engineering sample (MSW-LSW order); 341 = EM340; 345 = ET340; 346 = EM341; 355 = EM331
IR12doc 300013 / 000ChA L1INT32CDAB× 0.001ARead
IR14doc 300015 / 000EhA L2INT32CDAB× 0.001ARead
IR16doc 300017 / 0010hA L3INT32CDAB× 0.001ARead
IR18doc 300019 / 0012hW L1INT32CDAB× 0.1WRead
IR20doc 300021 / 0014hW L2INT32CDAB× 0.1WRead
IR22doc 300023 / 0016hW L3INT32CDAB× 0.1WRead
IR24doc 300025 / 0018hVA L1INT32CDAB× 0.1VARead
IR26doc 300027 / 001AhVA L2INT32CDAB× 0.1VARead
IR28doc 300029 / 001ChVA L3INT32CDAB× 0.1VARead
IR30doc 300031 / 001Ehvar L1INT32CDAB× 0.1varRead
IR32doc 300033 / 0020hvar L2INT32CDAB× 0.1varRead
IR34doc 300035 / 0022hvar L3INT32CDAB× 0.1varRead
IR36doc 300037 / 0024hV L-N systemINT32CDAB× 0.1VRead
IR38doc 300039 / 0026hV L-L systemINT32CDAB× 0.1VRead
IR40doc 300041 / 0028hW systemINT32CDAB× 0.1WRead
IR42doc 300043 / 002AhVA systemINT32CDAB× 0.1VARead
IR44doc 300045 / 002Chvar systemINT32CDAB× 0.1varRead
IR46doc 300047 / 002EhPF L1Negative = exported active power, positive = imported.INT16× 0.001Read
IR47doc 300048 / 002FhPF L2Negative = exported active power, positive = imported.INT16× 0.001Read
IR48doc 300049 / 0030hPF L3Negative = exported active power, positive = imported.INT16× 0.001Read
IR49doc 300050 / 0031hPF systemNegative = exported active power, positive = imported.INT16× 0.001Read
IR50doc 300051 / 0032hPhase sequenceMeaningful on 3-phase systems only.INT16Read0 = L1-L2-L3; 1 = L1-L3-L2
IR51doc 300052 / 0033hFrequencyINT16× 0.1HzRead
IR52doc 300053 / 0034hkWh(+) totalImported active energy.INT32CDAB× 0.1kWhRead
IR54doc 300055 / 0036hkvarh(+) totalINT32CDAB× 0.1kvarhRead
IR56doc 300057 / 0038hkW demandPublished as Watt x10 despite the kW label.INT32CDAB× 0.1WRead
IR58doc 300059 / 003AhkW demand peakPublished as Watt x10 despite the kW label.INT32CDAB× 0.1WRead
IR60doc 300061 / 003ChkWh(+) partialINT32CDAB× 0.1kWhRead
IR62doc 300063 / 003Ehkvarh(+) partialINT32CDAB× 0.1kvarhRead
IR64doc 300065 / 0040hkWh(+) L1INT32CDAB× 0.1kWhRead
IR66doc 300067 / 0042hkWh(+) L2INT32CDAB× 0.1kWhRead
IR68doc 300069 / 0044hkWh(+) L3INT32CDAB× 0.1kWhRead
IR70doc 300071 / 0046hkWh(+) tariff 1INT32CDAB× 0.1kWhRead
IR72doc 300073 / 0048hkWh(+) tariff 2INT32CDAB× 0.1kWhRead
IR78doc 300079 / 004EhkWh(-) totalExported active energy.INT32CDAB× 0.1kWhRead
IR80doc 300081 / 0050hkvarh(-) totalINT32CDAB× 0.1kvarhRead
IR90doc 300091 / 005AhRun hour meterET series and EM330 only.INT32CDAB× 0.01hRead
IR96doc 300097 / 0060hkWh(-) L1ET series only.INT32CDAB× 0.1kWhRead
IR98doc 300099 / 0062hkWh(-) L2ET series only.INT32CDAB× 0.1kWhRead
IR100doc 300101 / 0064hkWh(-) L3ET series only.INT32CDAB× 0.1kWhRead
IR152doc 300153 / 0098hA neutralET series and EM330 only; 0 otherwise.INT32CDAB× 0.001ARead
IR770doc 300771 / 0302hVersion code0 = version A, 1 = B, and so on.UINT16Read
IR771doc 300772 / 0303hRevision code0 = revision 0, and so on.UINT16Read
IR1024doc 301025 / 0400hkWh(+) total integer partWhole units; add the decimal part. EM340 from Oct 2018 only.INT32CDABkWhRead
IR1026doc 301027 / 0402hkWh(+) total decimal partThousandths, 0-999. EM340 from Oct 2018 only.INT32CDAB× 0.001kWhRead
IR1028doc 301029 / 0404hkvarh(+) total integer partWhole units; add the decimal part. EM340 from Oct 2018 only.INT32CDABkvarhRead
IR1030doc 301031 / 0406hkvarh(+) total decimal partThousandths, 0-999. EM340 from Oct 2018 only.INT32CDAB× 0.001kvarhRead
IR1032doc 301033 / 0408hkWh(-) total integer partWhole units; add the decimal part. EM340 from Oct 2018 only.INT32CDABkWhRead
IR1034doc 301035 / 040AhkWh(-) total decimal partThousandths, 0-999. EM340 from Oct 2018 only.INT32CDAB× 0.001kWhRead
IR1036doc 301037 / 040Chkvarh(-) total integer partWhole units; add the decimal part. EM340 from Oct 2018 only.INT32CDABkvarhRead
IR1038doc 301039 / 040Ehkvarh(-) total decimal partThousandths, 0-999. EM340 from Oct 2018 only.INT32CDAB× 0.001kvarhRead
HR4096doc 304097 / 1000hPassword0-9999, EM only; always 0 on ET.UINT16Read/write
HR4098doc 304099 / 1002hMeasuring systemUINT16Read/write0 = 3Pn (3-phase with neutral); 1 = 3P (3-phase, no neutral); 2 = 2P (2-phase with neutral)
HR4099doc 304100 / 1003hCT ratioRaw 10-10000 = CT 1.0-1000.0.UINT32CDAB× 0.1Read/write
HR4101doc 304102 / 1005hVT ratioRaw 10-10000 = VT 1.0-1000.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 modeUINT16Read/write0 = Full; 1 = Easy
HR4353doc 304354 / 1101hTariff managementUINT16Read/write0 = Off; 1 = On
HR4354doc 304355 / 1102hHome page selection0-19, EM only; fixed on MID (PFA/PFB) models.UINT16Read/write
HR4355doc 304356 / 1103hMeasurement modeUINT16Read/write0 = A (easy connection); 1 = B (bidirectional)
HR4356doc 304357 / 1104hWrong-connection helpUINT16Read/write0 = On; 1 = Off
HR4357doc 304358 / 1105hWrong-connection statusAll bits 0 when wiring is correct.BITMAP16Read/writebit 0 = Wrong voltage sequence; bit 1 = Phase 1 inverted; bit 2 = Phase 2 inverted; bit 3 = Phase 3 inverted; bit 4 = Phases 1 and 2 exchanged; bit 5 = Phases 1 and 3 exchanged; bit 6 = Phases 2 and 3 exchanged; bit 7 = Phases 1, 2, 3 exchanged
HR4358doc 304359 / 1106hTHD calculationET series and EM330 only.UINT16Read/write0 = Off; 1 = On
HR4359doc 304360 / 1107hRun hour meter start-up currentSecondary current 0.010-6.000 A, default 0.010; ET and EM330.UINT32CDAB× 0.001ARead/write
HR4608doc 304609 / 1200hTariff modeUINT16Read/write0 = Via digital inputs; 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/write0 = 1 stop bit; 1 = 1 stop bit (default); 2 = 2 stop bits (even parity only)
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 run hour meterWrite 1; ET series and EM330.UINT16Read/write
HR20496doc 320497 / 5010hProduction yearUINT16Read

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 EM300 / ET300 series (EM330, EM340, ET330, ET340)

What Modbus registers does the Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340) have?

This map lists 83 registers: 58 input registers, 25 holding registers. 23 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.

Are the Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340) 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. Each register is printed as a 6-digit Modicon number for function 04 (3xxxxx; use 4xxxxx for function 03) next to the hex physical address that goes in the frame. Wire address = physical address (300001 / 0000h is address 0). Configuration rows are written with function 06 and are listed here as holding registers; a few rows (1010h, 1012h) are printed with the hex address only.

What byte order does the Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340) 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 EM300 / ET300 series (EM330, EM340, ET330, ET340)?

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); IR 11 Carlo Gavazzi identification code (Model ID check).

How do I enable Modbus control of the Carlo Gavazzi EM300 / ET300 series (EM330, EM340, ET330, ET340)?

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 EM300 / ET300 series (EM330, EM340, ET330, ET340) Modbus documentation?

The source is EM300 Series and ET300 Series Communication Protocol (Version 2 Revision 17), revision 2021-07-05, published free by Carlo Gavazzi at https://www.gavazziautomation.com/fileadmin/images/PIM/OTHERSTUFF/COMPRO/EM330_EM340_ET330_ET340_CP.pdf.

More Carlo Gavazzi Modbus register maps

Source: EM300 Series and ET300 Series Communication Protocol · Version 2 Revision 17 · rev. 2021-07-05. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.