- Home
- Modbus register maps
- Carlo Gavazzi
- EM271 dual three-phase energy meter with TCD current sensors
Energy meter · Modbus register map
Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors Modbus register map
Updated 29 October 2026
The EM271 is an energy meter that measures two loads through two TCD current-sensor inputs (TCDA1, TCDA2), as two three-phase loads or up to six single-phase loads. Values are 32-bit integers sent low word first with fixed scaling. This map covers voltages, per-input currents, power and energy, the SUM totals, PF, identification and the measuring-system, RS485 and reset registers.
This page lists 56 Modbus registers for the Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors — 7 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
- EM271 dual three-phase energy meter with TCD current sensors
- Equipment type
- Energy meter
- Registers
- 56 (7 writable)
- Transport
- Modbus RTU
- Default unit ID
- Not stated
- Documented addressing
- Modicon 3xxxx/4xxxx (drop the prefix, subtract 1)
- 32-bit word order
- CDAB low word first (word-swapped)
- Firmware
- r.d0+ (PF values from r.d2)
- Also known as
- EM271, EM27172DMV53X2SX, EM27172DMV63X2SX
Integration notes: Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors
Over RS485 read input registers (function 04, or 03) in short blocks: 0000h-000Ah for voltages, 010Ch-0120h for load 1 (TCDA1) and 020Ch-0220h for load 2 (TCDA2). All values are INT32 low word first with fixed scaling.
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 (x0.1 V) | Read |
| IR 268 | A L1 TCDA1 | INT32 CDAB | TCDA1 current L1 (x0.001 A) | Read |
| IR 280 | W total TCDA1 | INT32 CDAB | TCDA1 total power (x0.1 W) | Read |
| IR 286 | kWh(+) total TCDA1 | INT32 CDAB | TCDA1 kWh(+) (x0.1 kWh) | Read |
| IR 536 | W total TCDA2 | INT32 CDAB | TCDA2 total power | Read |
| IR 542 | kWh(+) total TCDA2 | INT32 CDAB | TCDA2 kWh(+) | Read |
| IR 11 | Carlo Gavazzi identification code | UINT16 | Model ID | Read |
Enable Modbus control & writes
Modbus RTU runs on the built-in RS485 port. Address, baud and parity are set from the meter's configuration or written at 2000h-2002h.
Byte order & addressing
- 32-bit values are low word first (CDAB).
- Keep reads to 16 registers or fewer (the request table caps the count at 10h); ID and version words are read one at a time.
- Totals at 000Ch-0024h are only available with the SUM function on.
- Out-of-range markers: the high word (second register) reads 7FFFh on overflow, 7FFDh when the variable is not part of the selected measuring system and 7FFEh when a needed TCD is missing; the low word is then FFFFh.
Network setup
- Baud options: 9600, 19200, 38400; parity none or even.
- Choose the measuring system (1002h) to match how the two TCD inputs are wired.
Watch out for
- A value is valid only if the meter also shows it on the display for the selected system.
- Maximum answer time is 500 ms; keep the master timeout above that.
Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors 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 | Also the L-N voltage in single-phase systems. | 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 | Identifies the model variant. | UINT16 | Read | 274 = EM27172DMV53X2SX; 275 = EM27172DMV53XOSX; 276 = EM27172DMV63X2SX; 277 = EM27172DMV63XOSX | |||
| IR | 12doc 300013 / 000Ch | A L1 (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.001 | A | Read | |
| IR | 14doc 300015 / 000Eh | A L2 (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.001 | A | Read | |
| IR | 16doc 300017 / 0010h | A L3 (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.001 | A | Read | |
| IR | 18doc 300019 / 0012h | W (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.1 | W | Read | |
| IR | 20doc 300021 / 0014h | VA (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.1 | VA | Read | |
| IR | 22doc 300023 / 0016h | var (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.1 | var | Read | |
| IR | 24doc 300025 / 0018h | kWh(+) total (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.1 | kWh | Read | |
| IR | 26doc 300027 / 001Ah | kvarh(+) total (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.1 | kvarh | Read | |
| IR | 28doc 300029 / 001Ch | W demand (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.1 | W | Read | |
| IR | 32doc 300033 / 0020h | W max demand (sum) | Only when the SUM function is on. | INT32 | CDAB | × 0.1 | W | Read | |
| IR | 36doc 300037 / 0024h | PF (sum) | SUM only. From firmware r.d2. | INT32 | CDAB | × 0.001 | Read | ||
| IR | 268doc 300269 / 010Ch | A L1 TCDA1 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 270doc 300271 / 010Eh | A L2 TCDA1 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 272doc 300273 / 0110h | A L3 TCDA1 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 274doc 300275 / 0112h | W L1 TCDA1 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 276doc 300277 / 0114h | W L2 TCDA1 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 278doc 300279 / 0116h | W L3 TCDA1 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 280doc 300281 / 0118h | W total TCDA1 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 282doc 300283 / 011Ah | VA total TCDA1 | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 284doc 300285 / 011Ch | var total TCDA1 | INT32 | CDAB | × 0.1 | var | Read | ||
| IR | 286doc 300287 / 011Eh | kWh(+) total TCDA1 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 288doc 300289 / 0120h | kvarh(+) total TCDA1 | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 298doc 300299 / 012Ah | kWh(+) L1 TCDA1 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 328doc 300329 / 0148h | PF TCDA1 | From firmware r.d2. | INT32 | CDAB | × 0.001 | Read | ||
| IR | 524doc 300525 / 020Ch | A L1 TCDA2 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 526doc 300527 / 020Eh | A L2 TCDA2 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 528doc 300529 / 0210h | A L3 TCDA2 | INT32 | CDAB | × 0.001 | A | Read | ||
| IR | 530doc 300531 / 0212h | W L1 TCDA2 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 532doc 300533 / 0214h | W L2 TCDA2 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 534doc 300535 / 0216h | W L3 TCDA2 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 536doc 300537 / 0218h | W total TCDA2 | INT32 | CDAB | × 0.1 | W | Read | ||
| IR | 538doc 300539 / 021Ah | VA total TCDA2 | INT32 | CDAB | × 0.1 | VA | Read | ||
| IR | 540doc 300541 / 021Ch | var total TCDA2 | INT32 | CDAB | × 0.1 | var | Read | ||
| IR | 542doc 300543 / 021Eh | kWh(+) total TCDA2 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 544doc 300545 / 0220h | kvarh(+) total TCDA2 | INT32 | CDAB | × 0.1 | kvarh | Read | ||
| IR | 554doc 300555 / 022Ah | kWh(+) L1 TCDA2 | INT32 | CDAB | × 0.1 | kWh | Read | ||
| IR | 584doc 300585 / 0248h | PF TCDA2 | From firmware r.d2. | INT32 | CDAB | × 0.001 | Read | ||
| IR | 770doc 300771 / 0302h | Firmware version code | 0 = A, 1 = B, and so on. | UINT16 | Read | ||||
| IR | 771doc 300772 / 0303h | Firmware revision code | UINT16 | Read | |||||
| IR | 772doc 300773 / 0304h | Front selector status | UINT16 | Read | 0 = Keypad unlocked; 1 = Keypad locked | ||||
| IR | 20480doc 320481 / 5000h | Serial number | 13 ASCII characters, two per register, high byte first. | STRING[14] | Read | ||||
| IR | 20487doc 320488 / 5007h | Production year | UINT16 | Read | |||||
| HR | 4098doc 304099 / 1002h | Measuring system | UINT16 | Read/write | 0 = 3P 1.3P; 1 = 3P 2.3P; 2 = 3P 3.1P; 3 = 3P 6.1P; 4 = 1P 3.1P; 5 = 1P 6.1P | ||||
| HR | 4112doc 304113 / 1010h | Demand integration time | 1-60; out-of-range values become 15. | UINT16 | Read/write | ||||
| HR | 8192doc 308193 / 2000h | RS485 instrument address | 1-247; other values become 1. | UINT16 | Read/write | ||||
| HR | 8193doc 308194 / 2001h | RS485 baud rate | UINT16 | Read/write | 0 = 9600; 1 = 19200; 2 = 38400 | ||||
| HR | 8194doc 308195 / 2002h | RS485 parity | UINT16 | Read/write | 0 = None; 1 = Even | ||||
| HR | 16384doc 316385 / 4000h | Reset partial meters and demand | Write 1 to clear partial energy, kW demand and peak demand. | UINT16 | Write | 1 = Execute | |||
| HR | 16385doc 316386 / 4001h | Reset total energy meters | Write 1 to clear total energy. | UINT16 | Write | 1 = Execute |
Notes on this map
- Word order: the data-format section states that the byte order inside a word is MSB first and that INT32, UINT32 and UINT64 values are sent LSW first, so all 32-bit values here are CDAB.
- Scaling is taken from the Notes column: Volt*10, Ampere*1000, Watt*10, VA*10, var*10, kWh*10, kvarh*10 and PF*1000, so the scales are 0.1, 0.001, 0.1, 0.1, 0.1, 0.1, 0.1 and 0.001.
- Availability depends on the measuring system (3P 1.3P, 3P 2.3P, 3P 3.1P, 3P 6.1P, 1P 3.1P, 1P 6.1P); the document marks some values as available only when the SUM function is on. Values are valid only when the same variable is shown on the meter display.
- Functions 03 and 04 return the same data. The text allows up to 18 registers per read, but the request-frame table prints '1 to 10h (1 to 11)', so keep each read to 16 registers or fewer. The version, keypad and ID registers may only be read one word at a time. Writes use function 06 only.
- Setting rows (1000h onwards) are printed with 3xxxxx Modicon numbers but are written with function 06, so they are listed as holding registers.
- Left out: per-phase demand and max-demand values, VA demand, per-phase var, per-phase PF, kWh(+) L2/L3 per TCD input, password, VT ratio and CT-type rows (model- and TCD-dependent tables), pulse output settings, easy-connection and TCD phase-order menus, and the UINT32 secondary address.
- 1003h/1004h report the detected TCD primary current in amperes (65535 = no TCD, 0 = TCDMM detected) and 1023h/1024h set the primary for TCDMM sensors; these rows are left out.
- The serial port uses a fixed 1 stop bit; baud (9600/19200/38400) and parity (none/even) are set at 2001h/2002h.
- The ID code at 000Bh shares its address with the second word of V L3-L1 (000Ah-000Bh); the document prints both. Read 000Bh on its own, one word per request, as the ID table requires.
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 EM271 dual three-phase energy meter with TCD current sensors
What Modbus registers does the Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors have?
This map lists 56 registers: 49 input registers, 7 holding registers. 7 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors 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 row shows a 6-digit Modicon number for function 04 (3xxxxx; replace the first digit with 4 for function 03) next to the hex 'physical address' that the document says goes in the frame. Wire address = physical address: 300269 / 010Ch is requested as 0x010C.
What byte order does the Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors 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 EM271 dual three-phase energy meter with TCD current sensors?
Start with IR 0 V L1-N (V L1-N (x0.1 V)); IR 268 A L1 TCDA1 (TCDA1 current L1 (x0.001 A)); IR 280 W total TCDA1 (TCDA1 total power (x0.1 W)); IR 286 kWh(+) total TCDA1 (TCDA1 kWh(+) (x0.1 kWh)); IR 536 W total TCDA2 (TCDA2 total power); IR 542 kWh(+) total TCDA2 (TCDA2 kWh(+)); IR 11 Carlo Gavazzi identification code (Model ID).
How do I enable Modbus control of the Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors?
Modbus RTU runs on the built-in RS485 port. Address, baud and parity are set from the meter's configuration or written at 2000h-2002h.
Where is the official Carlo Gavazzi EM271 dual three-phase energy meter with TCD current sensors Modbus documentation?
The source is EM271 Communication Protocol (Version 1 Revision 2), revision 2018-01-29, published free by Carlo Gavazzi at https://www.gavazziautomation.com/fileadmin/images/PIM/OTHERSTUFF/COMPRO/EM271_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 (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 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: EM271 Communication Protocol · Version 1 Revision 2 · rev. 2018-01-29. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.