Schneider Electric iEM3355 Modbus register map
DIN-rail energy meter for direct connection up to 125 A, with four-quadrant energy, current, voltage, power and frequency measurement. It supports up to four tariffs, has one programmable digital input and one programmable digital output, an overload alarm and an RS-485 Modbus RTU port.
- Protocol
- Modbus RTU
- Defaults
- RS-485 Modbus RTU (p. 55). Baud rate 9600, 19200 or 38400, parity odd, even or none, one stop bit, address 1 to 247, all set on the meter display. Supported functions: 03 read holding registers, 16 write multiple registers, 43/14 read device identification.
- Addresses in the manual
- 1-based register numbers (wire address is the number minus 1)
- 32 and 64-bit values
- Not stated in the manual
- Registers listed
- 75
- Checked against
- DOCA0005EN-16, 05/2026
Address base. The manual's table format description (p. 56) says the Address column is the value sent in the Modbus frame and the Register column is the decimal register number, where register = address + 1. The addresses recorded here are the Register numbers, so the wire address is the printed number minus 1 (for example register 3000 is address 0x0BB7). For example 30 in the manual (Meter name) is address 29 on the wire.
Word order. The manual does not say how 32-bit floats and 64-bit values are laid out across registers.
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 |
|---|---|---|---|---|---|---|---|---|
| 30 | 29 | Meter nameMeter_Name |
string | 20 | 1 | R | Holding (FC03) | |
| 50 | 49 | Meter modelMeter_Model |
string | 20 | 1 | R | Holding (FC03) | |
| 70 | 69 | Manufacturer nameManufacturer |
string | 20 | 1 | R | Holding (FC03) | |
| 130 | 129 | Serial numberSerial_Number |
uint32 | 2 | 1 | R | Holding (FC03) | |
| 136 | 135 | Hardware revisionHardware_Revision |
string | 5 | 1 | R | Holding (FC03) | |
| 1637 | 1636 | Present firmware versionFirmware_Version · Encoded in the manual's DLF format, X.Y.ZTT. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 45000 | 44999 | Diagnostics error status bitsDiagnostics_Error_Status · One bit per diagnostic code: bit 0 = code 101, bit 1 = 102, bits 2 to 8 = codes 201 to 207. 1 means active. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 2004 | 2003 | Meter operation timerMeter_Operation_Timer |
uint32 | 2 | s | 1 | R | Holding (FC03) |
| 2014 | 2013 | Number of phasesNumber_Of_Phases |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 2015 | 2014 | Number of wiresNumber_Of_Wires |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 2016 | 2015 | Power system configurationPower_System · Values: 0 = 1PH2W L-N, 1 = 1PH2W L-L, 2 = 1PH3W L-L with N, 3 = 3PH3W, 11 = 3PH4W, 13 = 1PH4W multi L with N. Written through the command interface (write by command). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 2017 | 2016 | Nominal frequencyNominal_Frequency · Written through the command interface (write by command). |
uint16 | 1 | Hz | 1 | RW | Holding (FC03) |
| 2129 | 2128 | Energy pulse durationEnergy_Pulse_Duration · Written through the command interface (write by command). |
uint16 | 1 | ms | 1 | RW | Holding (FC03) |
| 2131 | 2130 | Digital output association for energy pulsePulse_Output_Association · 0 = disabled, 1 = DO1 enabled for the active energy pulse output. Written through the command interface (write by command). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 2132 | 2131 | Energy pulse weightPulse_Weight · Written through the command interface (write by command). |
float32 | 2 | pulse/kWh | 1 | RW | Holding (FC03) |
| 5250 | 5249 | Requested command numberCommand_Requested · First word of the command block (registers 5250 to 5374). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 5375 | 5374 | Command statusCommand_Status |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 5376 | 5375 | Command result codeCommand_Result · 0 = valid operation, 3000 = invalid command, 3001 = invalid parameter, 3002 = invalid number of parameters, 3007 = operation not performed. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 6500 | 6499 | Communication protocolComm_Protocol · 0 = Modbus. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 6501 | 6500 | Modbus slave addressModbus_Address · Written through the command interface (write by command). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 6502 | 6501 | Baud rate codeBaud_Rate · 0 = 9600, 1 = 19200, 2 = 38400. Written through the command interface (write by command). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 6503 | 6502 | Parity codeParity · 0 = even, 1 = odd, 2 = none. One stop bit. Written through the command interface (write by command). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 7274 | 7273 | Digital input control modeDI_Control_Mode · 0 = normal input status, 2 = multi-tariff control, 3 = input metering, 5 = all energy reset. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 9673 | 9672 | Digital output control mode statusDO_Control_Mode · 2 = alarm, 3 = pulse (kWh), 6 = pulse (kVARh), 0xFFFF = disabled. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 3000 | 2999 | Phase 1 currentCurrent_I1 |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3002 | 3001 | Phase 2 currentCurrent_I2 |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3004 | 3003 | Phase 3 currentCurrent_I3 |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3010 | 3009 | Average currentCurrent_Avg |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3020 | 3019 | Voltage L1 to L2Voltage_L1_L2 |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3022 | 3021 | Voltage L2 to L3Voltage_L2_L3 |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3024 | 3023 | Voltage L3 to L1Voltage_L3_L1 |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3026 | 3025 | Average line to line voltageVoltage_LL_Avg |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3028 | 3027 | Voltage L1 to neutralVoltage_L1_N |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3030 | 3029 | Voltage L2 to neutralVoltage_L2_N |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3032 | 3031 | Voltage L3 to neutralVoltage_L3_N |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3036 | 3035 | Average line to neutral voltageVoltage_LN_Avg |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3054 | 3053 | Phase 1 active powerActive_Power_L1 |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3056 | 3055 | Phase 2 active powerActive_Power_L2 |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3058 | 3057 | Phase 3 active powerActive_Power_L3 |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3060 | 3059 | Total active powerActive_Power_Total |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3068 | 3067 | Total reactive powerReactive_Power_Total |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3076 | 3075 | Total apparent powerApparent_Power_Total |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3084 | 3083 | Total power factorPower_Factor_Total · Four-quadrant encoding with values between -2 and 2; the quadrant ranges are listed in the manual. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3110 | 3109 | FrequencyFrequency |
float32 | 2 | Hz | 1 | R | Holding (FC03) |
| 3192 | 3191 | Total power factor, IEC formatPF_Total_IEC_Float · Added by the power factor firmware update; ranges from -1 to +1. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3194 | 3193 | Total power factor, lead/lag formatPF_Total_LeadLag_Float · Added by the power factor firmware update; ranges from -1 to +1. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3196 | 3195 | Total power factor, IEC format, integerPF_Total_IEC_Int · Integer encoding of the IEC power factor; see the manual for the scaling. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 3197 | 3196 | Total power factor, lead/lag format, integerPF_Total_LeadLag_Int · Integer encoding of the lead/lag power factor; see the manual for the scaling. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 4191 | 4190 | Active tariff rateActive_Tariff · 0 = multi-tariff disabled, 1 to 4 = rate A to rate D. It can only be set this way when the tariff mode is set to by communication. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 3204 | 3203 | Total active energy importTotal_Active_Energy_Import · Manual type name is Int64; the manual describes it as an unsigned 64-bit value. Cannot be reset. |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3208 | 3207 | Total active energy exportTotal_Active_Energy_Export · Cannot be reset. |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3220 | 3219 | Total reactive energy importTotal_Reactive_Energy_Import · Cannot be reset. |
uint64 | 4 | VARh | 1 | R | Holding (FC03) |
| 3224 | 3223 | Total reactive energy exportTotal_Reactive_Energy_Export · Cannot be reset. |
uint64 | 4 | VARh | 1 | R | Holding (FC03) |
| 3256 | 3255 | Partial active energy importPartial_Active_Energy_Import · Partial counter that can be reset. |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3272 | 3271 | Partial reactive energy importPartial_Reactive_Energy_Import · Partial counter that can be reset. |
uint64 | 4 | VARh | 1 | R | Holding (FC03) |
| 3518 | 3517 | Phase 1 active energy importActive_Energy_Import_L1 |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3522 | 3521 | Phase 2 active energy importActive_Energy_Import_L2 |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3526 | 3525 | Phase 3 active energy importActive_Energy_Import_L3 |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3558 | 3557 | Input metering accumulationInput_Metering_Accumulation · The manual gives the unit only as "Unit", set by the input metering configuration. |
uint64 | 4 | 1 | R | Holding (FC03) | |
| 4196 | 4195 | Rate A active energy importRate_A_Active_Energy_Import |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 4200 | 4199 | Rate B active energy importRate_B_Active_Energy_Import |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 4204 | 4203 | Rate C active energy importRate_C_Active_Energy_Import |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 4208 | 4207 | Rate D active energy importRate_D_Active_Energy_Import |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 45100 | 45099 | Total active energy import (float)Total_Active_Energy_Import_F · Revision 16 of the manual prints the unit as kWh for the float energy registers; an older revision (DOCA0005EN-12) printed Wh for the same registers. |
float32 | 2 | kWh | 1 | R | Holding (FC03) |
| 45102 | 45101 | Total active energy export (float)Total_Active_Energy_Export_F |
float32 | 2 | kWh | 1 | R | Holding (FC03) |
| 45104 | 45103 | Total reactive energy import (float)Total_Reactive_Energy_Import_F |
float32 | 2 | kVARh | 1 | R | Holding (FC03) |
| 45106 | 45105 | Total reactive energy export (float)Total_Reactive_Energy_Export_F |
float32 | 2 | kVARh | 1 | R | Holding (FC03) |
| 45108 | 45107 | Partial active energy import (float)Partial_Active_Energy_Import_F |
float32 | 2 | kWh | 1 | R | Holding (FC03) |
| 45110 | 45109 | Partial reactive energy import (float)Partial_Reactive_Energy_Import_F |
float32 | 2 | kVARh | 1 | R | Holding (FC03) |
| 45128 | 45127 | Phase 1 reactive energy import (float)Reactive_Energy_Import_L1_F · Added by the 1PH4W multi L-N update. |
float32 | 2 | kVARh | 1 | R | Holding (FC03) |
| 45130 | 45129 | Phase 2 reactive energy import (float)Reactive_Energy_Import_L2_F · Added by the 1PH4W multi L-N update. |
float32 | 2 | kVARh | 1 | R | Holding (FC03) |
| 45132 | 45131 | Phase 3 reactive energy import (float)Reactive_Energy_Import_L3_F · Added by the 1PH4W multi L-N update. |
float32 | 2 | kVARh | 1 | R | Holding (FC03) |
| 45001 | 45000 | Overload alarm setupOverload_Alarm_Setup · 0x0000 = disabled, 0x0100 = enabled. Written through the command interface (write by command). |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 45002 | 45001 | Overload alarm pickup setpointOverload_Alarm_Pickup · Written through the command interface (write by command). |
float32 | 2 | kW | 1 | RW | Holding (FC03) |
| 45005 | 45004 | Overload alarm activated statusOverload_Alarm_Active · 0x0000 = inactive, 0x0100 = active. |
bitfield16 | 1 | 1 | R | 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. The manual does not state the word order for 32-bit values. Check one known value (a voltage or a counter) and switch the setting if it reads wrong.
- 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: iEM3100 / iEM3200 / iEM3300 series user manual (productinfo.se.com)
DOCA0005EN-16, 05/2026, p. 55-56, 62-69. Read on 2026-10-24.
Also used: iEM3100 / iEM3200 / iEM3300 series online manual: Communications using Modbus (productinfo.se.com)
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 Schneider Electric
All Schneider Electric register maps