Easy Modbus
  1. Home
  2. Modbus register maps
  3. ABB
  4. EQ meter B21 (Modbus RTU)

Energy meter · Modbus register map

ABB EQ meter B21 (Modbus RTU) Modbus register map

Updated 16 October 2026

Short answer

The B21 is ABB's single-phase EQ DIN-rail kWh meter. Versions with the RS485 port talk Modbus RTU using the same hex-addressed holding-register map as the rest of the EQ family. This map keeps the values that make sense on a single-phase meter: total, tariff, L1 and resettable energy, L1 voltage, current, power, angles and power factor, identification, clock status, conversion factors and resets.

This page lists 95 Modbus registers for the ABB EQ meter B21 (Modbus RTU) — 19 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from ABB’s own free documentation (linked below) and checked against it.

Manufacturer
ABB
Model
EQ meter B21 (Modbus RTU)
Equipment type
Energy meter
Registers
95 (19 writable)
Transport
Modbus RTU
Default unit ID
Not stated
Documented addressing
hexadecimal, 0-based
32-bit word order
ABCD high word first (big-endian)
Also known as
B21, EQ B21
Source document
B21 User Manual · 2CMC485004M0201 Revision D · rev. 2025-11-07
Download CSV all columns JSON Manufacturer PDF ↗

Integration notes: ABB EQ meter B21 (Modbus RTU)

Integration in brief

Switch the RS485 port to Modbus in the meter menu, then poll holding registers with function 3 at their hex addresses. Energy is 64-bit (4 registers) with 0.01 resolution, high word first.

Minimum registers to map

Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.

RegisterNameTypeWhyAccess
HR 20480Active import energyUINT64 ABCDTotal active import energyRead
HR 20484Active export energyUINT64 ABCDTotal active export energyRead
HR 23296Voltage L1-NUINT32 ABCDVoltage L1-NRead
HR 23308Current L1UINT32 ABCDCurrent L1Read
HR 23316Active power TotalINT32 ABCDTotal active powerRead
HR 23340FrequencyUINT16FrequencyRead
HR 35072Serial numberUINT32 ABCDSerial numberRead

Enable Modbus control & writes

In the meter menu, open the RS485 communication settings and set the protocol to Modbus (not EQ-Bus), then set baud rate, address and parity.

Byte order & addressing

Network setup

Watch out for

ABB EQ meter B21 (Modbus RTU) Modbus registers

Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.

