Skip to content
Proxus 2.0.1 Licence and sign-in fixes after the 2.0 upgrade Release notes

Carlo Gavazzi EM111/EM112 Modbus register map

Also searched as: EM111 · EM112 · EM110 · ET112 · EM111-DIN · EM112-DIN · ET112-DIN · EM100 series · ET100 series

48 Modbus registers of the Carlo Gavazzi EM111 and EM112, with the address on the wire, the 30001-style reference, data type, byte order, unit and scale. Transcribed from EM100 Series and ET100 Series Communication Protocol (Version 2 Revision 14).

EM100 and ET100 series single-phase DIN-rail meters (EM110, EM111, EM112, ET112) with Modbus RTU; scaled integers, low word first.

Device type
Energy meter
Registers
48
Interfaces
Modbus RTU
Default unit ID
1
Byte order (multi-register values)
CDAB
Serial settings
9600 baud, 8 data bits, no parity, 1 stop bit
Registers per read
50
Models covered
EM110, EM111, EM112, ET112

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.

Verify it on your device What the levels mean

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.
  • Up to 50 registers per read.
  • Registers 0100h to 0185h repeat the same values in another order and are not listed.
  • The 1 Wh totalizers at 0400h need an EM111 or EM112 with firmware b.10, made from 2020 on.
  • The 64-bit totalizers at 0500h are left out; their LSW-first word order has no byte_order code here.
  • Reading a setup address not listed in the document returns an illegal data address exception.

Registers

Grouped as in the vendor document.

Voltage 2 registers
Name and key Reference Address Type Byte order Unit Scale
Voltagevoltage 30001 0x0000 int32 CDAB V × 0.1
Frequencyfrequency 30016 0x000F int16 Hz × 0.1
Current 1 registers
Name and key Reference Address Type Byte order Unit Scale
Currentcurrent 30003 0x0002 int32 CDAB A × 0.001
Power 4 registers
Name and key Reference Address Type Byte order Unit Scale
Active poweractive_power 30005 0x0004 int32 CDAB W × 0.1
Apparent powerapparent_power 30007 0x0006 int32 CDAB VA × 0.1
Reactive powerreactive_power 30009 0x0008 int32 CDAB var × 0.1
Power factorpower_factor 30015 0x000E int16 × 0.001
Energy 7 registers
Name and key Reference Address Type Byte order Unit Scale
Total imported active energyimport_active_energy 30017 0x0010 int32 CDAB kWh × 0.1
Total imported reactive energyimport_reactive_energy 30019 0x0012 int32 CDAB kvarh × 0.1
Partial imported active energyimport_active_energy_partial 30021 0x0014 int32 CDAB kWh × 0.1
Partial imported reactive energyimport_reactive_energy_partial 30023 0x0016 int32 CDAB kvarh × 0.1
Total exported active energyexport_active_energy 30033 0x0020 int32 CDAB kWh × 0.1
Total exported reactive energyexport_reactive_energy 30035 0x0022 int32 CDAB kvarh × 0.1
Hour counterrun_hours 30045 0x002C int32 CDAB h × 0.01
Demand 2 registers
Name and key Reference Address Type Byte order Unit Scale
Active power demandactive_power_demand 30011 0x000A int32 CDAB W × 0.1
Peak active power demandactive_power_demand_max 30013 0x000C int32 CDAB W × 0.1
Tariff energy 2 registers
Name and key Reference Address Type Byte order Unit Scale
Imported active energy, tariff 1import_active_energy_t1 30025 0x0018 int32 CDAB kWh × 0.1
Imported active energy, tariff 2import_active_energy_t2 30027 0x001A int32 CDAB kWh × 0.1
Energy hr 8 registers
Name and key Reference Address Type Byte order Unit Scale
Total imported active energy, integer partimport_active_energy_int 31025 0x0400 int32 CDAB kWh
Total imported active energy, decimal partimport_active_energy_dec 31027 0x0402 int32 CDAB kWh × 0.001
Total imported reactive energy, integer partimport_reactive_energy_int 31029 0x0404 int32 CDAB kvarh
Total imported reactive energy, decimal partimport_reactive_energy_dec 31031 0x0406 int32 CDAB kvarh × 0.001
Total exported active energy, integer partexport_active_energy_int 31033 0x0408 int32 CDAB kWh
Total exported active energy, decimal partexport_active_energy_dec 31035 0x040A int32 CDAB kWh × 0.001
Total exported reactive energy, integer partexport_reactive_energy_int 31037 0x040C int32 CDAB kvarh
Total exported reactive energy, decimal partexport_reactive_energy_dec 31039 0x040E int32 CDAB kvarh × 0.001
Info 5 registers
Name and key Reference Address Type Byte order Unit Scale
Version codeversion_code 30771 0x0302 uint16
Revision coderevision_code 30772 0x0303 uint16
Maximum words per readmax_read_words 48197 0x2004 uint16
Serial numberserial_number 320481 0x5000 raw
Production yearproduction_year 320497 0x5010 uint16
Setup 17 registers
Name and key Reference Address Type Byte order Unit Scale
Passwordpassword 44097 0x1000 uint16
Current transformer ratioct_ratio 44100 0x1003 uint32 CDAB × 0.1
Demand integration timedemand_interval 44113 0x1010 uint32 CDAB min
Pulse output on timepulse_duration 44115 0x1012 uint32 CDAB
Display modedisplay_mode 44353 0x1100 uint16
Tariff managementtariff_enable 44354 0x1101 uint16
Home pagehome_page 44355 0x1102 uint16
Measurement modemeasurement_mode 44356 0x1103 uint16
Tariff selection sourcetariff_mode 44609 0x1200 uint16
Active tariff (serial selection)tariff_select 44610 0x1201 uint16
RS485 instrument addressmodbus_address 48193 0x2000 uint16
RS485 baud ratebaud_rate 48194 0x2001 uint16
RS485 parityparity 48195 0x2002 uint16
RS485 stop bitsstop_bits 48196 0x2003 uint16
Reset partial and tariff meters and demand peakreset_partial 416385 0x4000 uint16
Reset total energy metersreset_totals 416386 0x4001 uint16
Reset hour counterreset_hour_counter 416387 0x4002 uint16

Source documents

View this map on GitHub (YAML)

Read it by name

Read the EM111/EM112 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": {
    "em111-1": {
      "protocol": "modbus-tcp",
      "host": "192.168.10.40",
      "unit_id": 1,
      "map": "carlo-gavazzi/em111-em112"
    }
  }
}

Ask your assistant

Read voltage, frequency, current from em111-1.

The tool call it makes

read_named(device: "em111-1", keys: ["voltage", "frequency", "current"])

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.

Modbus in Proxus Industrial connectivity