Carlo Gavazzi EM24-DIN Modbus register map
Also searched as: EM24 · EM24DIN · EM24-DIN PFA · EM24-DIN PFB · EM24-DIN X
78 Modbus registers of the Carlo Gavazzi EM24-DIN, with the address on the wire, the 30001-style reference, data type, byte order, unit and scale. Transcribed from EM24-DIN PFA, PFB & X models Communication Protocol (Version 4 Revision 0 (December 3, 2012)).
Three-phase DIN-rail energy meter with RS485 Modbus RTU (PFA, PFB and X models); scaled integers, low word first.
- Device type
- Energy meter
- Registers
- 78
- Interfaces
- Modbus RTU
- Default unit ID
- 1
- Byte order (multi-register values)
- CDAB
- Registers per read
- 11
Hardware verification
Not yet verified on hardware. The map is transcribed from the vendor document and checked against it by script; check the first readings against the device display.
Connection notes
- Function codes 03 and 04 return the same values; input registers here can also be read as holding registers.
- 32-bit values are sent low word first (LSW, MSW); bytes inside each word are high byte first.
- The document limits a read to 11 registers; registers in tables 2.4 to 2.8 are read one word at a time.
- Write settings with function 06 (one register); broadcast (address 0) is accepted for writes only.
- Serial settings are 8 data bits, no parity, 1 stop bit; only the baud rate is selectable.
- A value whose high word is 7FFFh is an overflow and the display shows EEEE.
- The EM24-DIN Ethernet and M-Bus models and the EM24-IS SFA and SFB models use other documents.
Registers
Grouped as in the vendor document.
Voltage 9 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Phase 1 line to neutral voltagevoltage_l1_n | 30001 | 0x0000 | int32 | CDAB | V | × 0.1 |
Phase 2 line to neutral voltagevoltage_l2_n | 30003 | 0x0002 | int32 | CDAB | V | × 0.1 |
Phase 3 line to neutral voltagevoltage_l3_n | 30005 | 0x0004 | int32 | CDAB | V | × 0.1 |
Line 1 to line 2 voltagevoltage_l1_l2 | 30007 | 0x0006 | int32 | CDAB | V | × 0.1 |
Line 2 to line 3 voltagevoltage_l2_l3 | 30009 | 0x0008 | int32 | CDAB | V | × 0.1 |
Line 3 to line 1 voltagevoltage_l3_l1 | 30011 | 0x000A | int32 | CDAB | V | × 0.1 |
System line to neutral voltagevoltage_l_n_sys | 30037 | 0x0024 | int32 | CDAB | V | × 0.1 |
System line to line voltagevoltage_l_l_sys | 30039 | 0x0026 | int32 | CDAB | V | × 0.1 |
Frequencyfrequency | 30056 | 0x0037 | int16 | Hz | × 0.1 |
Current 3 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Phase 1 currentcurrent_l1 | 30013 | 0x000C | int32 | CDAB | A | × 0.001 |
Phase 2 currentcurrent_l2 | 30015 | 0x000E | int32 | CDAB | A | × 0.001 |
Phase 3 currentcurrent_l3 | 30017 | 0x0010 | int32 | CDAB | A | × 0.001 |
Power 16 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Phase 1 active poweractive_power_l1 | 30019 | 0x0012 | int32 | CDAB | W | × 0.1 |
Phase 2 active poweractive_power_l2 | 30021 | 0x0014 | int32 | CDAB | W | × 0.1 |
Phase 3 active poweractive_power_l3 | 30023 | 0x0016 | int32 | CDAB | W | × 0.1 |
Phase 1 apparent powerapparent_power_l1 | 30025 | 0x0018 | int32 | CDAB | VA | × 0.1 |
Phase 2 apparent powerapparent_power_l2 | 30027 | 0x001A | int32 | CDAB | VA | × 0.1 |
Phase 3 apparent powerapparent_power_l3 | 30029 | 0x001C | int32 | CDAB | VA | × 0.1 |
Phase 1 reactive powerreactive_power_l1 | 30031 | 0x001E | int32 | CDAB | var | × 0.1 |
Phase 2 reactive powerreactive_power_l2 | 30033 | 0x0020 | int32 | CDAB | var | × 0.1 |
Phase 3 reactive powerreactive_power_l3 | 30035 | 0x0022 | int32 | CDAB | var | × 0.1 |
System active poweractive_power_total | 30041 | 0x0028 | int32 | CDAB | W | × 0.1 |
System apparent powerapparent_power_total | 30043 | 0x002A | int32 | CDAB | VA | × 0.1 |
System reactive powerreactive_power_total | 30045 | 0x002C | int32 | CDAB | var | × 0.1 |
Phase 1 power factorpower_factor_l1 | 30051 | 0x0032 | int16 | × 0.001 | ||
Phase 2 power factorpower_factor_l2 | 30052 | 0x0033 | int16 | × 0.001 | ||
Phase 3 power factorpower_factor_l3 | 30053 | 0x0034 | int16 | × 0.001 | ||
System power factorpower_factor_total | 30054 | 0x0035 | int16 | × 0.001 |
Energy 10 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Total imported active energyimport_active_energy | 30063 | 0x003E | int32 | CDAB | kWh | × 0.1 |
Total imported reactive energyimport_reactive_energy | 30065 | 0x0040 | int32 | CDAB | kvarh | × 0.1 |
Partial imported active energyimport_active_energy_partial | 30067 | 0x0042 | int32 | CDAB | kWh | × 0.1 |
Partial imported reactive energyimport_reactive_energy_partial | 30069 | 0x0044 | int32 | CDAB | kvarh | × 0.1 |
Phase 1 imported active energyimport_active_energy_l1 | 30071 | 0x0046 | int32 | CDAB | kWh | × 0.1 |
Phase 2 imported active energyimport_active_energy_l2 | 30073 | 0x0048 | int32 | CDAB | kWh | × 0.1 |
Phase 3 imported active energyimport_active_energy_l3 | 30075 | 0x004A | int32 | CDAB | kWh | × 0.1 |
Total exported active energyexport_active_energy | 30093 | 0x005C | int32 | CDAB | kWh | × 0.1 |
Total exported reactive energyexport_reactive_energy | 30095 | 0x005E | int32 | CDAB | kvarh | × 0.1 |
Hour counterrun_hours | 30097 | 0x0060 | int32 | CDAB | h | × 0.01 |
Status 4 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Phase sequencephase_sequence | 30055 | 0x0036 | int16 | |||
Digital input statusdigital_input_status | 30769 | 0x0300 | bitfield16 | |||
Current tariffcurrent_tariff | 30770 | 0x0301 | uint16 | |||
Front selector statusfront_selector_status | 30773 | 0x0304 | uint16 |
Demand 5 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
System active power demandactive_power_demand | 30047 | 0x002E | int32 | CDAB | W | × 0.1 |
System apparent power demandapparent_power_demand | 30049 | 0x0030 | int32 | CDAB | VA | × 0.1 |
Maximum system active power demandactive_power_demand_max | 30057 | 0x0038 | int32 | CDAB | W | × 0.1 |
Maximum system apparent power demandapparent_power_demand_max | 30059 | 0x003A | int32 | CDAB | VA | × 0.1 |
Maximum current demandcurrent_demand_max | 30061 | 0x003C | int32 | CDAB | A | × 0.001 |
Tariff energy 8 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Imported active energy, tariff 1import_active_energy_t1 | 30077 | 0x004C | int32 | CDAB | kWh | × 0.1 |
Imported active energy, tariff 2import_active_energy_t2 | 30079 | 0x004E | int32 | CDAB | kWh | × 0.1 |
Imported active energy, tariff 3import_active_energy_t3 | 30081 | 0x0050 | int32 | CDAB | kWh | × 0.1 |
Imported active energy, tariff 4import_active_energy_t4 | 30083 | 0x0052 | int32 | CDAB | kWh | × 0.1 |
Imported reactive energy, tariff 1import_reactive_energy_t1 | 30085 | 0x0054 | int32 | CDAB | kvarh | × 0.1 |
Imported reactive energy, tariff 2import_reactive_energy_t2 | 30087 | 0x0056 | int32 | CDAB | kvarh | × 0.1 |
Imported reactive energy, tariff 3import_reactive_energy_t3 | 30089 | 0x0058 | int32 | CDAB | kvarh | × 0.1 |
Imported reactive energy, tariff 4import_reactive_energy_t4 | 30091 | 0x005A | int32 | CDAB | kvarh | × 0.1 |
Counters 3 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Counter 1counter_1 | 30099 | 0x0062 | int32 | CDAB | ||
Counter 2counter_2 | 30101 | 0x0064 | int32 | CDAB | ||
Counter 3counter_3 | 30103 | 0x0066 | int32 | CDAB |
Info 4 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Version codeversion_code | 30771 | 0x0302 | uint16 | |||
Revision coderevision_code | 30772 | 0x0303 | uint16 | |||
Serial numberserial_number | 34865 | 0x1300 | string | |||
Instrument secondary addresssecondary_address | 34872 | 0x1307 | uint32 | CDAB |
Setup 16 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Passwordpassword | 44353 | 0x1100 | uint16 | |||
Type of applicationapplication | 44354 | 0x1101 | uint16 | |||
Measuring systemmeasuring_system | 44355 | 0x1102 | uint16 | |||
Demand integration timedemand_interval | 44356 | 0x1103 | uint16 | min | ||
Filter span parameterfilter_span | 44361 | 0x1108 | uint16 | |||
Filter coefficientfilter_coefficient | 44362 | 0x1109 | uint16 | |||
RS485 instrument addressmodbus_address | 44363 | 0x110A | uint16 | |||
RS485 baud ratebaud_rate | 44364 | 0x110B | uint16 | |||
Current transformer ratioct_ratio | 44397 | 0x112C | uint32 | CDAB | × 0.1 | |
Voltage transformer ratiovt_ratio | 44399 | 0x112E | uint32 | CDAB | × 0.1 | |
Reset all meters except the hour counterreset_all_meters | 412289 | 0x3000 | uint16 | |||
Reset total meters except the hour counterreset_total_meters | 412290 | 0x3001 | uint16 | |||
Reset partial metersreset_partial_meters | 412291 | 0x3002 | uint16 | |||
Reset hour counterreset_hour_counter | 412292 | 0x3003 | uint16 | |||
Reset counters 1, 2 and 3reset_counters | 412293 | 0x3004 | uint16 | |||
Reset maximum demand valuesreset_demand_max | 412294 | 0x3005 | uint16 |
Source documents
- EM24-DIN PFA, PFB & X models Communication Protocol , Carlo Gavazzi, Version 4 Revision 0 (December 3, 2012) (accessed 2026-11-09) Despite the file name, the document covers the EM24-DIN PFA, PFB and X models.
Read it by name
Read the EM24-DIN with an AI assistant
The Proxus Industrial MCP Server includes this map. Set it on the device, and Claude, Cursor or VS Code reads registers by key with the right type, byte order, scale and unit. It only reads.
This device speaks Modbus RTU: reach it through a Modbus TCP gateway and use the gateway’s address with the device’s unit ID.
proxus-mcp.json
{
"devices": {
"em24-1": {
"protocol": "modbus-tcp",
"host": "192.168.10.40",
"unit_id": 1,
"map": "carlo-gavazzi/em24-din"
}
}
} Ask your assistant
Read voltage_l1_n, voltage_l2_n, voltage_l3_n from em24-1.
The tool call it makes
read_named(device: "em24-1", keys: ["voltage_l1_n", "voltage_l2_n", "voltage_l3_n"]) Have this device? Verify the map.
Ask your assistant to run verify_device_map. It reads every register once, read-only, checks that the values are plausible and asks you to compare two values with the display. You get a report and a prefilled GitHub issue to submit; your name goes on this map’s verified list.
Collecting from many devices?
Proxus reads Modbus TCP and RTU devices next to the machines, keeps the history and delivers the values to dashboards, databases and AI.