95 of 95 shown
ABB EQ meter B21 (Modbus RTU) Modbus register map
TableAddressNameDescriptionTypeOrderScaleUnitsAccessValues / bits
HR4098doc 1002DMTME phase voltage L1-NDMTME-compatible block, whole units.UINT32ABCDVRead
HR4112doc 1010DMTME line current L1DMTME-compatible block.UINT32ABCDmARead
HR4120doc 1018DMTME power factor L1DMTME-compatible block; published as PF x 1000.INT32ABCD× 0.001Read
HR4136doc 1028DMTME apparent power L1DMTME-compatible block, whole units.UINT32ABCDVARead
HR4144doc 1030DMTME active power L1DMTME-compatible block, whole units.UINT32ABCDWRead
HR4152doc 1038DMTME reactive power L1DMTME-compatible block, whole units.UINT32ABCDvarRead
HR4166doc 1046DMTME frequencyDMTME-compatible block.UINT32ABCDmHzRead
HR4512doc 11A0DMTME current transformer ratioDMTME-compatible block.UINT32ABCDRead
HR4514doc 11A2DMTME voltage transformer ratioDMTME-compatible block.UINT32ABCDRead
HR20480doc 5000Active import energyTotal accumulator, 2 decimals.UINT64ABCD× 0.01kWhRead
HR20484doc 5004Active export energyTotal accumulator, 2 decimals.UINT64ABCD× 0.01kWhRead
HR20488doc 5008Active net energyImport minus export, signed.INT64ABCD× 0.01kWhRead
HR20492doc 500CReactive import energyTotal accumulator, 2 decimals.UINT64ABCD× 0.01kvarhRead
HR20496doc 5010Reactive export energyTotal accumulator, 2 decimals.UINT64ABCD× 0.01kvarhRead
HR20500doc 5014Reactive net energyImport minus export, signed.INT64ABCD× 0.01kvarhRead
HR20504doc 5018Apparent import energyTotal accumulator, 2 decimals.UINT64ABCD× 0.01kVAhRead
HR20508doc 501CApparent export energyTotal accumulator, 2 decimals.UINT64ABCD× 0.01kVAhRead
HR20512doc 5020Apparent net energyImport minus export, signed.INT64ABCD× 0.01kVAhRead
HR20516doc 5024Active import CO2CO2 equivalent of imported active energy.UINT64ABCD× 0.001kgRead
HR20532doc 5034Active import currencyCost equivalent of imported active energy.UINT64ABCD× 0.001currencyRead
HR20848doc 5170Active import tariff 1UINT64ABCD× 0.01kWhRead
HR20852doc 5174Active import tariff 2UINT64ABCD× 0.01kWhRead
HR20856doc 5178Active import tariff 3UINT64ABCD× 0.01kWhRead
HR20860doc 517CActive import tariff 4UINT64ABCD× 0.01kWhRead
HR20880doc 5190Active export tariff 1UINT64ABCD× 0.01kWhRead
HR20884doc 5194Active export tariff 2UINT64ABCD× 0.01kWhRead
HR20888doc 5198Active export tariff 3UINT64ABCD× 0.01kWhRead
HR20892doc 519CActive export tariff 4UINT64ABCD× 0.01kWhRead
HR20912doc 51B0Reactive import tariff 1UINT64ABCD× 0.01kvarhRead
HR20916doc 51B4Reactive import tariff 2UINT64ABCD× 0.01kvarhRead
HR20920doc 51B8Reactive import tariff 3UINT64ABCD× 0.01kvarhRead
HR20924doc 51BCReactive import tariff 4UINT64ABCD× 0.01kvarhRead
HR20944doc 51D0Reactive export tariff 1UINT64ABCD× 0.01kvarhRead
HR20948doc 51D4Reactive export tariff 2UINT64ABCD× 0.01kvarhRead
HR20952doc 51D8Reactive export tariff 3UINT64ABCD× 0.01kvarhRead
HR20956doc 51DCReactive export tariff 4UINT64ABCD× 0.01kvarhRead
HR21600doc 5460Active import energy L1UINT64ABCD× 0.01kWhRead
HR21612doc 546CActive export energy L1UINT64ABCD× 0.01kWhRead
HR21624doc 5478Active net energy L1INT64ABCD× 0.01kWhRead
HR21636doc 5484Reactive import energy L1UINT64ABCD× 0.01kvarhRead
HR21648doc 5490Reactive export energy L1UINT64ABCD× 0.01kvarhRead
HR21660doc 549CReactive net energy L1INT64ABCD× 0.01kvarhRead
HR21804doc 552CResettable active importUINT64ABCD× 0.01kWhRead
HR21808doc 5530Resettable active exportUINT64ABCD× 0.01kWhRead
HR21812doc 5534Resettable reactive importManual's Unit column prints 'kWh' (res. 0,01, 4 regs, Unsigned); listed as kvarh.UINT64ABCD× 0.01kvarhRead
HR21816doc 5538Resettable reactive exportManual's Unit column prints 'kWh' (res. 0,01, 4 regs, Unsigned); listed as kvarh.UINT64ABCD× 0.01kvarhRead
HR23296doc 5B00Voltage L1-NUINT32ABCD× 0.1VRead
HR23308doc 5B0CCurrent L1UINT32ABCD× 0.01ARead
HR23316doc 5B14Active power TotalSigned; see note on the ~21 MW range limit.INT32ABCD× 0.01WRead
HR23318doc 5B16Active power L1INT32ABCD× 0.01WRead
HR23324doc 5B1CReactive power TotalSigned; see note on the ~21 MW range limit.INT32ABCD× 0.01varRead
HR23326doc 5B1EReactive power L1INT32ABCD× 0.01varRead
HR23332doc 5B24Apparent power TotalSigned; see note on the ~21 MW range limit.INT32ABCD× 0.01VARead
HR23334doc 5B26Apparent power L1INT32ABCD× 0.01VARead
HR23340doc 5B2CFrequencyUINT16× 0.01HzRead
HR23341doc 5B2DPhase angle power TotalRange -180 to +180.INT16× 0.1°Read
HR23342doc 5B2EPhase angle power L1Range -180 to +180.INT16× 0.1°Read
HR23345doc 5B31Phase angle voltage L1INT16× 0.1°Read
HR23351doc 5B37Phase angle current L1INT16× 0.1°Read
HR23354doc 5B3APower factor TotalRange -1.000 to +1.000.INT16× 0.001Read
HR23355doc 5B3BPower factor L1Range -1.000 to +1.000.INT16× 0.001Read
HR23358doc 5B3ECurrent quadrant TotalUINT16Read1 = Quadrant 1; 2 = Quadrant 2; 3 = Quadrant 3; 4 = Quadrant 4
HR23359doc 5B3FCurrent quadrant L1UINT16Read1 = Quadrant 1; 2 = Quadrant 2; 3 = Quadrant 3; 4 = Quadrant 4
HR25344doc 6300Output 1UINT16Read/write0 = OFF; 1 = ON
HR25345doc 6301Output 2UINT16Read/write0 = OFF; 1 = ON
HR35072doc 8900Serial numberUINT32ABCDRead
HR35080doc 8908Meter firmware versionASCII, e.g. 1.0.0; unused bytes are 0.STRING[16]Read
HR35088doc 8910Modbus mapping versionHigh byte = major, low byte = minor version.UINT16Read
HR35168doc 8960Type designationASCII, 12 characters including null terminator.STRING[12]Read
HR35331doc 8A03Day of week1-7, Monday = 1.UINT16Read
HR35332doc 8A04DST activeUINT16Read0 = DST inactive; 1 = DST active
HR35333doc 8A05Day type0-3 means day type 1-4.UINT16Read
HR35334doc 8A06Season0-3 means season 1-4.UINT16Read
HR35335doc 8A07Current tariffActive tariff, 1 to 4.UINT16Read/write
HR35375doc 8A2FPower fail counterUINT16Read
HR35400doc 8A48Reset counter active energy importTimes the resettable register was cleared.UINT64ABCDRead
HR35404doc 8A4CReset counter active energy exportUINT64ABCDRead
HR35408doc 8A50Reset counter reactive energy importUINT64ABCDRead
HR35412doc 8A54Reset counter reactive energy exportUINT64ABCDRead
HR35844doc 8C04CT ratio numeratorUINT32ABCDRead/write
HR35846doc 8C06VT ratio numeratorUINT32ABCDRead/write
HR35848doc 8C08CT ratio denominatorUINT32ABCDRead/write
HR35850doc 8C0AVT ratio denominatorUINT32ABCDRead/write
HR36064doc 8CE0CO2 conversion factorUINT32ABCD× 0.001kg/kWhRead/write
HR36066doc 8CE2Currency conversion factorUINT32ABCD× 0.01Currency/kWhRead/write
HR36068doc 8CE4LED sourceUINT16Read/write0 = Active energy; 1 = Reactive energy
HR36069doc 8CE5Number of elementsMeasuring elements, 1 to 3.UINT16Read/write
HR36608doc 8F00Reset power fail counterWrite 1 to reset.UINT16Write
HR36613doc 8F05Reset power outage timeWrite 1 to reset.UINT16Write
HR36635doc 8F1BReset resettable active energy importWrite 1 to reset.UINT16Write
HR36636doc 8F1CReset resettable active energy exportWrite 1 to reset.UINT16Write
HR36637doc 8F1DReset resettable reactive energy importWrite 1 to reset.UINT16Write
HR36638doc 8F1EReset resettable reactive energy exportWrite 1 to reset.UINT16Write
HR36639doc 8F1FReset previous valuesWrite 1 to reset.UINT16Write
HR36640doc 8F20Reset demandWrite 1 to reset.UINT16Write

