ABB M4M 20 / M4M 30 Modbus register map
Also covers M4M 20 Bacnet, M4M 20 Ethernet, M4M 20 I/O, M4M 20 Modbus, M4M 20 Profibus, M4M 20 Rogowski, M4M 20-M ETH, M4M 20-M RTU, M4M 2X ETH, M4M 2X ETH PQ1, M4M 2X ETH PQ1+R, M4M 2X ETH PQ2, M4M 2X ETH PQ2+R, M4M 2X ETH RTS, M4M 2X RTU, M4M 2X RTU PQ1, M4M 2X RTU PQ1+R, M4M 2X RTU PQ2, M4M 2X RTU PQ2+R, M4M 2X RTU RTS, M4M 30 Bacnet, M4M 30 Ethernet, M4M 30 I/O, M4M 30 Modbus, M4M 30 Profibus, M4M 30 Rogowski, M4M 30-M ETH, M4M 30-M RTU, M4M 32 Ethernet, M4M 32 Modbus RTU
M4M network analyzers (M4M 20, M4M 30, M4M 32, M4M 2X), Modbus RTU and Modbus TCP
- Official
- 984 registers
- Modbus TCP and RTU
- Revision 3 · 2026-10-17
- Identity: model, firmware, 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 TCP and RTU
- Unit ID
- 1
- TCP port
- 502
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit defaults
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 984 holding registers
- Groups
- 22
- Translation tables
- 1
- Revision
- 3 · 2026-10-17
- Added
- ()
- File
- maps/abb/m4m.mbmap.json · 188 KB · history
- SHA-256
- 15f4f0766601d3764e96381846c8b2a2755c3b17c4d34a557b80dd4dd6264750
- Manufacturer
- abb.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 |
|---|---|---|---|---|
| Serial number | Serial number | holding 35072 | string[5] | |
| Firmware | Firmware version | holding 35080 | string[8] | |
| Model | Product type | holding 35088 | uint16 | 1 = M4M 20 Modbus, 2 = M4M 20 Ethernet, 3 = M4M 20 Bacnet, +27 more |
Sources and notes
- Modbus protocol map for M4M network analyzers · version v.1.3G, 9AKK107492A7627 Mapping Table and Details sheets
- M4M Network analyzers Modbus manual · version 2CSG445050D0201 [V.1.05]
Source: ABB, "Modbus protocol map for M4M network analyzers" v.1.3G (9AKK107492A7627) and "M4M Network analyzers Modbus manual" 2CSG445050D0201 [V.1.05]
- ABB M4M 20, M4M 30, M4M 32 and M4M 2X network analyzers; the product column of each register says which models have it.
- Addresses are as sent on the bus. FC03 reads, FC16 writes. Multi-register values are big endian, high word first.
- Quantities a model does not have read as "invalid": all FFFF for unsigned, the largest positive value for signed.
- Logs, energy snapshots, load profile and max/min demand are read through request headers and data blocks; the indexed configuration tables (I/O, alarms, tariff programs, historicals) are set per channel. Both are described in the manual and left out here.
- The powers without decimals (from 0xCB1A) need firmware P1.3.10.0 or newer, as does the M2M-compatible table from 0x1000 (not in this map).
- Settings that belong together (CT and VT ratios, RTU settings, date and time) are written in one request.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 20480 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20484 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20488 | int64 ABCD | R | kWh | ×0.01 | ||
| HR | 20492 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20496 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20500 | int64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20504 | uint64 ABCD | R | kVAh | ×0.01 | ||
| HR | 20508 | uint64 ABCD | R | kVAh | ×0.01 | ||
| HR | 20512 | int64 ABCD | R | kVAh | ×0.01 | ||
| HR | 20516 | uint64 ABCD | R | kg | ×0.001 | Uses the CO2 conversion factor at 0x8CE0 | |
| HR | 20532 | uint64 ABCD | R | ×0.001 | Uses the currency conversion factor at 0x8CE2 | ||
| HR | 20848 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20852 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20856 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20860 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20864 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20868 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20880 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20884 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20888 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20892 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20896 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20900 | uint64 ABCD | R | kWh | ×0.01 | M4M 30 | |
| HR | 20912 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20916 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20920 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20924 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20928 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20932 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20944 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20948 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20952 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20956 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20960 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 20964 | uint64 ABCD | R | kvarh | ×0.01 | M4M 30 | |
| HR | 21600 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 21604 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 21608 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 21612 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 21616 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 21620 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 21624 | int64 ABCD | R | kWh | ×0.01 | ||
| HR | 21628 | int64 ABCD | R | kWh | ×0.01 | ||
| HR | 21632 | int64 ABCD | R | kWh | ×0.01 | ||
| HR | 21636 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21640 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21644 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21648 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21652 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21656 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21660 | int64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21664 | int64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21668 | int64 ABCD | R | kvarh | ×0.01 | ||
| HR | 21672 | uint64 ABCD | R | kVAh | ×0.01 | ||
| HR | 21676 | uint64 ABCD | R | kVAh | ×0.01 | ||
| HR | 21680 | uint64 ABCD | R | kVAh | ×0.01 | ||
| HR | 21684 | uint64 ABCD | R | kVAh | ×0.01 | ||
| HR | 21688 | uint64 ABCD | R | kVAh | ×0.01 | ||
| HR | 21692 | uint64 ABCD | R | kVAh | ×0.01 | ||
| HR | 21696 | int64 ABCD | R | kVAh | ×0.01 | ||
| HR | 21700 | int64 ABCD | R | kVAh | ×0.01 | ||
| HR | 21704 | int64 ABCD | R | kVAh | ×0.01 | ||
| HR | 23296 | uint32 ABCD | R | V | ×0.1 | ||
| HR | 23298 | uint32 ABCD | R | V | ×0.1 | ||
| HR | 23300 | uint32 ABCD | R | V | ×0.1 | ||
| HR | 23302 | uint32 ABCD | R | V | ×0.1 | ||
| HR | 23304 | uint32 ABCD | R | V | ×0.1 | ||
| HR | 23306 | uint32 ABCD | R | V | ×0.1 | ||
| HR | 23308 | uint32 ABCD | R | V | ×0.1 | ||
| HR | 23310 | uint32 ABCD | R | A | ×0.01 | ||
| HR | 23312 | uint32 ABCD | R | A | ×0.01 | ||
| HR | 23314 | uint32 ABCD | R | A | ×0.01 | ||
| HR | 23316 | uint32 ABCD | R | A | ×0.01 | ||
| HR | 23318 | uint32 ABCD | R | A | ×0.01 | ||
| HR | 23322 | int32 ABCD | R | W | ×0.01 | ||
| HR | 23324 | int32 ABCD | R | W | ×0.01 | ||
| HR | 23326 | int32 ABCD | R | W | ×0.01 | ||
| HR | 23328 | int32 ABCD | R | W | ×0.01 | ||
| HR | 23330 | int32 ABCD | R | var | ×0.01 | ||
| HR | 23332 | int32 ABCD | R | var | ×0.01 | ||
| HR | 23334 | int32 ABCD | R | var | ×0.01 | ||
| HR | 23336 | int32 ABCD | R | var | ×0.01 | ||
| HR | 23338 | int32 ABCD | R | VA | ×0.01 | ||
| HR | 23340 | int32 ABCD | R | VA | ×0.01 | ||
| HR | 23342 | int32 ABCD | R | VA | ×0.01 | ||
| HR | 23344 | int32 ABCD | R | VA | ×0.01 | ||
| HR | 23346 | uint16 | R | Hz | ×0.01 | ||
| HR | 23347 | int16 | R | ° | ×0.1 | ||
| HR | 23348 | int16 | R | ° | ×0.1 | ||
| HR | 23349 | int16 | R | ° | ×0.1 | ||
| HR | 23350 | int16 | R | ° | ×0.1 | ||
| HR | 23351 | int16 | R | ° | ×0.1 | ||
| HR | 23352 | int16 | R | ° | ×0.1 | ||
| HR | 23353 | int16 | R | ° | ×0.1 | ||
| HR | 23357 | int16 | R | ° | ×0.1 | ||
| HR | 23358 | int16 | R | ° | ×0.1 | ||
| HR | 23359 | int16 | R | ° | ×0.1 | ||
| HR | 23360 | int16 | R | ×0.001 | |||
| HR | 23361 | int16 | R | ×0.001 | |||
| HR | 23362 | int16 | R | ×0.001 |
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).