ABB B23 / B24 Modbus register map
Three-phase DIN rail energy meters of the EQ B-series (B23 direct connected, B24 CT connected), Modbus RTU over RS485
- Official
- 119 registers
- Modbus RTU
- Revision 3 · 2026-11-10
- Identity: 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 RTU
- Unit ID
- 1
- 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
- Max read
- 125 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 119 holding registers
- Groups
- 15
- Revision
- 3 · 2026-11-10
- Added
- ()
- File
- maps/abb/b23-b24.mbmap.json · 21 KB · history
- SHA-256
- 0c721e8b5f554b6759f86de80192eefa3b5008b0a2e694423098de5854b294d6
- 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 | uint32 ABCD | |
| Firmware | Firmware version | holding 35080 | string[8] |
Sources and notes
- B23/B24 User Manual · version 2CMC485003M0201 revision E, 2025-11-07
Source: ABB, "B23/B24 User Manual", 2CMC485003M0201 revision E (2025-11-07); https://library.abb.com/d/2CMC485003M0201
- ABB EQ meters B23 (direct, 65 A) and B24 (CT connected) with RS485, protocol set to Modbus.
- Addresses are exactly as sent on the bus. Readable range is 0x1000-0x8EFF; any block of 1-125 registers works.
- Quantities a model does not have read as "invalid": all FFFF for unsigned, the largest positive value for signed.
- Basic (steel) variants, B23/B24 1xx-xxx, only have import registers.
- The manual does not state the factory RS485 settings; check them on the meter display.
| 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 | Import minus export | |
| 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 meter's CO2 conversion factor | |
| HR | 20532 | uint64 ABCD | R | ×0.001 | Uses the currency conversion factor at 0x8CE2 | ||
| HR | 20848 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20852 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20856 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20860 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20880 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20884 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20888 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20892 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 20912 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20916 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20920 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20924 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20944 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20948 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20952 | uint64 ABCD | R | kvarh | ×0.01 | ||
| HR | 20956 | uint64 ABCD | R | kvarh | ×0.01 | ||
| 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 | 21804 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 21808 | uint64 ABCD | R | kWh | ×0.01 | ||
| HR | 21812 | uint64 ABCD | R | kvarh | ×0.01 | The manual's table gives kWh; kvarh assumed | |
| HR | 21816 | uint64 ABCD | R | kvarh | ×0.01 | The manual's table gives kWh; kvarh assumed | |
| 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 | A | ×0.01 | ||
| 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 | int32 ABCD | R | W | ×0.01 | Limited to about ±21 MW; use the DMTME block above that | |
| HR | 23318 | int32 ABCD | R | W | ×0.01 | ||
| HR | 23320 | int32 ABCD | R | W | ×0.01 | ||
| HR | 23322 | int32 ABCD | R | W | ×0.01 | ||
| HR | 23324 | int32 ABCD | R | var | ×0.01 | ||
| HR | 23326 | int32 ABCD | R | var | ×0.01 | ||
| HR | 23328 | int32 ABCD | R | var | ×0.01 | ||
| HR | 23330 | int32 ABCD | R | var | ×0.01 | ||
| HR | 23332 | int32 ABCD | R | VA | ×0.01 | ||
| HR | 23334 | int32 ABCD | R | VA | ×0.01 | ||
| HR | 23336 | int32 ABCD | R | VA | ×0.01 | ||
| HR | 23338 | int32 ABCD | R | VA | ×0.01 | ||
| HR | 23340 | uint16 | R | Hz | ×0.01 | ||
| HR | 23341 | int16 | R | ° | ×0.1 | -180 to +180 | |
| HR | 23342 | int16 | R | ° | ×0.1 | ||
| HR | 23343 | int16 | R | ° | ×0.1 | ||
| HR | 23344 | int16 | R | ° | ×0.1 | ||
| HR | 23345 | int16 | R | ° | ×0.1 | ||
| HR | 23346 | int16 | R | ° | ×0.1 | ||
| HR | 23347 | int16 | R | ° | ×0.1 | ||
| HR | 23351 | int16 | R | ° | ×0.1 | ||
| HR | 23352 | int16 | R | ° | ×0.1 | ||
| HR | 23353 | int16 | R | ° | ×0.1 | ||
| HR | 23354 | int16 | R | ×0.001 | |||
| HR | 23355 | int16 | R | ×0.001 | |||
| HR | 23356 | int16 | R | ×0.001 | |||
| HR | 23357 | int16 | R | ×0.001 | |||
| HR | 23358 | uint16 | R | 1-4 | |||
| HR | 23359 | uint16 | R | 1-4 | |||
| HR | 23360 | uint16 | R | 1-4 | |||
| HR | 23361 | uint16 | R | 1-4 | |||
| HR | 4142 | uint32 ABCD | R | W | No decimals; for powers above ±21 MW |
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).