Schneider Electric PM5100 / PM5300 Modbus register map
Also covers PM5110, PM5111, PM5310, PM5320, PM5330, PM5331, PM5340, PM5341
Power meter
- Official
- 2,277 registers
- Modbus RTU
- Revision 3 · 2026-10-18
- Identity: model, serial number
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 1
- Serial
- 19200 8N1 · 19200 baud, 8 data bits, none parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 1-based · wire address = address − 1
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 2277 holding registers
- Groups
- 14
- Revision
- 3 · 2026-10-18
- Added
- ()
- File
- maps/schneider-electric/pm5100-pm5300.mbmap.json · 528 KB · history
- SHA-256
- 23a235221cb909c6094a232f4756bef74c748951c6251c6a05a0aad48898803f
- Manufacturer
- se.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Model | Meter Model | holding 50 | string[20] | |
| Serial number | Serial Number | holding 130 | uint32 ABCD |
Sources and notes
- Schneider Electric, PM5100 and PM5300 Modbus register list · version v2011_v2021_R01 spreadsheet PM51xx_PM53xx_PMC Register List_v2011_v2021_R01.xls, sheet Register List
Source: Schneider Electric, PM5100 and PM5300 Modbus register list
- Addresses are the register numbers of the register list (Modicon numbering, 1-based): the address on the wire is the register number minus 1.
- Registers marked RWC in the register list are changed through the command interface (registers 5000 and following), so they are listed as read-only.
- Values the meter cannot provide read as the N/A value of their data type (0xFFFF, 0xFFFFFFFF, 0x8000 or a float NaN).
- Power factor registers are four-quadrant values from -2 to 2, not plain power factors: 0° = 1, 90° = 0, 180° = -1, 270° = 2. Above 1, the power factor is 2 minus the value and leading; below -1 it is -2 minus the value and leading; otherwise it is the value, lagging (unity at ±1).
- Registers that exist only on some of the models say so in their description.
- Where the register list names the models PM5110_11, PM5330_31 or PM5340_41, the description shows those names.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 30 | string[20] | R | ||||
| HR | 50 | string[20] | R | ||||
| HR | 70 | string[20] | R | ||||
| HR | 90 | uint16 | R | ||||
| HR | 91 | uint64 ABCD | R | Bitmap. Range: 0x0000 – 0xFFFF. Bitmap indicating base hardware options detected Bit 01 = HMI Bit 02 = Modbus Serial Communications Port Bit 03 = Modbus Ethernet Communications Port Bit 04 = Digital Inputs Bit 05 = Digital Outputs Bit 06-16 Not Used | |||
| HR | 95 | uint64 ABCD | R | Bitmap. Range: 0x0000 – 0xFFFF | |||
| HR | 129 | uint16 | R | Manufacturing Unit ID | |||
| HR | 130 | uint32 ABCD | R | ||||
| HR | 132 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 136 | string[5] | R | ||||
| HR | 141 | uint16 | R | ||||
| HR | 142 | uint16 | R | ||||
| HR | 143 | uint16 | R | ||||
| HR | 144 | uint16 | R | ||||
| HR | 145 | uint16 | R | ||||
| HR | 146 | uint16 | R | ||||
| HR | 147 | uint16 | R | ||||
| HR | 148 | uint16 | R | ||||
| HR | 149 | uint16 | R | ||||
| HR | 150 | uint16 | R | ||||
| HR | 151 | uint16 | R | ||||
| HR | 152 | uint16 | R | ||||
| HR | 153 | uint16 | R | ||||
| HR | 154 | uint16 | R | ||||
| HR | 155 | uint16 | R | ||||
| HR | 156 | uint16 | R | ||||
| HR | 157 | uint16 | R | ||||
| HR | 158 | uint16 | R | ||||
| HR | 159 | uint16 | R | ||||
| HR | 160 | uint16 | R | ||||
| HR | 161 | uint16 | R | ||||
| HR | 1637 | uint16 | R | Range: 0 – 32,767. The firmware version takes the following form: XXYYT | |||
| HR | 1638 | uint16 | R | Range: 00 – 99 | |||
| HR | 1639 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1640 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1641 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1642 | uint16 | R | Range: 0 – 32,767. The firmware version takes the following form: XXYYT | |||
| HR | 1643 | uint16 | R | Range: 00 – 99 | |||
| HR | 1644 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1645 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1646 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1647 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1701 | uint16 | R | Range: 0 – 32,767. The firmware version takes the following form: XXYYT | |||
| HR | 1702 | uint16 | R | Range: 00 – 99 | |||
| HR | 1703 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1704 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1705 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1706 | uint16 | R | Range: 0 – 32,767 | |||
| HR | 1707 | uint16 | R | Range: 00 – 99 | |||
| HR | 1708 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1709 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1710 | uint16 | R | Range: 0000 – 9999 | |||
| HR | 1711 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1715 | uint16 | R | ||||
| HR | 1716 | uint16 | R | ||||
| HR | 1751 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1755 | uint16 | R | ||||
| HR | 1756 | uint16 | R | ||||
| HR | 1757 | uint16 | R | ||||
| HR | 1758 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1762 | uint16 | R | ||||
| HR | 1763 | uint16 | R | ||||
| HR | 1764 | uint16 | R | ||||
| HR | 1765 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1769 | uint16 | R | ||||
| HR | 1770 | uint16 | R | ||||
| HR | 1771 | uint16 | R | ||||
| HR | 1772 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1776 | uint16 | R | ||||
| HR | 1777 | uint16 | R | ||||
| HR | 1778 | uint16 | R | ||||
| HR | 1779 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1783 | uint16 | R | ||||
| HR | 1784 | uint16 | R | ||||
| HR | 1785 | uint16 | R | ||||
| HR | 1786 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1790 | uint16 | R | ||||
| HR | 1791 | uint16 | R | ||||
| HR | 1792 | uint16 | R | ||||
| HR | 1793 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1797 | uint16 | R | ||||
| HR | 1798 | uint16 | R | ||||
| HR | 1799 | uint16 | R | ||||
| HR | 1800 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1804 | uint16 | R | ||||
| HR | 1805 | uint16 | R | ||||
| HR | 1806 | uint16 | R | ||||
| HR | 1807 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1811 | uint16 | R | ||||
| HR | 1812 | uint16 | R | ||||
| HR | 1813 | uint16 | R | ||||
| HR | 1814 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1818 | uint16 | R | ||||
| HR | 1819 | uint16 | R | ||||
| HR | 1820 | uint16 | R | ||||
| HR | 1821 | uint16 | R | Range: 0 – 10 | |||
| HR | 1824 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) | |||
| HR | 1828 | uint16 | R | ||||
| HR | 1829 | uint16 | R | ||||
| HR | 1830 | uint64 ABCD | R | DATETIME, 4 registers (IEC 870-5-4: year, day/weekday/month, hour/minute, milliseconds) |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).