Schneider PM5560 Modbus Register Map and Simulator
The Schneider Electric PowerLogic PM5560 is one of the most widely deployed power meters in commercial and industrial facilities worldwide. If you are building a monitoring system, integrating power data into a SCADA platform, or developing energy management software, you need to read data from the PM5560 over Modbus. And for that, you need the register map.
This reference provides the standard Modbus register addresses for the PM5560's electrical measurements, explains how the data is encoded, and shows you how to test your integration without needing a physical meter on your desk.
Overview: Schneider PowerLogic PM5560
The PM5560 is a multi-function power meter from Schneider Electric's PowerLogic series. It provides comprehensive electrical measurements for three-phase power distribution systems: voltage, current, power (active, reactive, apparent), power factor, frequency, and energy accumulation. It is commonly found in main distribution boards, sub-distribution panels, switchgear, and generator monitoring setups across data centers, commercial buildings, hospitals, and industrial plants.
The meter communicates via Modbus RTU (RS485) or Modbus TCP (Ethernet), making it accessible from virtually any SCADA system, BMS (Building Management System), or custom monitoring application.
Communication Setup
Before reading registers, the communication parameters must match between the master and the PM5560. The default settings from the factory are:
- Modbus RTU: Baud rate 19200, 8 data bits, Even parity, 1 stop bit (8-E-1). Default slave address: 1.
- Modbus TCP: TCP port 502. Default IP address assigned via DHCP or static configuration. Unit ID (slave address): typically 1.
The PM5560 supports function codes 0x03 (Read Holding Registers) and 0x10 (Write Multiple Registers) for configuration. Most monitoring applications only need function code 0x03 to read the measurement registers.
PM5560 Register Map: Electrical Measurements
The following table covers the most commonly accessed measurement registers. All floating-point values use 32-bit IEEE 754 encoding, occupying two consecutive 16-bit registers. The base address listed is the first register of the pair.
For a complete read of all standard electrical measurements, read from address 2999 with a quantity of approximately 40 registers (covering through frequency). Energy registers are further down the map starting at 3131.
IEEE 754 Encoding: How 32-Bit Floats Are Stored in Registers
Understanding the register encoding is essential for correctly interpreting PM5560 data. Modbus uses 16-bit registers, but the PM5560 stores most measurement values as 32-bit IEEE 754 floating-point numbers. This means each measurement occupies two consecutive registers. For a general explanation of how Modbus register types, addressing, and data encoding work, see our Modbus register types guide.
Here is how a value like 230.5V is stored:
- The float value
230.5is encoded as a 32-bit IEEE 754 value:0x43668000in hexadecimal. - Split into two 16-bit registers: The 32-bit value is split into high and low words:
0x4366(high word) and0x8000(low word). - Stored in consecutive registers: If the address is 2999, then register 2999 holds
0x4366and register 3000 holds0x8000.
The byte order (endianness) matters. The PM5560 uses big-endian byte order (also called "Modbus standard" or "CDAB" swap depending on terminology). Most Modbus libraries handle this automatically when you specify float32 data type, but if you are manually decoding registers, be aware of the byte ordering.
A quick verification: if you read registers 2999 and 3000 and get 0x4366 and 0x8000, combining them as 0x43668000 and interpreting as IEEE 754 float gives you 230.5. If you get nonsense values, the byte order is probably swapped.
0x03 (Read Holding Registers), always read an even number of registers to get complete float pairs. Reading an odd number will leave you with half a float value.
Testing Without Hardware: PM5560 Simulator
Developing a PM5560 integration without a physical meter is a common scenario. You might be building the monitoring software in your office while the meters are being installed on site, or you might be a software developer who does not have access to electrical panels. In either case, you need a way to test your Modbus reads.
Options for testing without hardware:
- Manual register simulation: Use a generic Modbus slave simulator, manually set registers 2999-3034 and 3131-3142 to float values. This requires you to manually encode IEEE 754 floats into register pairs. Tedious and error-prone.
- MacTools PM5560 template: Select the PM5560 device template in MacTools Modbus Tools. The simulator automatically populates all measurement registers at the correct addresses with realistic values that auto-drift over time. Voltage stays near 230V with small fluctuations. Current varies based on a configurable load factor. Energy accumulates realistically. Your monitoring software connects to
localhost:502and reads data exactly as it would from a physical meter.
The template approach saves hours of manual register configuration and produces data that exercises your software the same way a real meter would. You can test your voltage alarms, current thresholds, energy calculations, and power factor monitoring logic before ever connecting to a physical device.
Quick Start: Reading PM5560 Data
To get started reading PM5560 measurements:
- Start the PM5560 simulator. In MacTools Modbus Tools, select the PM5560 template and click Start. The simulator listens on port 502 by default.
- Connect your master. Use MacTools Modbus Poll, a Python script with
pymodbus, or your own application. Connect tolocalhost:502, slave address 1. - Read holding registers. Send a Read Holding Registers request (function code 0x03) starting at address 2999 for 40 registers to get all standard measurements.
- Decode the floats. Parse each pair of registers as a 32-bit IEEE 754 float in big-endian byte order.
If you are reading from a physical PM5560 instead of the simulator, the process is identical. Just change the connection target from localhost to the meter's IP address (for Modbus TCP) or connect to its RS485 serial port (for Modbus RTU).
Frequently Asked Questions
What is the default Modbus address for the Schneider PM5560?
The default Modbus RTU slave address for the PM5560 is 1. For Modbus TCP, the default port is 502 with a Unit ID (slave address) of typically 1. The default RTU serial settings are 19200 baud, 8 data bits, Even parity, 1 stop bit (8-E-1).
How do you read voltage from a PM5560 over Modbus?
Send a Read Holding Registers request (function code 0x03) starting at address 2999 for approximately 40 registers. Phase A voltage L-N is at register 2999, Phase B at 3001, Phase C at 3003. Each voltage value is a 32-bit IEEE 754 float occupying two consecutive 16-bit registers. Always read an even number of registers to get complete float pairs.
What function code does the PM5560 use?
The PM5560 supports function code 0x03 (Read Holding Registers) for reading measurement data and function code 0x10 (Write Multiple Registers) for configuration. Most monitoring applications only need function code 0x03 since all electrical measurements (voltage, current, power, power factor, frequency, and energy) are stored as holding registers starting at address 2999.
Can you test PM5560 Modbus integration without a physical meter?
Yes. MacTools Modbus Poll includes a PM5560 device template that simulates the meter with realistic auto-drifting values at the correct register addresses. Start the simulator on your Mac, connect your monitoring software to localhost:502 with slave address 1, and read holding registers starting at 2999. The simulated values behave like a real meter — voltage drifts near 230V, current varies with load, and energy accumulates over time.
Try the PM5560 Simulator
MacTools Modbus Poll includes a PM5560 power meter simulator with realistic auto-drifting values. Native macOS app. $9.99 one-time.
Get MacTools Modbus PollRelated: Full SCADA System
Need continuous monitoring with dashboards, alarms, and trending across all your devices? Voltrus SCADA supports Modbus, OPC-UA, Siemens S7, Allen-Bradley, DNP3, BACnet, MQTT, and more. Lifetime license from $249.