ABB B23 / B24 Modbus register map

Three-phase DIN-rail energy meters from ABB's B series, available in direct-connected and transformer-connected versions. The B23 and B24 manual covers active, reactive and apparent energy counters, tariffs, instantaneous electrical values and meter settings over Modbus RTU on an RS485 interface.

Protocol
Modbus RTU (RS485)
Defaults
Slave address range 1 to 247; baud rates 1200 to 115200 and parity None, Odd or Even are selectable in the meter menu (p. 38). Function codes 3, 6 and 16 are supported (p. 79).
Addresses in the manual
0-based protocol addresses, as sent on the wire
32 and 64-bit values
High word first (AB CD)
Registers listed
70
Checked against
2CMC485003M0201, Revision E, 2025-11-07

Address base. Start registers are printed in hexadecimal and the manual says they are given exactly as sent on the bus, with no subtraction of 40000 and no decrement by 1 (p. 85). The request example reads from 0x5000 (p. 80). Addresses here are the hex values converted to decimal. Address 20480 in the manual is address 20480 on the wire.

Word order. For values spanning several registers, the most significant byte is in the high byte of the first (lowest) register (p. 84). Unsupported quantities return all-ones for unsigned types and the maximum positive value for signed types.

Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.

Downloads

The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.

Registers

70 registers
Manual Wire Register Type Regs Unit Scale Access Area
20480 20480 Total active energy importActiveEnergyImport · Printed as hex 5000. uint64 4 kWh 0.01 R Holding (FC03)
20484 20484 Total active energy exportActiveEnergyExport · Printed as hex 5004. uint64 4 kWh 0.01 R Holding (FC03)
20488 20488 Net active energy (import minus export)ActiveEnergyNet · Printed as hex 5008. int64 4 kWh 0.01 R Holding (FC03)
20492 20492 Total reactive energy importReactiveEnergyImport · Printed as hex 500C. uint64 4 kvarh 0.01 R Holding (FC03)
20496 20496 Total reactive energy exportReactiveEnergyExport · Printed as hex 5010. uint64 4 kvarh 0.01 R Holding (FC03)
20500 20500 Net reactive energyReactiveEnergyNet · Printed as hex 5014. int64 4 kvarh 0.01 R Holding (FC03)
20504 20504 Total apparent energy importApparentEnergyImport · Printed as hex 5018. uint64 4 kVAh 0.01 R Holding (FC03)
20508 20508 Total apparent energy exportApparentEnergyExport · Printed as hex 501C. uint64 4 kVAh 0.01 R Holding (FC03)
20512 20512 Net apparent energyApparentEnergyNet · Printed as hex 5020. int64 4 kVAh 0.01 R Holding (FC03)
20848 20848 Active energy import tariff 1ActiveEnergyImport_T1 · Printed as hex 5170. uint64 4 kWh 0.01 R Holding (FC03)
20852 20852 Active energy import tariff 2ActiveEnergyImport_T2 · Printed as hex 5174. uint64 4 kWh 0.01 R Holding (FC03)
20856 20856 Active energy import tariff 3ActiveEnergyImport_T3 · Printed as hex 5178. uint64 4 kWh 0.01 R Holding (FC03)
20860 20860 Active energy import tariff 4ActiveEnergyImport_T4 · Printed as hex 517C. uint64 4 kWh 0.01 R Holding (FC03)
20880 20880 Active energy export tariff 1ActiveEnergyExport_T1 · Printed as hex 5190. uint64 4 kWh 0.01 R Holding (FC03)
20884 20884 Active energy export tariff 2ActiveEnergyExport_T2 · Printed as hex 5194. uint64 4 kWh 0.01 R Holding (FC03)
20888 20888 Active energy export tariff 3ActiveEnergyExport_T3 · Printed as hex 5198. uint64 4 kWh 0.01 R Holding (FC03)
20892 20892 Active energy export tariff 4ActiveEnergyExport_T4 · Printed as hex 519C. uint64 4 kWh 0.01 R Holding (FC03)
21600 21600 Active energy import phase L1ActiveEnergyImport_L1 · Printed as hex 5460. uint64 4 kWh 0.01 R Holding (FC03)
21604 21604 Active energy import phase L2ActiveEnergyImport_L2 · Printed as hex 5464. uint64 4 kWh 0.01 R Holding (FC03)
21608 21608 Active energy import phase L3ActiveEnergyImport_L3 · Printed as hex 5468. uint64 4 kWh 0.01 R Holding (FC03)
21804 21804 Resettable active energy importResettableActiveEnergyImport · Printed as hex 552C. uint64 4 kWh 0.01 R Holding (FC03)
21808 21808 Resettable active energy exportResettableActiveEnergyExport · Printed as hex 5530. uint64 4 kWh 0.01 R Holding (FC03)
23296 23296 Voltage L1 to neutralVoltage_L1N · Printed as hex 5B00. uint32 2 V 0.1 R Holding (FC03)
23298 23298 Voltage L2 to neutralVoltage_L2N · Printed as hex 5B02. uint32 2 V 0.1 R Holding (FC03)
23300 23300 Voltage L3 to neutralVoltage_L3N · Printed as hex 5B04. uint32 2 V 0.1 R Holding (FC03)
23302 23302 Voltage L1 to L2Voltage_L1L2 · Printed as hex 5B06. uint32 2 V 0.1 R Holding (FC03)
23304 23304 Voltage L3 to L2Voltage_L3L2 · Printed as hex 5B08. uint32 2 V 0.1 R Holding (FC03)
23306 23306 Voltage L1 to L3Voltage_L1L3 · Printed as hex 5B0A. uint32 2 V 0.1 R Holding (FC03)
23308 23308 Current L1Current_L1 · Printed as hex 5B0C. uint32 2 A 0.01 R Holding (FC03)
23310 23310 Current L2Current_L2 · Printed as hex 5B0E. uint32 2 A 0.01 R Holding (FC03)
23312 23312 Current L3Current_L3 · Printed as hex 5B10. uint32 2 A 0.01 R Holding (FC03)
23314 23314 Neutral currentCurrent_N · Printed as hex 5B12. uint32 2 A 0.01 R Holding (FC03)
23316 23316 Active power totalActivePower_Total · Printed as hex 5B14. Signed 32-bit, two decimals (p. 89 note: limited to roughly 21 MW at this scaling). int32 2 W 0.01 R Holding (FC03)
23318 23318 Active power L1ActivePower_L1 · Printed as hex 5B16. int32 2 W 0.01 R Holding (FC03)
23320 23320 Active power L2ActivePower_L2 · Printed as hex 5B18. int32 2 W 0.01 R Holding (FC03)
23322 23322 Active power L3ActivePower_L3 · Printed as hex 5B1A. int32 2 W 0.01 R Holding (FC03)
23324 23324 Reactive power totalReactivePower_Total · Printed as hex 5B1C. int32 2 var 0.01 R Holding (FC03)
23326 23326 Reactive power L1ReactivePower_L1 · Printed as hex 5B1E. int32 2 var 0.01 R Holding (FC03)
23328 23328 Reactive power L2ReactivePower_L2 · Printed as hex 5B20. int32 2 var 0.01 R Holding (FC03)
23330 23330 Reactive power L3ReactivePower_L3 · Printed as hex 5B22. int32 2 var 0.01 R Holding (FC03)
23332 23332 Apparent power totalApparentPower_Total · Printed as hex 5B24. int32 2 VA 0.01 R Holding (FC03)
23334 23334 Apparent power L1ApparentPower_L1 · Printed as hex 5B26. int32 2 VA 0.01 R Holding (FC03)
23336 23336 Apparent power L2ApparentPower_L2 · Printed as hex 5B28. int32 2 VA 0.01 R Holding (FC03)
23338 23338 Apparent power L3ApparentPower_L3 · Printed as hex 5B2A. int32 2 VA 0.01 R Holding (FC03)
23340 23340 Line frequencyFrequency · Printed as hex 5B2C. uint16 1 Hz 0.01 R Holding (FC03)
23341 23341 Power phase angle totalPhaseAnglePower_Total · Printed as hex 5B2D. Range -180 to +180 degrees. int16 1 ° 0.1 R Holding (FC03)
23342 23342 Power phase angle L1PhaseAnglePower_L1 · Printed as hex 5B2E. Range -180 to +180 degrees. int16 1 ° 0.1 R Holding (FC03)
23343 23343 Power phase angle L2PhaseAnglePower_L2 · Printed as hex 5B2F. Range -180 to +180 degrees. int16 1 ° 0.1 R Holding (FC03)
23344 23344 Power phase angle L3PhaseAnglePower_L3 · Printed as hex 5B30. Range -180 to +180 degrees. int16 1 ° 0.1 R Holding (FC03)
23354 23354 Power factor totalPowerFactor_Total · Printed as hex 5B3A. Range -1.000 to +1.000. int16 1 0.001 R Holding (FC03)
23355 23355 Power factor L1PowerFactor_L1 · Printed as hex 5B3B. Range -1.000 to +1.000. int16 1 0.001 R Holding (FC03)
23356 23356 Power factor L2PowerFactor_L2 · Printed as hex 5B3C. Range -1.000 to +1.000. int16 1 0.001 R Holding (FC03)
23357 23357 Power factor L3PowerFactor_L3 · Printed as hex 5B3D. Range -1.000 to +1.000. int16 1 0.001 R Holding (FC03)
23358 23358 Current quadrant totalQuadrant_Total · Printed as hex 5B3E. Values 1 to 4. uint16 1 1 R Holding (FC03)
23359 23359 Current quadrant L1Quadrant_L1 · Printed as hex 5B3F. Values 1 to 4. uint16 1 1 R Holding (FC03)
23360 23360 Current quadrant L2Quadrant_L2 · Printed as hex 5B40. Values 1 to 4. uint16 1 1 R Holding (FC03)
23361 23361 Current quadrant L3Quadrant_L3 · Printed as hex 5B41. Values 1 to 4. uint16 1 1 R Holding (FC03)
25344 25344 Digital output 1 stateOutput1 · Printed as hex 6300. 1 = on, 0 = off. uint16 1 1 RW Holding (FC03)
25345 25345 Digital output 2 stateOutput2 · Printed as hex 6301. 1 = on, 0 = off. uint16 1 1 RW Holding (FC03)
35072 35072 Meter serial numberSerialNumber · Printed as hex 8900. uint32 2 1 R Holding (FC03)
35080 35080 Meter firmware versionFirmwareVersion · Printed as hex 8908. ASCII text such as 1.0.0, unused bytes are zero. string 8 1 R Holding (FC03)
35088 35088 Modbus mapping versionModbusMappingVersion · Printed as hex 8910. High byte is the major version, low byte is the minor version. uint16 1 1 R Holding (FC03)
35168 35168 Type designationTypeDesignation · Printed as hex 8960. ASCII, 12 characters including null termination. string 6 1 R Holding (FC03)
35335 35335 Current tariffCurrentTariff · Printed as hex 8A07. Tariff 1 to 4. uint16 1 1 RW Holding (FC03)
35375 35375 Power fail counterPowerFailCounter · Printed as hex 8A2F. uint16 1 1 R Holding (FC03)
35844 35844 Current transformer ratio numeratorCTRatioNumerator · Printed as hex 8C04. uint32 2 1 RW Holding (FC03)
35848 35848 Current transformer ratio denominatorCTRatioDenominator · Printed as hex 8C08. uint32 2 1 RW Holding (FC03)
36608 36608 Reset power fail counterCmd_ResetPowerFailCounter · Printed as hex 8F00. Write 1 to reset. uint16 1 1 W Holding (FC03)
36635 36635 Reset resettable active energy importCmd_ResetResettableActiveImport · Printed as hex 8F1B. Write 1 to reset. uint16 1 1 W Holding (FC03)
36636 36636 Reset resettable active energy exportCmd_ResetResettableActiveExport · Printed as hex 8F1C. Write 1 to reset. uint16 1 1 W Holding (FC03)

Scale is the number to multiply the raw value by to get the unit. Types with more than one register (32 and 64-bit) follow the word order above.

Open in Modbus Poll

  1. Download the Modbus Poll blocks file.
  2. Open Modbus Poll, connect to the device and set its unit ID. In Modbus Poll set Word order to AB CD.
  3. In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
  4. The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.

Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.

Source and accuracy

Manufacturer document: B23/B24 User Manual (library.e.abb.com)

2CMC485003M0201, Revision E, 2025-11-07, p. 78-96. Read on 2026-10-24.

Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.

Found a mistake? Report it by email with the register address and the manual page.

More from ABB

All ABB register maps

Other energy meters

All register maps · Modbus addressing explained