Notes on this map

Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.

Questions about the ABB EQ meter B21 (Modbus RTU)

What Modbus registers does the ABB EQ meter B21 (Modbus RTU) have?

This map lists 95 registers: 95 holding registers. 19 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.

Are the ABB EQ meter B21 (Modbus RTU) Modbus addresses 0-based or 1-based?

The manufacturer's document numbers registers hexadecimal, 0-based. Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. Start registers are printed in hex exactly as sent on the bus (5000 = 0x5000); the manual says not to subtract 40000 or 1. Function 3 reads, 6/16 write.

What byte order does the ABB EQ meter B21 (Modbus RTU) use for 32-bit values?

Multi-register values in this map use ABCD (high word first (big-endian)). Set your client to this order for every 32/64-bit value in the table.

What are the minimum Modbus registers to integrate the ABB EQ meter B21 (Modbus RTU)?

Start with HR 20480 Active import energy (Total active import energy); HR 20484 Active export energy (Total active export energy); HR 23296 Voltage L1-N (Voltage L1-N); HR 23308 Current L1 (Current L1); HR 23316 Active power Total (Total active power); HR 23340 Frequency (Frequency); HR 35072 Serial number (Serial number).

How do I enable Modbus control of the ABB EQ meter B21 (Modbus RTU)?

In the meter menu, open the RS485 communication settings and set the protocol to Modbus (not EQ-Bus), then set baud rate, address and parity.

Where is the official ABB EQ meter B21 (Modbus RTU) Modbus documentation?

The source is B21 User Manual (2CMC485004M0201 Revision D), revision 2025-11-07, published free by ABB at https://search.abb.com/library/Download.aspx?DocumentID=2CMC485004M0201&LanguageCode=en&DocumentPartId=&Action=Launch.

More ABB Modbus register maps

Source: B21 User Manual · 2CMC485004M0201 Revision D · rev. 2025-11-07. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.