ABB B23/B24 Modbus register map
Also searched as: ABB B23 · ABB B24 · B23 112-100 · B23 312-100 · B24 112-100 · B24 312-100
121 Modbus registers of the ABB B23 and B24, with the address on the wire, the 30001-style reference, data type, byte order, unit and scale. Transcribed from B23/B24 User Manual (Revision E).
ABB B23 (direct connected) and B24 (transformer connected) DIN-rail energy meters with Modbus RTU; integers with fixed resolution.
- Device type
- Energy meter
- Registers
- 121
- Interfaces
- Modbus RTU
- Byte order (multi-register values)
- ABCD
- Registers per read
- 125
Hardware verification
Not yet verified on hardware. The map is transcribed from the vendor document and checked against it by script; check the first readings against the device display.
Connection notes
- Addresses are sent exactly as the manual lists them in hex; nothing is subtracted.
- Every register here is a holding register (function code 3); writes use function code 6 or 16.
- Missing quantities read as invalid, FFFF for unsigned and 7FFF... for signed values.
- Only the Modbus RTU versions of the meter answer Modbus; M-Bus versions use a different protocol.
Registers
Grouped as in the vendor document.
Voltage 6 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Voltage L1-Nvoltage_l1_n | 423297 | 0x5B00 | uint32 | ABCD | V | × 0.1 |
Voltage L2-Nvoltage_l2_n | 423299 | 0x5B02 | uint32 | ABCD | V | × 0.1 |
Voltage L3-Nvoltage_l3_n | 423301 | 0x5B04 | uint32 | ABCD | V | × 0.1 |
Voltage L1-L2voltage_l1_l2 | 423303 | 0x5B06 | uint32 | ABCD | V | × 0.1 |
Voltage L3-L2voltage_l3_l2 | 423305 | 0x5B08 | uint32 | ABCD | V | × 0.1 |
Voltage L1-L3voltage_l1_l3 | 423307 | 0x5B0A | uint32 | ABCD | V | × 0.1 |
Current 4 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Current L1current_l1 | 423309 | 0x5B0C | uint32 | ABCD | A | × 0.01 |
Current L2current_l2 | 423311 | 0x5B0E | uint32 | ABCD | A | × 0.01 |
Current L3current_l3 | 423313 | 0x5B10 | uint32 | ABCD | A | × 0.01 |
Current Ncurrent_n | 423315 | 0x5B12 | uint32 | ABCD | A | × 0.01 |
Power 31 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Active power totalactive_power_total | 423317 | 0x5B14 | int32 | ABCD | W | × 0.01 |
Active power L1active_power_l1 | 423319 | 0x5B16 | int32 | ABCD | W | × 0.01 |
Active power L2active_power_l2 | 423321 | 0x5B18 | int32 | ABCD | W | × 0.01 |
Active power L3active_power_l3 | 423323 | 0x5B1A | int32 | ABCD | W | × 0.01 |
Reactive power totalreactive_power_total | 423325 | 0x5B1C | int32 | ABCD | var | × 0.01 |
Reactive power L1reactive_power_l1 | 423327 | 0x5B1E | int32 | ABCD | var | × 0.01 |
Reactive power L2reactive_power_l2 | 423329 | 0x5B20 | int32 | ABCD | var | × 0.01 |
Reactive power L3reactive_power_l3 | 423331 | 0x5B22 | int32 | ABCD | var | × 0.01 |
Apparent power totalapparent_power_total | 423333 | 0x5B24 | int32 | ABCD | VA | × 0.01 |
Apparent power L1apparent_power_l1 | 423335 | 0x5B26 | int32 | ABCD | VA | × 0.01 |
Apparent power L2apparent_power_l2 | 423337 | 0x5B28 | int32 | ABCD | VA | × 0.01 |
Apparent power L3apparent_power_l3 | 423339 | 0x5B2A | int32 | ABCD | VA | × 0.01 |
Frequencyfrequency | 423341 | 0x5B2C | uint16 | Hz | × 0.01 | |
Phase angle of power, totalphase_angle_power_total | 423342 | 0x5B2D | int16 | deg | × 0.1 | |
Phase angle of power, L1phase_angle_power_l1 | 423343 | 0x5B2E | int16 | deg | × 0.1 | |
Phase angle of power, L2phase_angle_power_l2 | 423344 | 0x5B2F | int16 | deg | × 0.1 | |
Phase angle of power, L3phase_angle_power_l3 | 423345 | 0x5B30 | int16 | deg | × 0.1 | |
Phase angle of voltage, L1phase_angle_voltage_l1 | 423346 | 0x5B31 | int16 | deg | × 0.1 | |
Phase angle of voltage, L2phase_angle_voltage_l2 | 423347 | 0x5B32 | int16 | deg | × 0.1 | |
Phase angle of voltage, L3phase_angle_voltage_l3 | 423348 | 0x5B33 | int16 | deg | × 0.1 | |
Phase angle of current, L1phase_angle_current_l1 | 423352 | 0x5B37 | int16 | deg | × 0.1 | |
Phase angle of current, L2phase_angle_current_l2 | 423353 | 0x5B38 | int16 | deg | × 0.1 | |
Phase angle of current, L3phase_angle_current_l3 | 423354 | 0x5B39 | int16 | deg | × 0.1 | |
Power factor, totalpower_factor_total | 423355 | 0x5B3A | int16 | × 0.001 | ||
Power factor, L1power_factor_l1 | 423356 | 0x5B3B | int16 | × 0.001 | ||
Power factor, L2power_factor_l2 | 423357 | 0x5B3C | int16 | × 0.001 | ||
Power factor, L3power_factor_l3 | 423358 | 0x5B3D | int16 | × 0.001 | ||
Current quadrant, totalquadrant_total | 423359 | 0x5B3E | uint16 | |||
Current quadrant, L1quadrant_l1 | 423360 | 0x5B3F | uint16 | |||
Current quadrant, L2quadrant_l2 | 423361 | 0x5B40 | uint16 | |||
Current quadrant, L3quadrant_l3 | 423362 | 0x5B41 | uint16 |
Energy 11 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Active energy importactive_import_energy | 420481 | 0x5000 | uint64 | ABCD | kWh | × 0.01 |
Active energy exportactive_export_energy | 420485 | 0x5004 | uint64 | ABCD | kWh | × 0.01 |
Active energy netactive_net_energy | 420489 | 0x5008 | int64 | ABCD | kWh | × 0.01 |
Reactive energy importreactive_import_energy | 420493 | 0x500C | uint64 | ABCD | kvarh | × 0.01 |
Reactive energy exportreactive_export_energy | 420497 | 0x5010 | uint64 | ABCD | kvarh | × 0.01 |
Reactive energy netreactive_net_energy | 420501 | 0x5014 | int64 | ABCD | kvarh | × 0.01 |
Apparent energy importapparent_import_energy | 420505 | 0x5018 | uint64 | ABCD | kVAh | × 0.01 |
Apparent energy exportapparent_export_energy | 420509 | 0x501C | uint64 | ABCD | kVAh | × 0.01 |
Apparent energy netapparent_net_energy | 420513 | 0x5020 | int64 | ABCD | kVAh | × 0.01 |
CO2 equivalent of active energy importactive_import_co2 | 420517 | 0x5024 | uint64 | ABCD | kg | × 0.001 |
Currency equivalent of active energy importactive_import_currency | 420533 | 0x5034 | uint64 | ABCD | currency | × 0.001 |
Phase energy 27 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Active energy import, L1active_import_energy_l1 | 421601 | 0x5460 | uint64 | ABCD | kWh | × 0.01 |
Active energy import, L2active_import_energy_l2 | 421605 | 0x5464 | uint64 | ABCD | kWh | × 0.01 |
Active energy import, L3active_import_energy_l3 | 421609 | 0x5468 | uint64 | ABCD | kWh | × 0.01 |
Active energy export, L1active_export_energy_l1 | 421613 | 0x546C | uint64 | ABCD | kWh | × 0.01 |
Active energy export, L2active_export_energy_l2 | 421617 | 0x5470 | uint64 | ABCD | kWh | × 0.01 |
Active energy export, L3active_export_energy_l3 | 421621 | 0x5474 | uint64 | ABCD | kWh | × 0.01 |
Active energy net, L1active_net_energy_l1 | 421625 | 0x5478 | int64 | ABCD | kWh | × 0.01 |
Active energy net, L2active_net_energy_l2 | 421629 | 0x547C | int64 | ABCD | kWh | × 0.01 |
Active energy net, L3active_net_energy_l3 | 421633 | 0x5480 | int64 | ABCD | kWh | × 0.01 |
Reactive energy import, L1reactive_import_energy_l1 | 421637 | 0x5484 | uint64 | ABCD | kvarh | × 0.01 |
Reactive energy import, L2reactive_import_energy_l2 | 421641 | 0x5488 | uint64 | ABCD | kvarh | × 0.01 |
Reactive energy import, L3reactive_import_energy_l3 | 421645 | 0x548C | uint64 | ABCD | kvarh | × 0.01 |
Reactive energy export, L1reactive_export_energy_l1 | 421649 | 0x5490 | uint64 | ABCD | kvarh | × 0.01 |
Reactive energy export, L2reactive_export_energy_l2 | 421653 | 0x5494 | uint64 | ABCD | kvarh | × 0.01 |
Reactive energy export, L3reactive_export_energy_l3 | 421657 | 0x5498 | uint64 | ABCD | kvarh | × 0.01 |
Reactive energy net, L1reactive_net_energy_l1 | 421661 | 0x549C | int64 | ABCD | kvarh | × 0.01 |
Reactive energy net, L2reactive_net_energy_l2 | 421665 | 0x54A0 | int64 | ABCD | kvarh | × 0.01 |
Reactive energy net, L3reactive_net_energy_l3 | 421669 | 0x54A4 | int64 | ABCD | kvarh | × 0.01 |
Apparent energy import, L1apparent_import_energy_l1 | 421673 | 0x54A8 | uint64 | ABCD | kVAh | × 0.01 |
Apparent energy import, L2apparent_import_energy_l2 | 421677 | 0x54AC | uint64 | ABCD | kVAh | × 0.01 |
Apparent energy import, L3apparent_import_energy_l3 | 421681 | 0x54B0 | uint64 | ABCD | kVAh | × 0.01 |
Apparent energy export, L1apparent_export_energy_l1 | 421685 | 0x54B4 | uint64 | ABCD | kVAh | × 0.01 |
Apparent energy export, L2apparent_export_energy_l2 | 421689 | 0x54B8 | uint64 | ABCD | kVAh | × 0.01 |
Apparent energy export, L3apparent_export_energy_l3 | 421693 | 0x54BC | uint64 | ABCD | kVAh | × 0.01 |
Apparent energy net, L1apparent_net_energy_l1 | 421697 | 0x54C0 | int64 | ABCD | kVAh | × 0.01 |
Apparent energy net, L2apparent_net_energy_l2 | 421701 | 0x54C4 | int64 | ABCD | kVAh | × 0.01 |
Apparent energy net, L3apparent_net_energy_l3 | 421705 | 0x54C8 | int64 | ABCD | kVAh | × 0.01 |
Status 2 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Current tariffcurrent_tariff | 435336 | 0x8A07 | uint16 | |||
Power fail counterpower_fail_counter | 435376 | 0x8A2F | uint16 |
Identification 4 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Serial numberserial_number | 435073 | 0x8900 | uint32 | ABCD | ||
Meter firmware versionfirmware_version | 435081 | 0x8908 | string | |||
Modbus mapping versionmapping_version | 435089 | 0x8910 | uint16 | |||
Type designationtype_designation | 435169 | 0x8960 | string |
Tariff energy 16 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Active import energy, tariff 1active_import_energy_t1 | 420849 | 0x5170 | uint64 | ABCD | kWh | × 0.01 |
Active import energy, tariff 2active_import_energy_t2 | 420853 | 0x5174 | uint64 | ABCD | kWh | × 0.01 |
Active import energy, tariff 3active_import_energy_t3 | 420857 | 0x5178 | uint64 | ABCD | kWh | × 0.01 |
Active import energy, tariff 4active_import_energy_t4 | 420861 | 0x517C | uint64 | ABCD | kWh | × 0.01 |
Active export energy, tariff 1active_export_energy_t1 | 420881 | 0x5190 | uint64 | ABCD | kWh | × 0.01 |
Active export energy, tariff 2active_export_energy_t2 | 420885 | 0x5194 | uint64 | ABCD | kWh | × 0.01 |
Active export energy, tariff 3active_export_energy_t3 | 420889 | 0x5198 | uint64 | ABCD | kWh | × 0.01 |
Active export energy, tariff 4active_export_energy_t4 | 420893 | 0x519C | uint64 | ABCD | kWh | × 0.01 |
Reactive import energy, tariff 1reactive_import_energy_t1 | 420913 | 0x51B0 | uint64 | ABCD | kvarh | × 0.01 |
Reactive import energy, tariff 2reactive_import_energy_t2 | 420917 | 0x51B4 | uint64 | ABCD | kvarh | × 0.01 |
Reactive import energy, tariff 3reactive_import_energy_t3 | 420921 | 0x51B8 | uint64 | ABCD | kvarh | × 0.01 |
Reactive import energy, tariff 4reactive_import_energy_t4 | 420925 | 0x51BC | uint64 | ABCD | kvarh | × 0.01 |
Reactive export energy, tariff 1reactive_export_energy_t1 | 420945 | 0x51D0 | uint64 | ABCD | kvarh | × 0.01 |
Reactive export energy, tariff 2reactive_export_energy_t2 | 420949 | 0x51D4 | uint64 | ABCD | kvarh | × 0.01 |
Reactive export energy, tariff 3reactive_export_energy_t3 | 420953 | 0x51D8 | uint64 | ABCD | kvarh | × 0.01 |
Reactive export energy, tariff 4reactive_export_energy_t4 | 420957 | 0x51DC | uint64 | ABCD | kvarh | × 0.01 |
Resettable energy 4 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Resettable active energy importresettable_active_import_energy | 421805 | 0x552C | uint64 | ABCD | kWh | × 0.01 |
Resettable active energy exportresettable_active_export_energy | 421809 | 0x5530 | uint64 | ABCD | kWh | × 0.01 |
Resettable reactive energy importresettable_reactive_import_energy | 421813 | 0x5534 | uint64 | ABCD | kvarh | × 0.01 |
Resettable reactive energy exportresettable_reactive_export_energy | 421817 | 0x5538 | uint64 | ABCD | kvarh | × 0.01 |
I/O 2 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Output 1output_1 | 425345 | 0x6300 | uint16 | |||
Output 2output_2 | 425346 | 0x6301 | uint16 |
Settings 4 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Current transformer ratio numeratorct_ratio_numerator | 435845 | 0x8C04 | uint32 | ABCD | ||
Current transformer ratio denominatorct_ratio_denominator | 435849 | 0x8C08 | uint32 | ABCD | ||
Currency conversion factorcurrency_conversion_factor | 436067 | 0x8CE2 | uint32 | ABCD | currency/kWh | × 0.01 |
LED pulse sourceled_source | 436069 | 0x8CE4 | uint16 |
Operations 10 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Reset power fail counterreset_power_fail_counter | 436609 | 0x8F00 | uint16 | |||
Reset power outage timereset_power_outage_time | 436614 | 0x8F05 | uint16 | |||
Reset input 3 counterreset_input_3_counter | 436620 | 0x8F0B | uint16 | |||
Reset input 4 counterreset_input_4_counter | 436621 | 0x8F0C | uint16 | |||
Reset input 3 stored statereset_input_3_stored_state | 436628 | 0x8F13 | uint16 | |||
Reset input 4 stored statereset_input_4_stored_state | 436629 | 0x8F14 | uint16 | |||
Reset resettable active energy importreset_resettable_active_import | 436636 | 0x8F1B | uint16 | |||
Reset resettable active energy exportreset_resettable_active_export | 436637 | 0x8F1C | uint16 | |||
Reset resettable reactive energy importreset_resettable_reactive_import | 436638 | 0x8F1D | uint16 | |||
Reset resettable reactive energy exportreset_resettable_reactive_export | 436639 | 0x8F1E | uint16 |
Source documents
- B23/B24 User Manual , ABB, 2CMC485003M0201, Revision E (accessed 2026-10-31) Chapter 9, Communication with Modbus.
Read it by name
Read the B23/B24 with an AI assistant
The Proxus Industrial MCP Server includes this map. Set it on the device, and Claude, Cursor or VS Code reads registers by key with the right type, byte order, scale and unit. It only reads.
This device speaks Modbus RTU: reach it through a Modbus TCP gateway and use the gateway’s address with the device’s unit ID.
proxus-mcp.json
{
"devices": {
"b23-1": {
"protocol": "modbus-tcp",
"host": "192.168.10.40",
"unit_id": 1,
"map": "abb/b23-b24"
}
}
} Ask your assistant
Read voltage_l1_n, voltage_l2_n, voltage_l3_n from b23-1.
The tool call it makes
read_named(device: "b23-1", keys: ["voltage_l1_n", "voltage_l2_n", "voltage_l3_n"]) Have this device? Verify the map.
Ask your assistant to run verify_device_map. It reads every register once, read-only, checks that the values are plausible and asks you to compare two values with the display. You get a report and a prefilled GitHub issue to submit; your name goes on this map’s verified list.
Collecting from many devices?
Proxus reads Modbus TCP and RTU devices next to the machines, keeps the history and delivers the values to dashboards, databases and AI.