Schneider Electric PM3255 Modbus register map
DIN-rail power and energy meter that measures through 1 A or 5 A current transformers and can also be connected through voltage transformers. It reports current, voltage, power, power factor, frequency, harmonic distortion, demand and four-quadrant energy, and adds two digital inputs, two digital outputs and an RS-485 Modbus RTU port.
- Protocol
- Modbus RTU
- Defaults
- RS-485 Modbus RTU (p. 49). Baud rate 9600, 19200 or 38400 (register 6502 codes), parity odd, even or none, one stop bit, address 1 to 247. Supported functions: 03 read holding registers, 16 write multiple registers, 43/14 read device identification, 20 read file record.
- 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
- 88
- Checked against
- DOCA0006EN-09, 07/2026
Address base. The manual's table format description (p. 50) says the Address column is the value used 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) | |
| 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 active energy pulseActive_Pulse_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 | Active energy pulse frequencyActive_Pulse_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. Written through the command interface (write by command). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 7274 | 7273 | Digital input 1 control modeDI1_Control_Mode · 0 = normal input status, 2 = multi-tariff control, 3 = input metering, 5 = energy reset. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 9673 | 9672 | Digital output 1 control mode statusDO1_Control_Mode · 2 = alarm, 3 = energy, 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) |
| 3006 | 3005 | Neutral currentCurrent_In |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3010 | 3009 | Average currentCurrent_Avg |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3018 | 3017 | Worst current unbalanceCurrent_Unbalance_Worst |
float32 | 2 | % | 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) |
| 3044 | 3043 | Worst line to line voltage unbalanceVoltage_Unbalance_LL_Worst |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 3052 | 3051 | Worst line to neutral voltage unbalanceVoltage_Unbalance_LN_Worst |
float32 | 2 | % | 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) |
| 3062 | 3061 | Phase 1 reactive powerReactive_Power_L1 |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3064 | 3063 | Phase 2 reactive powerReactive_Power_L2 |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3066 | 3065 | Phase 3 reactive powerReactive_Power_L3 |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3068 | 3067 | Total reactive powerReactive_Power_Total |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3070 | 3069 | Phase 1 apparent powerApparent_Power_L1 |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3072 | 3071 | Phase 2 apparent powerApparent_Power_L2 |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3074 | 3073 | Phase 3 apparent powerApparent_Power_L3 |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3076 | 3075 | Total apparent powerApparent_Power_Total |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3078 | 3077 | Phase 1 power factorPower_Factor_L1 · Listed in the manual as complex format. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3080 | 3079 | Phase 2 power factorPower_Factor_L2 · Listed in the manual as complex format. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3082 | 3081 | Phase 3 power factorPower_Factor_L3 · Listed in the manual as complex format. |
float32 | 2 | 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) | |
| 3108 | 3107 | Total tangent phi (reactive factor)Tangent_Phi_Total |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3110 | 3109 | FrequencyFrequency |
float32 | 2 | Hz | 1 | R | Holding (FC03) |
| 3132 | 3131 | Meter temperatureTemperature |
float32 | 2 | °C | 1 | R | Holding (FC03) |
| 45100 | 45099 | Current THD phase 1THD_Current_I1 |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 45102 | 45101 | Current THD phase 2THD_Current_I2 |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 45104 | 45103 | Current THD phase 3THD_Current_I3 |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 45116 | 45115 | Average line to line voltage THDTHD_Voltage_LL_Avg |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 45126 | 45125 | Average line to neutral voltage THDTHD_Voltage_LN_Avg |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 4191 | 4190 | Active tariff rateActive_Tariff · 0 = multi-tariff disabled, 1 to 4 = rate 1 to rate 4. Only modifiable when the communication control mode is enabled. Written through the command interface (write by command). |
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. |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3208 | 3207 | Total active energy exportTotal_Active_Energy_Export |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3220 | 3219 | Total reactive energy importTotal_Reactive_Energy_Import |
uint64 | 4 | VARh | 1 | R | Holding (FC03) |
| 3224 | 3223 | Total reactive energy exportTotal_Reactive_Energy_Export |
uint64 | 4 | VARh | 1 | R | Holding (FC03) |
| 3236 | 3235 | Total apparent energy importTotal_Apparent_Energy_Import |
uint64 | 4 | VAh | 1 | R | Holding (FC03) |
| 3240 | 3239 | Total apparent energy exportTotal_Apparent_Energy_Export |
uint64 | 4 | VAh | 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) |
| 4196 | 4195 | Rate 1 active energy importRate1_Active_Energy_Import |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 4200 | 4199 | Rate 2 active energy importRate2_Active_Energy_Import |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 4204 | 4203 | Rate 3 active energy importRate3_Active_Energy_Import |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 4208 | 4207 | Rate 4 active energy importRate4_Active_Energy_Import |
uint64 | 4 | Wh | 1 | R | Holding (FC03) |
| 45166 | 45165 | Total active energy import (float)Total_Active_Energy_Import_F |
float32 | 2 | Wh | 1 | R | Holding (FC03) |
| 45168 | 45167 | Total active energy export (float)Total_Active_Energy_Export_F |
float32 | 2 | Wh | 1 | R | Holding (FC03) |
| 45170 | 45169 | Total reactive energy import (float)Total_Reactive_Energy_Import_F |
float32 | 2 | VARh | 1 | R | Holding (FC03) |
| 45172 | 45171 | Total reactive energy export (float)Total_Reactive_Energy_Export_F |
float32 | 2 | VARh | 1 | R | Holding (FC03) |
| 45174 | 45173 | Total apparent energy import (float)Total_Apparent_Energy_Import_F |
float32 | 2 | VAh | 1 | R | Holding (FC03) |
| 45176 | 45175 | Total apparent energy export (float)Total_Apparent_Energy_Export_F |
float32 | 2 | VAh | 1 | R | Holding (FC03) |
| 3701 | 3700 | Demand methodDemand_Method · 1 = timed interval sliding block, 2 = timed interval fixed block. Written through the command interface (write by command). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 3702 | 3701 | Demand interval durationDemand_Interval · Written through the command interface (write by command). |
uint16 | 1 | min | 1 | RW | Holding (FC03) |
| 3766 | 3765 | Active power present demandActive_Power_Demand |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3770 | 3769 | Active power peak demandActive_Power_Peak_Demand |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3782 | 3781 | Reactive power present demandReactive_Power_Demand |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3786 | 3785 | Reactive power peak demandReactive_Power_Peak_Demand |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3798 | 3797 | Apparent power present demandApparent_Power_Demand |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3802 | 3801 | Apparent power peak demandApparent_Power_Peak_Demand |
float32 | 2 | kVA | 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: PM3200 series user manual (productinfo.se.com)
DOCA0006EN-09, 07/2026, p. 49-50, 58-65, 69. 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 Schneider Electric
All Schneider Electric register maps