Carlo Gavazzi EM271 Modbus register map
Dual three-phase energy meter with split-core current sensors (TCD/TCDMM), RS485 Modbus RTU
- Official
- 112 registers
- Modbus RTU
- Revision 2 · 2026-10-17
- Identity: model, firmware
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 1
- Serial
- 9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
- Byte / word order
- CDAB · bytes big-endian, words low first (word swap)
- Addresses
- 0-based
- Max read
- 18 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 27 holding registers, 85 input registers
- Groups
- 8
- Revision
- 2 · 2026-10-17
- Added
- ()
- File
- maps/carlo-gavazzi/em271.mbmap.json · 20 KB · history
- SHA-256
- 94c4f6e6344cc3b335142ae405d1da154c0679fc4c7e7cf336b0d1b804c554bc
- Manufacturer
- gavazziautomation.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Model | Carlo Gavazzi identification code | input 11 | uint16 | 274 = EM271 MV5 (2 pulse outputs), 275 = EM271 MV5 (open collector), 276 = EM271 MV6 (2 pulse outputs), +1 more |
| Firmware | Revision code | input 771 | uint16 |
Sources and notes
- EM271 Communication Protocol · version Version 1 Revision 2
Source: Carlo Gavazzi, "EM271 Communication Protocol", version 1 revision 2
- FC03 or FC04 read (the same values), FC06 writes one register; at most 18 registers per read.
- 32-bit values are low word first (bytes high first in each word).
- Which variables exist depends on the measuring system (0x1002) and on SUM (0x1007); see table 2.3-1 of the protocol.
- Firmware from r.d0 unless a register says otherwise.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| IR | 0 | int32 CDAB | R | V | ×0.1 | Also the L-N voltage in single-phase systems | |
| IR | 2 | int32 CDAB | R | V | ×0.1 | ||
| IR | 4 | int32 CDAB | R | V | ×0.1 | ||
| IR | 6 | int32 CDAB | R | V | ×0.1 | ||
| IR | 8 | int32 CDAB | R | V | ×0.1 | ||
| IR | 10 | int32 CDAB | R | V | ×0.1 | ||
| IR | 12 | int32 CDAB | R | A | ×0.001 | Only with SUM on | |
| IR | 14 | int32 CDAB | R | A | ×0.001 | ||
| IR | 16 | int32 CDAB | R | A | ×0.001 | ||
| IR | 18 | int32 CDAB | R | W | ×0.1 | Only with SUM on | |
| IR | 20 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 22 | int32 CDAB | R | var | ×0.1 | ||
| IR | 24 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 26 | int32 CDAB | R | kvarh | ×0.1 | ||
| IR | 28 | int32 CDAB | R | W | ×0.1 | ||
| IR | 30 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 32 | int32 CDAB | R | W | ×0.1 | ||
| IR | 34 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 36 | int32 CDAB | R | ×0.001 | From firmware r.d2; sign per the power quadrant | ||
| IR | 268 | int32 CDAB | R | A | ×0.001 | ||
| IR | 270 | int32 CDAB | R | A | ×0.001 | ||
| IR | 272 | int32 CDAB | R | A | ×0.001 | ||
| IR | 274 | int32 CDAB | R | W | ×0.1 | ||
| IR | 276 | int32 CDAB | R | W | ×0.1 | ||
| IR | 278 | int32 CDAB | R | W | ×0.1 | ||
| IR | 280 | int32 CDAB | R | W | ×0.1 | ||
| IR | 282 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 284 | int32 CDAB | R | var | ×0.1 | ||
| IR | 286 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 288 | int32 CDAB | R | kvarh | ×0.1 | ||
| IR | 290 | int32 CDAB | R | W | ×0.1 | ||
| IR | 292 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 294 | int32 CDAB | R | W | ×0.1 | ||
| IR | 296 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 298 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 300 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 302 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 304 | int32 CDAB | R | W | ×0.1 | ||
| IR | 306 | int32 CDAB | R | W | ×0.1 | ||
| IR | 308 | int32 CDAB | R | W | ×0.1 | ||
| IR | 310 | int32 CDAB | R | W | ×0.1 | ||
| IR | 312 | int32 CDAB | R | W | ×0.1 | ||
| IR | 314 | int32 CDAB | R | W | ×0.1 | ||
| IR | 316 | int32 CDAB | R | var | ×0.1 | From firmware r.d2 | |
| IR | 318 | int32 CDAB | R | var | ×0.1 | ||
| IR | 320 | int32 CDAB | R | var | ×0.1 | ||
| IR | 322 | int32 CDAB | R | ×0.001 | From firmware r.d2 | ||
| IR | 324 | int32 CDAB | R | ×0.001 | |||
| IR | 326 | int32 CDAB | R | ×0.001 | |||
| IR | 328 | int32 CDAB | R | ×0.001 | |||
| IR | 524 | int32 CDAB | R | A | ×0.001 | ||
| IR | 526 | int32 CDAB | R | A | ×0.001 | ||
| IR | 528 | int32 CDAB | R | A | ×0.001 | ||
| IR | 530 | int32 CDAB | R | W | ×0.1 | ||
| IR | 532 | int32 CDAB | R | W | ×0.1 | ||
| IR | 534 | int32 CDAB | R | W | ×0.1 | ||
| IR | 536 | int32 CDAB | R | W | ×0.1 | ||
| IR | 538 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 540 | int32 CDAB | R | var | ×0.1 | ||
| IR | 542 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 544 | int32 CDAB | R | kvarh | ×0.1 | ||
| IR | 546 | int32 CDAB | R | W | ×0.1 | ||
| IR | 548 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 550 | int32 CDAB | R | W | ×0.1 | ||
| IR | 552 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 554 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 556 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 558 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 560 | int32 CDAB | R | W | ×0.1 | ||
| IR | 562 | int32 CDAB | R | W | ×0.1 | ||
| IR | 564 | int32 CDAB | R | W | ×0.1 | ||
| IR | 566 | int32 CDAB | R | W | ×0.1 | ||
| IR | 568 | int32 CDAB | R | W | ×0.1 | ||
| IR | 570 | int32 CDAB | R | W | ×0.1 | ||
| IR | 572 | int32 CDAB | R | var | ×0.1 | From firmware r.d2 | |
| IR | 574 | int32 CDAB | R | var | ×0.1 | ||
| IR | 576 | int32 CDAB | R | var | ×0.1 | ||
| IR | 578 | int32 CDAB | R | ×0.001 | From firmware r.d2 | ||
| IR | 580 | int32 CDAB | R | ×0.001 | |||
| IR | 582 | int32 CDAB | R | ×0.001 | |||
| IR | 584 | int32 CDAB | R | ×0.001 | |||
| IR | 11 | uint16 | R | Read alone, one word at a time (the address is inside Voltage L3-L1) | |||
| IR | 770 | uint16 | R | 0 = A, 1 = B … | |||
| IR | 771 | uint16 | R | ||||
| IR | 772 | uint16 | R | ||||
| HR | 4096 | uint16 | RW | ||||
| HR | 4098 | uint16 | RW | ||||
| HR | 4099 | uint16 | R | A | 0 = TCDMM detected (primary set at 0x1023) | ||
| HR | 4100 | uint16 | R | A | |||
| HR | 4101 | uint16 | RW | ×0.1 | Maximum depends on the model (MV5/MV6) and the TCDs, from 9.0 to 999.0 | ||
| HR | 4103 | uint16 | RW | ||||
| HR | 4112 | uint16 | RW | min | |||
| HR | 4114 | uint16 | RW | ||||
| HR | 4128 | uint16 | RW | kWh | ×0.01 | ||
| HR | 4130 | uint16 | RW | kWh | ×0.01 | ||
| HR | 4131 | uint16 | RW | A | Only with a TCDMM sensor; default 60 A | ||
| HR | 4132 | uint16 | RW | A | |||
| HR | 4355 | uint16 | RW | ||||
| HR | 8192 | uint16 | RW | ||||
| HR | 8193 | uint16 | RW |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).