Carlo Gavazzi ET330 Modbus register map
Three-phase bidirectional energy meter with CT connection (DIN rail), RS485 Modbus RTU
- Official
- 107 registers
- Modbus RTU
- Revision 2 · 2026-10-17
- Identity: model
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
- 50 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 33 holding registers, 74 input registers
- Groups
- 6
- Revision
- 2 · 2026-10-17
- Added
- ()
- File
- maps/carlo-gavazzi/et330.mbmap.json · 19 KB · history
- SHA-256
- 9bbec9bb0144979cb5dc932a8bd850a1388def487a969736269535be793d7304
- 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 | 335 = ET330, 336 = ET330 |
Sources and notes
- EM300 Series and ET300 Series Communication Protocol · version Version 2 Revision 17, 2021-07-05
Source: Carlo Gavazzi, "EM300 Series and ET300 Series Communication Protocol", version 2 revision 17 (2021-07-05)
- One protocol document covers EM330, EM340, ET330 and ET340; registers marked ET series or EM330 are not on the other models.
- FC03 or FC04 read (the same values), FC06 writes one register; at most 50 registers per read.
- 32- and 64-bit values are low word first (bytes high first in each word).
- Overflow (EEE on the display) reads 7FFFFFFFh in the variable.
- The high-resolution energy registers from 0x0500 are only on EM330 made from October 2018; EM340 from that date has integer and decimal parts at 0x0400 (not in this map).
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| IR | 11 | uint16 | R | Read alone, one word at a time: the same address is the high word of V L3-L1 | |||
| IR | 0 | int32 CDAB | R | V | ×0.1 | ||
| 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 | ||
| IR | 14 | int32 CDAB | R | A | ×0.001 | ||
| IR | 16 | int32 CDAB | R | A | ×0.001 | ||
| IR | 18 | int32 CDAB | R | W | ×0.1 | ||
| IR | 20 | int32 CDAB | R | W | ×0.1 | ||
| IR | 22 | int32 CDAB | R | W | ×0.1 | ||
| IR | 24 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 26 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 28 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 30 | int32 CDAB | R | var | ×0.1 | ||
| IR | 32 | int32 CDAB | R | var | ×0.1 | ||
| IR | 34 | int32 CDAB | R | var | ×0.1 | ||
| IR | 36 | int32 CDAB | R | V | ×0.1 | ||
| IR | 38 | int32 CDAB | R | V | ×0.1 | ||
| IR | 40 | int32 CDAB | R | W | ×0.1 | ||
| IR | 42 | int32 CDAB | R | VA | ×0.1 | ||
| IR | 44 | int32 CDAB | R | var | ×0.1 | ||
| IR | 46 | int16 | R | ×0.001 | Negative = exported active power | ||
| IR | 47 | int16 | R | ×0.001 | Negative = exported active power | ||
| IR | 48 | int16 | R | ×0.001 | Negative = exported active power | ||
| IR | 49 | int16 | R | ×0.001 | Negative = exported active power | ||
| IR | 50 | int16 | R | ||||
| IR | 51 | int16 | R | Hz | ×0.1 | ||
| IR | 52 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 54 | int32 CDAB | R | kvarh | ×0.1 | ||
| IR | 56 | int32 CDAB | R | W | ×0.1 | ||
| IR | 58 | int32 CDAB | R | W | ×0.1 | ||
| IR | 60 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 62 | int32 CDAB | R | kvarh | ×0.1 | ||
| IR | 64 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 66 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 68 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 70 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 72 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 78 | int32 CDAB | R | kWh | ×0.1 | ||
| IR | 80 | int32 CDAB | R | kvarh | ×0.1 | ||
| IR | 96 | int32 CDAB | R | kWh | ×0.1 | ET series only | |
| IR | 98 | int32 CDAB | R | kWh | ×0.1 | ET series only | |
| IR | 100 | int32 CDAB | R | kWh | ×0.1 | ET series only | |
| IR | 130 | int32 CDAB | R | % | ×0.01 | ||
| IR | 132 | int32 CDAB | R | % | ×0.01 | ||
| IR | 134 | int32 CDAB | R | % | ×0.01 | ||
| IR | 136 | int32 CDAB | R | % | ×0.01 | ||
| IR | 138 | int32 CDAB | R | % | ×0.01 | ||
| IR | 140 | int32 CDAB | R | % | ×0.01 | ||
| IR | 142 | int32 CDAB | R | % | ×0.01 | ||
| IR | 152 | int32 CDAB | R | A | ×0.001 | ET series and EM330 | |
| IR | 1280 | int64 CDAB | R | kWh; EM330 made from October 2018; the protocol gives no value weight | |||
| IR | 1284 | int64 CDAB | R | kvarh | |||
| IR | 1288 | int64 CDAB | R | kWh | |||
| IR | 1292 | int64 CDAB | R | kvarh | |||
| IR | 1296 | int64 CDAB | R | kWh | |||
| IR | 1300 | int64 CDAB | R | kWh | |||
| IR | 1304 | int64 CDAB | R | kWh | |||
| IR | 1308 | int64 CDAB | R | kWh | |||
| IR | 1312 | int64 CDAB | R | kWh | |||
| IR | 1316 | int64 CDAB | R | kvarh | |||
| IR | 1320 | int64 CDAB | R | kvarh | |||
| IR | 770 | uint16 | R | 0 = A, 1 = B … | |||
| IR | 771 | uint16 | R | ||||
| HR | 4096 | uint16 | RW | EM only; always 0 on ET | |||
| HR | 4098 | uint16 | RW | ||||
| HR | 4099 | uint32 CDAB | RW | ×0.1 | (CT ratio)×(VT ratio) is at most 1057 on AV5 and 3418 on AV6 | ||
| HR | 4101 | uint32 CDAB | RW | ×0.1 | |||
| HR | 4112 | uint32 CDAB | RW | min | |||
| HR | 4114 | uint32 CDAB | RW | ||||
| HR | 4128 | uint32 CDAB | RW | ||||
| HR | 4130 | uint32 CDAB | RW | ||||
| HR | 4352 | uint16 | RW | ||||
| HR | 4353 | uint16 | RW | ||||
| HR | 4354 | uint16 | RW | EM only; not changeable on MID versions | |||
| HR | 4355 | uint16 | RW | ||||
| HR | 4356 | uint16 | RW | ||||
| HR | 4357 | bool bit 0 | R | ||||
| HR | 4357 | bool bit 1 | R | ||||
| HR | 4357 | bool bit 2 | R | ||||
| HR | 4357 | bool bit 3 | R | ||||
| HR | 4357 | bool bit 4 | R | ||||
| HR | 4357 | bool bit 5 | R | ||||
| HR | 4357 | bool bit 6 | R | ||||
| HR | 4357 | bool bit 7 | R | ||||
| HR | 4358 | uint16 | RW | ET series and EM330 | |||
| HR | 4359 | uint32 CDAB | RW | A | ×0.001 | Secondary current; ET series and EM330 | |
| HR | 4608 | uint16 | RW | ||||
| HR | 4609 | uint16 | RW | ||||
| HR | 8192 | uint16 | RW | ||||
| HR | 8193 | uint16 | RW | ||||
| HR | 8194 | uint16 | RW | ||||
| HR | 8195 | uint16 | RW | 2 only with no parity | |||
| HR | 8196 | uint16 | R | ||||
| HR | 16384 | uint16 | W | ||||
| HR | 16385 | uint16 | W | Non-MID (X) versions only | |||
| HR | 16386 | uint16 | W | ET series and EM330 |
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).