Schneider Electric PM5560 Modbus register map
Front panel mounted power and energy meter in a 96 x 96 mm case, with four digital inputs, two digital outputs, dual Ethernet ports and a serial port. It reports current, voltage, power, power factor, frequency, harmonic distortion, demand and energy, and works as a Modbus TCP to Modbus RTU gateway.
Want to test without the device? Modbus Poll can simulate this meter: PM5560 simulator template.
- Protocol
- Modbus TCP and Modbus RTU
- Defaults
- Serial port: the register list gives factory values of protocol Modbus, address 1, 19200 baud and even parity (registers 6500 to 6503); valid Modbus addresses are 1 to 247.
- 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
- 82
- Checked against
- PM556x_PublicModbusRegisterList_10th_August-23.xlsx; revision sheet lists versions up to 1.4 (PM5560 firmware 4.1.8)
Address base. Schneider's PM5500 register list does not state whether its register numbers are one-based or zero-based, and neither does the PM5500 user manual. Schneider's PM3200 user manual (DOCA0006EN-09, p. 50) and iEM3000 manual (DOCA0005EN-16, p. 56) both say register = address + 1, and the PM5500 list uses the same numbering style (3000 for the first current, 3204 for the first energy counter), so one-based is assumed here: wire address = printed number minus 1. Confirm on the meter by reading printed register 3000 (wire address 2999) as a float32 and checking it is a sensible current value; if it is not, shift every address by one. For example 30 in the manual (Meter name) is address 29 on the wire.
Word order. The register list does not state the word order for 32-bit and 64-bit values. Schneider FAQ FA237865 gives two examples for the 64-bit energy registers that disagree with each other (one treats the first register as the low half, the other as the highest word), so check against the meter before relying on either.
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 · Written only through the setup command interface (C in the list's Access column). |
string | 20 | 1 | RW | Holding (FC03) | |
| 50 | 49 | Meter modelMeter_Model · Written only through the setup command interface (C in the list's Access column). |
string | 20 | 1 | RW | Holding (FC03) | |
| 70 | 69 | Manufacturer nameManufacturer · Written only through the setup command interface (C in the list's Access column). |
string | 20 | 1 | RW | Holding (FC03) | |
| 90 | 89 | Product ID numberProduct_ID · Model code; the list gives 15235 for PM5560. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | 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 as XXYYT in the list's DLF format. |
uint16 | 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 · Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 2015 | 2014 | Number of wiresNumber_Of_Wires · Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 2016 | 2015 | Power system configurationPower_System_Config · Enumeration from 0 to 13, factory value 11; the list names the wiring for each value. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 2017 | 2016 | Nominal frequencyNominal_Frequency · Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | Hz | 1 | RW | Holding (FC03) |
| 2018 | 2017 | Nominal voltageNominal_Voltage · Written only through the setup command interface (C in the list's Access column). |
float32 | 2 | V | 1 | RW | Holding (FC03) |
| 2026 | 2025 | VT primary voltageVT_Primary · Written only through the setup command interface (C in the list's Access column). |
float32 | 2 | V | 1 | RW | Holding (FC03) |
| 2028 | 2027 | VT secondary voltageVT_Secondary · Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | V | 1 | RW | Holding (FC03) |
| 2030 | 2029 | CT primary currentCT_Primary · Range 1 to 32767 in the list; the unit column is blank. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | A | 1 | RW | Holding (FC03) |
| 3000 | 2999 | Phase A currentCurrent_A |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3002 | 3001 | Phase B currentCurrent_B |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3004 | 3003 | Phase C currentCurrent_C |
float32 | 2 | A | 1 | R | Holding (FC03) |
| 3006 | 3005 | Neutral currentCurrent_N |
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 A to BVoltage_AB |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3022 | 3021 | Voltage B to CVoltage_BC |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3024 | 3023 | Voltage C to AVoltage_CA |
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 A to neutralVoltage_AN |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3030 | 3029 | Voltage B to neutralVoltage_BN |
float32 | 2 | V | 1 | R | Holding (FC03) |
| 3032 | 3031 | Voltage C to neutralVoltage_CN |
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 A active powerActive_Power_A |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3056 | 3055 | Phase B active powerActive_Power_B |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3058 | 3057 | Phase C active powerActive_Power_C |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3060 | 3059 | Total active powerActive_Power_Total |
float32 | 2 | kW | 1 | R | Holding (FC03) |
| 3062 | 3061 | Phase A reactive powerReactive_Power_A |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3064 | 3063 | Phase B reactive powerReactive_Power_B |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3066 | 3065 | Phase C reactive powerReactive_Power_C |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3068 | 3067 | Total reactive powerReactive_Power_Total |
float32 | 2 | kVAR | 1 | R | Holding (FC03) |
| 3070 | 3069 | Phase A apparent powerApparent_Power_A |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3072 | 3071 | Phase B apparent powerApparent_Power_B |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3074 | 3073 | Phase C apparent powerApparent_Power_C |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3076 | 3075 | Total apparent powerApparent_Power_Total |
float32 | 2 | kVA | 1 | R | Holding (FC03) |
| 3078 | 3077 | Phase A power factorPower_Factor_A · Four-quadrant power factor encoding with values between -2 and 2; the Data Types sheet gives the decode steps. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3080 | 3079 | Phase B power factorPower_Factor_B · Four-quadrant power factor encoding with values between -2 and 2; the Data Types sheet gives the decode steps. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3082 | 3081 | Phase C power factorPower_Factor_C · Four-quadrant power factor encoding with values between -2 and 2; the Data Types sheet gives the decode steps. |
float32 | 2 | 1 | R | Holding (FC03) | |
| 3084 | 3083 | Total power factorPower_Factor_Total · Four-quadrant power factor encoding with values between -2 and 2; the Data Types sheet gives the decode steps. |
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) |
| 21300 | 21299 | Phase A current THDTHD_Current_A |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 21302 | 21301 | Phase B current THDTHD_Current_B |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 21304 | 21303 | Phase C current THDTHD_Current_C |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 21328 | 21327 | Line to line voltage THDTHD_Voltage_LL |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 21338 | 21337 | Line to neutral voltage THDTHD_Voltage_LN |
float32 | 2 | % | 1 | R | Holding (FC03) |
| 2700 | 2699 | Active energy delivered (float)Active_Energy_Delivered_F · Float32 copy of the 64-bit energy counter. |
float32 | 2 | kWh | 1 | R | Holding (FC03) |
| 2702 | 2701 | Active energy received (float)Active_Energy_Received_F · Float32 copy of the 64-bit energy counter. |
float32 | 2 | kWh | 1 | R | Holding (FC03) |
| 3204 | 3203 | Active energy delivered (into load)Active_Energy_Delivered · The Data Types sheet lists INT64 as a signed 64-bit integer. |
int64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3208 | 3207 | Active energy received (out of load)Active_Energy_Received |
int64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3212 | 3211 | Active energy delivered plus receivedActive_Energy_Total |
int64 | 4 | Wh | 1 | R | Holding (FC03) |
| 3220 | 3219 | Reactive energy deliveredReactive_Energy_Delivered |
int64 | 4 | VARh | 1 | R | Holding (FC03) |
| 3224 | 3223 | Reactive energy receivedReactive_Energy_Received |
int64 | 4 | VARh | 1 | R | Holding (FC03) |
| 3236 | 3235 | Apparent energy deliveredApparent_Energy_Delivered |
int64 | 4 | VAh | 1 | R | Holding (FC03) |
| 3240 | 3239 | Apparent energy receivedApparent_Energy_Received |
int64 | 4 | VAh | 1 | R | Holding (FC03) |
| 4190 | 4189 | Time of use / multi-tariff modeTariff_Mode · Range 0 to 2. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 4191 | 4190 | Active tariff rateTariff_Active_Rate · Range 0 to 8. |
uint16 | 1 | 1 | R | 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) |
| 6500 | 6499 | RS-485 protocolRS485_Protocol · 0 = Modbus, 1 = Jbus, 2 = Modbus ASCII 8-bit, 3 = Modbus ASCII 7-bit; factory value 0. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 6501 | 6500 | RS-485 addressRS485_Address · Valid Modbus addresses 1 to 247; factory value 1. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 6502 | 6501 | RS-485 baud rate codeRS485_Baud_Rate · 0 = 9600, 1 = 19200 (factory value), 2 = 38400. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 6503 | 6502 | RS-485 parity codeRS485_Parity · 0 = even (factory value), 1 = odd, 2 = none. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 7274 | 7273 | Digital input 1 control modeDI1_Control_Mode · 0 = normal (alarm), 1 = demand interval sync pulse, 2 = multi-tariff control, 3 = input metering, 4 = conditional energy control, 5 = incremental energy reset. Written only through the setup command interface (C in the list's Access column). |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 8905 | 8904 | Digital input status, base unitDI_Status · One bit per digital input. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 9667 | 9666 | Digital output status, base unitDO_Status · Range 0x0000 to 0x000F. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 9673 | 9672 | Digital output 1 control mode statusDO1_Control_Mode_Status · 0 = external, 1 = demand sync, 2 = alarm, 3 = energy. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 5000 | 4999 | Requested command numberCommand_Requested · Range 1 to 32767. Schneider FAQ FA241856 describes the sequence: read the semaphore at 5680, then write the command number to 5000, the semaphore to 5001 and parameters from 5002. |
uint16 | 1 | 1 | RW | Holding (FC03) | |
| 5680 | 5679 | Command semaphoreCommand_Semaphore · Read once to get the semaphore value used with commands; see the FAQ named at register 5000. |
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. 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: PM556x Public Modbus Register List (PM5560, PM5561, PM5563 and related models) (se.my.site.com)
PM556x_PublicModbusRegisterList_10th_August-23.xlsx; revision sheet lists versions up to 1.4 (PM5560 firmware 4.1.8), Register List sheet, PM5560 column; Data Types and References sheets. Read on 2026-10-24.
Also used: Schneider FAQ FA234017: PowerLogic PM5000 series Modbus register list (download page for the xlsx) (www.se.com)
Also used: PowerLogic PM5500 / PM5600 / PM5700 series user manual HRB1684301-18 (productinfo.se.com)
Also used: Schneider FAQ FA241856: sending commands to PM5000 over Modbus (www.se.com)
Also used: Schneider FAQ FA237865: 64-bit energy in PM5000 series (www.se.com)
Also used: PM3200 series user manual DOCA0006EN-09 (states register = address + 1) (productinfo.se.com)
Also used: iEM3100 / iEM3200 / iEM3300 series user manual DOCA0005EN-16 (states register = address + 1) (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.
Read more: Schneider PM5560 Modbus register map and simulator
More from Schneider Electric
All Schneider Electric register maps