Carlo Gavazzi EM340 Modbus register map
Three phase DIN rail energy meter from the EM300 family with an optional RS485 Modbus RTU port. The map covers phase and system voltage, current, power, power factor, frequency, import and export energy, tariffs and meter setup.
- Protocol
- Modbus RTU
- Defaults
- Per the protocol document: address 1, 9.6 kbps, no parity, one stop bit. Function codes 03 and 04 read the same data.
- Addresses in the manual
- Modicon style numbers (for example 40001 is holding register 0)
- 32 and 64-bit values
- Low word first (CD AB)
- Registers listed
- 65
- Checked against
- EM300 Series and ET300 Series Communication Protocol, Version 2 Revision 17 (July 05, 2021)
Address base. The document gives each variable as a 6-digit Modicon number for function 04 (for example 300001) beside the physical word address (0000h). Wire address equals the printed number minus 300001. Function 03 reads the same values with the leading 3 replaced by 4 (pp. 3, 9). Writable settings are printed in the same 3xxxxx form; address them as holding registers. For example 300001 in the manual (Phase 1 line to neutral voltage) is address 0 on the wire.
Word order. INT32, UINT32 and INT64 values are sent least significant word first, with MSB first inside each word (p. 7). The document also mentions an engineering-sample EM340 with the opposite word order (p. 14).
Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.
Downloads
The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.
Registers
| Manual | Wire | Register | Type | Regs | Unit | Scale | Access | Area |
|---|---|---|---|---|---|---|---|---|
| 300001 | 0 | Phase 1 line to neutral voltageVoltage_L1N |
int32 | 2 | V | 0.1 | R | Input (FC04) |
| 300003 | 2 | Phase 2 line to neutral voltageVoltage_L2N |
int32 | 2 | V | 0.1 | R | Input (FC04) |
| 300005 | 4 | Phase 3 line to neutral voltageVoltage_L3N |
int32 | 2 | V | 0.1 | R | Input (FC04) |
| 300007 | 6 | Line 1 to line 2 voltageVoltage_L1L2 |
int32 | 2 | V | 0.1 | R | Input (FC04) |
| 300009 | 8 | Line 2 to line 3 voltageVoltage_L2L3 |
int32 | 2 | V | 0.1 | R | Input (FC04) |
| 300011 | 10 | Line 3 to line 1 voltageVoltage_L3L1 |
int32 | 2 | V | 0.1 | R | Input (FC04) |
| 300013 | 12 | Phase 1 currentCurrent_L1 · Signed; negative in bidirectional mode when power flows in reverse. |
int32 | 2 | A | 0.001 | R | Input (FC04) |
| 300015 | 14 | Phase 2 currentCurrent_L2 |
int32 | 2 | A | 0.001 | R | Input (FC04) |
| 300017 | 16 | Phase 3 currentCurrent_L3 |
int32 | 2 | A | 0.001 | R | Input (FC04) |
| 300019 | 18 | Phase 1 active powerActivePower_L1 |
int32 | 2 | W | 0.1 | R | Input (FC04) |
| 300021 | 20 | Phase 2 active powerActivePower_L2 |
int32 | 2 | W | 0.1 | R | Input (FC04) |
| 300023 | 22 | Phase 3 active powerActivePower_L3 |
int32 | 2 | W | 0.1 | R | Input (FC04) |
| 300025 | 24 | Phase 1 apparent powerApparentPower_L1 |
int32 | 2 | VA | 0.1 | R | Input (FC04) |
| 300027 | 26 | Phase 2 apparent powerApparentPower_L2 |
int32 | 2 | VA | 0.1 | R | Input (FC04) |
| 300029 | 28 | Phase 3 apparent powerApparentPower_L3 |
int32 | 2 | VA | 0.1 | R | Input (FC04) |
| 300031 | 30 | Phase 1 reactive powerReactivePower_L1 |
int32 | 2 | var | 0.1 | R | Input (FC04) |
| 300033 | 32 | Phase 2 reactive powerReactivePower_L2 |
int32 | 2 | var | 0.1 | R | Input (FC04) |
| 300035 | 34 | Phase 3 reactive powerReactivePower_L3 |
int32 | 2 | var | 0.1 | R | Input (FC04) |
| 300037 | 36 | System line to neutral voltageVoltageLN_Sys |
int32 | 2 | V | 0.1 | R | Input (FC04) |
| 300039 | 38 | System line to line voltageVoltageLL_Sys |
int32 | 2 | V | 0.1 | R | Input (FC04) |
| 300041 | 40 | System active powerActivePower_Sys |
int32 | 2 | W | 0.1 | R | Input (FC04) |
| 300043 | 42 | System apparent powerApparentPower_Sys |
int32 | 2 | VA | 0.1 | R | Input (FC04) |
| 300045 | 44 | System reactive powerReactivePower_Sys |
int32 | 2 | var | 0.1 | R | Input (FC04) |
| 300047 | 46 | Phase 1 power factorPowerFactor_L1 · Negative means exported active power, positive means imported. |
int16 | 1 | 0.001 | R | Input (FC04) | |
| 300048 | 47 | Phase 2 power factorPowerFactor_L2 |
int16 | 1 | 0.001 | R | Input (FC04) | |
| 300049 | 48 | Phase 3 power factorPowerFactor_L3 |
int16 | 1 | 0.001 | R | Input (FC04) | |
| 300050 | 49 | System power factorPowerFactor_Sys |
int16 | 1 | 0.001 | R | Input (FC04) | |
| 300051 | 50 | Phase sequencePhaseSequence · 0 = L1-L2-L3 order, 1 = L1-L3-L2 order. Meaningful only on a 3-phase system. |
int16 | 1 | 1 | R | Input (FC04) | |
| 300052 | 51 | FrequencyFrequency |
int16 | 1 | Hz | 0.1 | R | Input (FC04) |
| 300053 | 52 | Total imported active energyEnergyImport_kWh |
int32 | 2 | kWh | 0.1 | R | Input (FC04) |
| 300055 | 54 | Total imported reactive energyEnergyImport_kvarh |
int32 | 2 | kvarh | 0.1 | R | Input (FC04) |
| 300057 | 56 | Active power demandPowerDemand |
int32 | 2 | W | 0.1 | R | Input (FC04) |
| 300059 | 58 | Active power demand peakPowerDemandPeak |
int32 | 2 | W | 0.1 | R | Input (FC04) |
| 300061 | 60 | Partial imported active energyEnergyImportPartial_kWh |
int32 | 2 | kWh | 0.1 | R | Input (FC04) |
| 300063 | 62 | Partial imported reactive energyEnergyImportPartial_kvarh |
int32 | 2 | kvarh | 0.1 | R | Input (FC04) |
| 300065 | 64 | Phase 1 imported active energyEnergyImport_kWh_L1 |
int32 | 2 | kWh | 0.1 | R | Input (FC04) |
| 300067 | 66 | Phase 2 imported active energyEnergyImport_kWh_L2 |
int32 | 2 | kWh | 0.1 | R | Input (FC04) |
| 300069 | 68 | Phase 3 imported active energyEnergyImport_kWh_L3 |
int32 | 2 | kWh | 0.1 | R | Input (FC04) |
| 300071 | 70 | Imported active energy, tariff 1EnergyImport_kWh_T1 |
int32 | 2 | kWh | 0.1 | R | Input (FC04) |
| 300073 | 72 | Imported active energy, tariff 2EnergyImport_kWh_T2 |
int32 | 2 | kWh | 0.1 | R | Input (FC04) |
| 300079 | 78 | Total exported active energyEnergyExport_kWh · The manual does not state this for the 0x004E row itself. For the matching 3-decimal export totals at 301033 to 301039 it states the value is 0 on PFA models and on X models in measurement mode A (p. 11). |
int32 | 2 | kWh | 0.1 | R | Input (FC04) |
| 300081 | 80 | Total exported reactive energyEnergyExport_kvarh |
int32 | 2 | kvarh | 0.1 | R | Input (FC04) |
| 301025 | 1024 | Total imported active energy, integer partEnergyImport_kWh_Int · Available only on EM340 units made from 1 October 2018. Combine with the decimal part at 301027. |
int32 | 2 | kWh | 1 | R | Input (FC04) |
| 301027 | 1026 | Total imported active energy, decimal partEnergyImport_kWh_Dec · Thousandths of a kWh, as a 32-bit value with the high word always 0. |
int32 | 2 | kWh | 0.001 | R | Input (FC04) |
| 300771 | 770 | Firmware version codeVersionCode · 0 = version A, 1 = version B, and so on. |
uint16 | 1 | 1 | R | Input (FC04) | |
| 300772 | 771 | Firmware revision codeRevisionCode · 0 = revision 0, and so on. |
uint16 | 1 | 1 | R | Input (FC04) | |
| 300012 | 11 | Carlo Gavazzi identification codeProductCode · Read one word at a time. The manual lists 341 for the EM340 AV2 versions. |
uint16 | 1 | 1 | R | Input (FC04) | |
| 320497 | 20496 | Production yearProductionYear · Available only on EM330 and EM340 made from 1 October 2018. |
uint16 | 1 | 1 | R | Input (FC04) | |
| 304097 | 4096 | Programming passwordPassword · Valid 0 to 9999. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 304099 | 4098 | Measuring systemMeasuringSystem · 0 = 3-phase with neutral, 1 = 3-phase without neutral, 2 = 2-phase with neutral. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 304100 | 4099 | Current transformer ratioCT_Ratio · Raw 10 to 10000 means CT ratio 1.0 to 1000.0. |
uint32 | 2 | 0.1 | RW | Holding (FC03) | |
| 304102 | 4101 | Voltage transformer ratioVT_Ratio · Raw 10 to 10000 means VT ratio 1.0 to 1000.0. |
uint32 | 2 | 0.1 | RW | Holding (FC03) | |
| 304353 | 4352 | Display modeDisplayMode · 0 = full (default), 1 = easy. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 304354 | 4353 | Tariff management enableTariffEnable · 0 = off, 1 = on. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 304356 | 4355 | Measurement mode selectionMeasurementMode · 0 = mode A (easy connection), 1 = mode B (bidirectional). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 304358 | 4357 | Wrong connection statusWiringStatus · Bit 0 wrong voltage sequence, bits 1-3 phase 1/2/3 inverted, bits 4-6 phases 1-2, 1-3, 2-3 exchanged, bit 7 all three exchanged. |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 304609 | 4608 | Tariff selection sourceTariffMode · 0 = via digital inputs, 1 = via serial command. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 304610 | 4609 | Active tariff via serialTariffNumber · 1 or 2. Read only while tariff selection is by digital input. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 308193 | 8192 | RS485 instrument addressModbusAddress · 1 to 247, default 1. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 308194 | 8193 | RS485 baud rateBaudRate · 1 = 9.6 kbps (default), 2 = 19.2, 3 = 38.4, 4 = 57.6, 5 = 115.2 kbps. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 308195 | 8194 | RS485 parityParity · 1 = no parity (default), 2 = even. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 308196 | 8195 | RS485 stop bitsStopBits · 0 or 1 = 1 stop bit, 2 = 2 stop bits (only with even parity). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 308197 | 8196 | Maximum words per read requestMaxWordsPerRead · Fixed at 50. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 316385 | 16384 | Reset partial, tariff and demand metersResetPartialAndTariff · Write 1 to run the command; reads 0 when done. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 316386 | 16385 | Reset total energy metersResetTotalEnergy · Write 1 to run the command; only on non-MID (X option) versions. |
uint16 | 1 | 1 | RW | Holding (FC03) |
Scale is the number to multiply the raw value by to get the unit. Types with more than one register (32 and 64-bit) follow the word order above.
Open in Modbus Poll
- Download the Modbus Poll blocks file.
- Open Modbus Poll, connect to the device and set its unit ID. In Modbus Poll set Word order to CD AB.
- In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
- The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.
Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.
Source and accuracy
Manufacturer document: EM300 Series and ET300 Series Communication Protocol (www.gavazziautomation.com)
EM300 Series and ET300 Series Communication Protocol, Version 2 Revision 17 (July 05, 2021), pp. 3-18. Read on 2026-10-24.
Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.
Found a mistake? Report it by email with the register address and the manual page.
More from Carlo Gavazzi
All Carlo Gavazzi register maps