SATEC PM130 PLUS Modbus register map
Also covers PM130A, PM130P, PM130E, PM130EH
Three-phase powermeter series. Live values, demands, energy, status and the main setup registers, read as 32-bit integers.
- Official
- 243 registers
- Revision 1 · 2026-11-10
- Identity: firmware
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 TCP and RTUdefault
- Unit ID
- 1default
- TCP port
- 502default
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit defaults
- Byte / word order
- ABCD · bytes big-endian, words high first default
- Addresses
- 0-baseddefault
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 243 holding registers
- Groups
- 19
- Translation tables
- 7
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/satec/pm130-plus.mbmap.json · 45 KB · history
- SHA-256
- ede78b689cb2c253f1428075839dffa64e6bb5f931ad1f0863284810684307ef
- Manufacturer
- www.satec-global.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 |
|---|---|---|---|---|
| Firmware | Firmware version | holding 2565 | uint16 |
Sources and notes
- Series PM130 PLUS Powermeters PM130P/PM130E/PM130EH, Modbus Communications Protocol Reference Guide · version BG0427 Rev. A10, 2022-03
- Registers are numbered from 0 as in the guide (add 40001 for a 5-digit 4XXXX address). Function 03 and 04 read the same registers.
- 32-bit values use two registers with the low-order word first (word_order little). They are read here in the default 32-bit integer format. Register 246 can switch analog values, counters and energy to IEEE float32; with that setting the integer registers of this map decode wrongly.
- Units of the 32-bit values depend on the device resolution option (register 2390). Low resolution (default) is assumed: 1 V, 1 A and 1 kW/kvar/kVA, in primary units (PT and CT ratios applied). High resolution gives 0.1 V (PT ratio 1) or 1 V, 0.01 A, and 1 W/var/VA (PT ratio 1) or 1 kW/kvar/kVA.
- Energy registers (14720 onward), demands, summary/TOU registers and phase energies exist only in PM130E and PM130EH. Total harmonic values (THD, K-factor, TDD) are only in PM130EH. Harmonics, PF, frequency and reactive values do not apply to DC devices.
- In 3-wire connection schemes the per-phase current unbalance, power factor, active power and reactive power read zero; only the totals are meaningful.
- The 16-bit scaled registers (256-308 and 6656 onward), the harmonic spectra, min/max logs with timestamps, data logs and file transfer, TOU and IEC 60870/DNP setup are not included.
- Total PF lag and lead (offsets 8-12 of the 1-second total block) are printed as UINT16 in a 32-bit block and are left out. The instrument options bitmap (2566-2567) is split into the low-word flags and the I/O counts.
- The Device Identification block (serial number, model ID and name, device firmware version) is printed at address 46111 with offsets +0 to +31, which collides with the Factory Device Settings block that starts at 46112. It is left out; use the firmware version at 2565. Network IP addresses are left out because their word order is not stated.
- Setup registers are best written together in a single request, or after zeroing the setup (guide, section 1). When password protection is enabled, write the password to register 2575 first.
- Not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 240 | uint16 | R | Modbus conversion scale, low end of the 16-bit scaled range | |||
| HR | 241 | uint16 | R | Modbus conversion scale, high end of the 16-bit scaled range | |||
| HR | 2563 | uint16 | R | 1-99 | |||
| HR | 2565 | uint16 | R | ×0.01 | Printed range 1100-1199: two high digits major, two low digits minor (1100 reads as 11.00) | ||
| HR | 2566 | uint16 | R | Format F28, bits 0-15 of the 32-bit value at 2566-2567 | |||
| HR | 2566 | bool bit 0 | R | ||||
| HR | 2566 | bool bit 1 | R | ||||
| HR | 2566 | bool bit 6 | R | ||||
| HR | 2566 | bool bit 7 | R | ||||
| HR | 2566 | bool bit 8 | R | ||||
| HR | 2566 | bool bit 9 | R | ||||
| HR | 2566 | bool bit 10 | R | ||||
| HR | 2566 | bool bit 12 | R | ||||
| HR | 2567 | uint16 bits 0–2 | R | +1 | Bits 16-18 of the 32-bit instrument options: number of RO minus 1 | ||
| HR | 2567 | uint16 bits 3–6 | R | +1 | Bits 19-22 of the 32-bit instrument options: number of DI minus 1 | ||
| HR | 2567 | uint16 bits 7–8 | R | +1 | Bits 23-24 of the 32-bit instrument options: number of AO minus 1 | ||
| HR | 3484 | uint16 | R | Current serial port number | |||
| HR | 46112 | uint16 | R | V | Factory setting: 690, or 120 (option U) | ||
| HR | 46113 | uint16 | R | % | Factory setting: 120 | ||
| HR | 46114 | uint16 | R | Relevant for devices that support AC/DC mode | |||
| HR | 46116 | uint16 | R | A | Factory setting: 1 or 5 | ||
| HR | 46117 | uint16 | R | % | Factory setting: 200 | ||
| HR | 13952 | uint32 CDAB | R | V | Line-to-neutral with wiring 4LN3, 3LN3 or 3BLN3, otherwise line-to-line | ||
| HR | 13954 | uint32 CDAB | R | V | Line-to-neutral with wiring 4LN3, 3LN3 or 3BLN3, otherwise line-to-line | ||
| HR | 13956 | uint32 CDAB | R | V | Line-to-neutral with wiring 4LN3, 3LN3 or 3BLN3, otherwise line-to-line | ||
| HR | 13958 | uint32 CDAB | R | A | |||
| HR | 13960 | uint32 CDAB | R | A | |||
| HR | 13962 | uint32 CDAB | R | A | |||
| HR | 13964 | int32 CDAB | R | kW | |||
| HR | 13966 | int32 CDAB | R | kW | |||
| HR | 13968 | int32 CDAB | R | kW | |||
| HR | 13970 | int32 CDAB | R | kvar | |||
| HR | 13972 | int32 CDAB | R | kvar | |||
| HR | 13974 | int32 CDAB | R | kvar | |||
| HR | 13976 | uint32 CDAB | R | kVA | |||
| HR | 13978 | uint32 CDAB | R | kVA | |||
| HR | 13980 | uint32 CDAB | R | kVA | |||
| HR | 13982 | int32 CDAB | R | ×0.001 | |||
| HR | 13984 | int32 CDAB | R | ×0.001 | |||
| HR | 13986 | int32 CDAB | R | ×0.001 | |||
| HR | 13988 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 13990 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 13992 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 13994 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 13996 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 13998 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 14000 | uint32 CDAB | R | ×0.1 | 3-second value. PM130EH only | ||
| HR | 14002 | uint32 CDAB | R | ×0.1 | 3-second value. PM130EH only | ||
| HR | 14004 | uint32 CDAB | R | ×0.1 | 3-second value. PM130EH only | ||
| HR | 14006 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 14008 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 14010 | uint32 CDAB | R | % | ×0.1 | 3-second value. PM130EH only | |
| HR | 14012 | uint32 CDAB | R | V | |||
| HR | 14014 | uint32 CDAB | R | V | |||
| HR | 14016 | uint32 CDAB | R | V | |||
| HR | 14336 | int32 CDAB | R | kW | |||
| HR | 14338 | int32 CDAB | R | kvar | |||
| HR | 14340 | uint32 CDAB | R | kVA | |||
| HR | 14342 | int32 CDAB | R | ×0.001 | |||
| HR | 14348 | uint32 CDAB | R | kW | |||
| HR | 14350 | uint32 CDAB | R | kW | |||
| HR | 14352 | uint32 CDAB | R | kvar | |||
| HR | 14354 | uint32 CDAB | R | kvar | |||
| HR | 14356 | uint32 CDAB | R | V | Line-to-neutral with wiring 4LN3, 3LN3 or 3BLN3, otherwise line-to-line | ||
| HR | 14358 | uint32 CDAB | R | V | |||
| HR | 14360 | uint32 CDAB | R | A | |||
| HR | 14466 | uint32 CDAB | R | A | |||
| HR | 14468 | uint32 CDAB | R | Hz | ×0.01 | ||
| HR | 14470 | uint32 CDAB | R | % | |||
| HR | 14472 | uint32 CDAB | R | % | |||
| HR | 14474 | uint32 CDAB | R | Hz | ×0.001 | Available in newer firmware (revision A8 of the guide) | |
| HR | 11904 | uint32 CDAB | R | ||||
| HR | 14592 | uint32 CDAB | R | V | |||
| HR | 14594 | uint32 CDAB | R | V | |||
| HR | 14596 | uint32 CDAB | R | V | |||
| HR | 14598 | uint32 CDAB | R | A | |||
| HR | 14600 | uint32 CDAB | R | A | |||
| HR | 14602 | uint32 CDAB | R | A | |||
| HR | 14604 | uint32 CDAB | R | kW | |||
| HR | 14606 | uint32 CDAB | R | kvar | |||
| HR | 14608 | uint32 CDAB | R | kVA | |||
| HR | 14610 | uint32 CDAB | R | kW | |||
| HR | 14612 | uint32 CDAB | R | kvar | |||
| HR | 14614 | uint32 CDAB | R | kVA | |||
| HR | 14622 | uint32 CDAB | R | kW | |||
| HR | 14624 | uint32 CDAB | R | kvar | |||
| HR | 14626 | uint32 CDAB | R | kVA | |||
| HR | 14636 | uint32 CDAB | R | kW | |||
| HR | 14638 | uint32 CDAB | R | kvar | |||
| HR | 14640 | uint32 CDAB | R | kW | |||
| HR | 14642 | uint32 CDAB | R | kvar | |||
| HR | 14660 | uint32 CDAB | R | A | |||
| HR | 18816 | uint32 CDAB | R | V | |||
| HR | 18818 | uint32 CDAB | R | V | |||
| HR | 18820 | uint32 CDAB | R | V | |||
| HR | 18822 | uint32 CDAB | R | A | |||
| HR | 18824 | uint32 CDAB | R | A | |||
| HR | 18826 | uint32 CDAB | R | A | |||
| HR | 18834 | uint32 CDAB | R | kW | |||
| HR | 18836 | uint32 CDAB | R | kvar |
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).