- Home
- Modbus register maps
- ABB
- ACH580 HVAC drive (embedded Modbus RTU)
Variable frequency drive · Modbus register map
ABB ACH580 HVAC drive (embedded Modbus RTU) Modbus register map
Updated 16 October 2026
ABB's HVAC variable frequency drive with a built-in RS-485 port that speaks Modbus RTU. The first six holding registers carry the control word, two references, status word and two actual values; every drive parameter is also readable as a holding register derived from its group and index. This map covers the cyclic control block, error registers, key 01/04/05/06 monitoring parameters with fixed scaling, the comm-loss settings and the main 32-bit actual values.
This page lists 58 Modbus registers for the ABB ACH580 HVAC drive (embedded Modbus RTU) — 7 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
- ACH580 HVAC drive (embedded Modbus RTU)
- Equipment type
- Variable frequency drive
- Registers
- 58 (7 writable)
- Transport
- Modbus RTU
- Default unit ID
- 1
- Default serial
- 19200 baud, 8E1
- Documented addressing
- Modicon 3xxxx/4xxxx (drop the prefix, subtract 1)
- 32-bit word order
- CDAB low word first (word-swapped)
- Firmware
- ACH580 HVAC control program, manual revision J
- Also known as
- ACH580-01, ACH580-07, ACH580-31, ACH580-34, ACH580 HVAC control program
Integration notes: ABB ACH580 HVAC drive (embedded Modbus RTU)
Enable Modbus RTU in group 58, point the start/stop and reference sources at the embedded fieldbus, then write the ABB Drives control word and Reference 1 at 400001/400002 and poll the status word and actual values at 400004-400006. Read further monitoring values straight from their parameter registers (400000 + 100*group + index).
Minimum registers to map
Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.
| Register | Name | Type | Why | Access |
|---|---|---|---|---|
| HR 0 | Control word (EFB CW) | BITMAP16 | Control word: start/stop/reset | Read/write |
| HR 1 | Reference 1 (EFB Ref1) | INT16 | Reference 1 (speed/frequency setpoint, 20000 = 46.01/46.02) | Read/write |
| HR 3 | Status word (EFB SW) | BITMAP16 | Status word: ready/running/fault/remote | Read |
| HR 4 | Actual value 1 (EFB Act1) | INT16 | Actual value 1 (speed/frequency feedback) | Read |
| HR 110 | 01.11 DC voltage | UINT16 | 01.11 DC voltage | Read |
| HR 400 | 04.01 Tripping fault | UINT16 | 04.01 Tripping fault code | Read |
| HR 20211 | 01.06 Output frequency (32-bit) | INT32 CDAB | 01.06 Output frequency, 0.01 Hz (32-bit) | Read |
| HR 20213 | 01.07 Motor current (32-bit) | UINT32 CDAB | 01.07 Motor current, 0.01 A (32-bit) | Read |
Enable Modbus control & writes
Set 58.01 Protocol enable = Modbus RTU, then 58.03 node address, 58.04 baud and 58.05 parity, and apply them with 58.06 Communication control = Refresh settings (or power-cycle). For control set 20.01 Ext1 commands (and 20.06 for EXT2) = Embedded fieldbus and the reference source, e.g. 22.11 Ext1 speed ref1 or 28.11 Ext1 frequency ref1 = EFB ref1. Every start/stop control-word value in the manual sets bit 10 (REMOTE_CMD); the manual's own description of that bit is truncated. Save parameter writes permanently with 96.07 Parameter save manually.
Communication loss & watchdog
58.14 Communication loss action (default No action; options No action / Fault / Last speed / Speed ref safe / Fault always / Warning) with 58.16 Communication loss time (0-6000 s, default 30.0 s) and 58.15 Communication loss mode (any message, or only control word/reference writes, resets the timer). A loss trips 6681 EFB comm loss or warns A7CE; 'Speed ref safe' runs at 22.41/28.41. There is a 30 s boot-up delay before monitoring starts.
Byte order & addressing
- Addresses are 6-digit Modicon references: 400001 = wire 0. 32-bit parameter registers start at 420000 and cannot be reached with 5-digit (4xxxx) addressing.
- 32-bit values in this map are listed CDAB, which assumes 58.34 Word order = LO-HI (the default: low word first). If 58.34 is set to HI-LO, read them as ABCD.
- References and actual values are signed 16-bit with 20000 = the 46.01/46.02 scaling value, not engineering units.
- Only the lower 16 bits of the drive's 32-bit control/status words are visible at 400001/400004.
- Start (manual's sequence): write 0x0476 (1142) to 400001; once status bit 0 (RDY_ON) is 1, write 0x047E (1150, ready/stopped) and then 0x047F (1151) to run. Stop: 0x0477 (1143) stops per 21.03 Stop mode; 0x047E (1150) OFF1 ramp stop, 0x047D (1149) OFF2 coast, 0x047B (1147) OFF3 emergency ramp. Fault reset: rising edge of control-word bit 7.
Network setup
- RS-485 connection per the hardware manual; termination on at both bus ends and bias on at one device, using the drive's TERM/BIAS switches.
- Defaults: node 1, 19.2 kbit/s, 8 data bits, even parity, 1 stop bit (58.03-58.05); baud can also be set to Autodetect.
- Changes to group 58 take effect only after 58.06 = Refresh settings or a control-unit reboot.
- 58.07 Communication diagnostics flags wiring (A/B swap), parity, baud and addressing errors; 58.08-58.12 count packets and errors.
Watch out for
- If a start command is ignored, read 06.18 Start inhibit status word (for example a missing run enable/permissive or STO).
- The drive handles about 10 registers per 10 ms, so large block reads add response time.
- If ACx550 legacy Modbus mapping is enabled (96.78 Legacy Modbus mapping on current firmware) the register layout changes and this map no longer applies.
- Exception 04h means the request was rejected by the drive; read 400092 Error code for the reason (e.g. limit exceeded).
ABB ACH580 HVAC drive (embedded 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.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| HR | 0doc 400001 | Control word (EFB CW) | ABB Drives profile bits shown; DCU profile layout differs (58.25). | BITMAP16 | Read/write | bit 0 = OFF1_CONTROL: 1 = ready to operate, 0 = ramp stop (OFF1); bit 1 = OFF2_CONTROL: 0 = emergency OFF, coast to stop; bit 2 = OFF3_CONTROL: 0 = emergency stop (OFF3 ramp); bit 3 = INHIBIT_OPERATION: 1 = operation enabled (run), 0 = inhibit; bit 4 = RAMP_OUT_ZERO: 0 = force ramp output to zero; bit 5 = RAMP_HOLD: 0 = hold ramp; bit 6 = RAMP_IN_ZERO: 0 = force ramp input to zero; bit 7 = RESET: 0->1 = fault reset; bit 8 = Reserved; bit 9 = Reserved; bit 10 = REMOTE_CMD: 1 = fieldbus control (manual text truncated to 'Fieldbus control d.'); 0 = last CW/reference kept unless both are 0; bit 11 = EXT_CTRL_LOC: 1 = select EXT2, 0 = select EXT1; bit 12 = USER_0; bit 13 = USER_1; bit 14 = USER_2; bit 15 = USER_3 | |||
| HR | 1doc 400002 | Reference 1 (EFB Ref1) | Signed; 20000 = value of 46.01/46.02 scaling, type per 58.26. | INT16 | Read/write | ||||
| HR | 2doc 400003 | Reference 2 (EFB Ref2) | Signed second reference; type and scaling per 58.27. | INT16 | Read/write | ||||
| HR | 3doc 400004 | Status word (EFB SW) | ABB Drives profile bits shown; DCU profile layout differs (58.25). | BITMAP16 | Read | bit 0 = RDY_ON: ready to switch on; bit 1 = RDY_RUN: ready to operate (0 = OFF1 active); bit 2 = RDY_REF: operation enabled; bit 3 = TRIPPED: fault; bit 4 = OFF_2_STATUS: 1 = OFF2 inactive; bit 5 = OFF_3_STATUS: 1 = OFF3 inactive; bit 6 = SWC_ON_INHIB: switch-on inhibited; bit 7 = ALARM: warning active; bit 8 = AT_SETPOINT: actual value at reference; bit 9 = REMOTE: 1 = remote (EXT1/EXT2), 0 = local; bit 10 = ABOVE_LIMIT: speed/frequency at or above supervision limit; bit 11 = USER_0; bit 12 = USER_1; bit 13 = USER_2; bit 14 = USER_3; bit 15 = Reserved | |||
| HR | 4doc 400005 | Actual value 1 (EFB Act1) | Signed; 20000 = value of 46.01/46.02, type per 58.28. | INT16 | Read | ||||
| HR | 5doc 400006 | Actual value 2 (EFB Act2) | Signed second actual value; type per 58.29 (default transparent). | INT16 | Read | ||||
| HR | 89doc 400090 | Reset error registers | Write 1 to clear error registers 400091-400095. | UINT16 | Read/write | 0 = Do nothing; 1 = Reset | |||
| HR | 90doc 400091 | Error function code | Function code of the last failed query. | UINT16 | Read | ||||
| HR | 91doc 400092 | Error code | Detail code when exception 04h was returned. | UINT16 | Read | 0 = No error; 2 = Low/High limit exceeded; 3 = Faulty index (array parameter); 5 = Incorrect data type; 101 = General error (65h) | |||
| HR | 92doc 400093 | Failed register | Last register that failed to read or write. | UINT16 | Read | ||||
| HR | 93doc 400094 | Last register written successfully | UINT16 | Read | |||||
| HR | 94doc 400095 | Last register read successfully | UINT16 | Read | |||||
| HR | 102doc 400103 | 01.03 Motor speed % | Motor speed in percent of synchronous speed. | INT16 | × 0.1 | % | Read | ||
| HR | 107doc 400108 | 01.08 Motor current % of motor nom | UINT16 | % | Read | ||||
| HR | 108doc 400109 | 01.09 Motor current % of drive nom | UINT16 | % | Read | ||||
| HR | 110doc 400111 | 01.11 DC voltage | Measured DC link voltage. | UINT16 | × 0.1 | V | Read | ||
| HR | 112doc 400113 | 01.13 Output voltage | Calculated motor voltage (AC). | UINT16 | V | Read | |||
| HR | 114doc 400115 | 01.15 Output power % of motor nom | INT16 | × 0.1 | % | Read | |||
| HR | 117doc 400118 | 01.18 Inverter GWh counter | Whole GWh through the drive; combine with 01.19 and 01.20. | UINT16 | GWh | Read | |||
| HR | 118doc 400119 | 01.19 Inverter MWh counter | Whole MWh, rolls over into 01.18. | UINT16 | MWh | Read | |||
| HR | 119doc 400120 | 01.20 Inverter kWh counter | kWh part (0-1000), rolls over into 01.19. | UINT16 | × 0.1 | kWh | Read | ||
| HR | 123doc 400124 | 01.24 Flux actual % | UINT16 | % | Read | ||||
| HR | 161doc 400162 | 01.62 Abs motor speed % | UINT16 | × 0.1 | % | Read | |||
| HR | 164doc 400165 | 01.65 Abs output power | UINT16 | kW | Read | ||||
| HR | 165doc 400166 | 01.66 Abs output power % motor nom | UINT16 | × 0.1 | % | Read | |||
| HR | 400doc 400401 | 04.01 Tripping fault | Hex code of the fault that caused the trip; 0 = none. | UINT16 | Read | ||||
| HR | 401doc 400402 | 04.02 Active fault 2 | UINT16 | Read | |||||
| HR | 402doc 400403 | 04.03 Active fault 3 | UINT16 | Read | |||||
| HR | 405doc 400406 | 04.06 Active warning 1 | Hex code of the first active warning. | UINT16 | Read | ||||
| HR | 406doc 400407 | 04.07 Active warning 2 | UINT16 | Read | |||||
| HR | 407doc 400408 | 04.08 Active warning 3 | UINT16 | Read | |||||
| HR | 410doc 400411 | 04.11 Latest fault | Most recent stored (non-active) fault code. | UINT16 | Read | ||||
| HR | 411doc 400412 | 04.12 2nd latest fault | UINT16 | Read | |||||
| HR | 412doc 400413 | 04.13 3rd latest fault | UINT16 | Read | |||||
| HR | 415doc 400416 | 04.16 Latest warning | Most recent stored warning code. | UINT16 | Read | ||||
| HR | 500doc 400501 | 05.01 On-time counter | Days the drive has been powered. | UINT16 | days | Read | |||
| HR | 501doc 400502 | 05.02 Run-time counter | Days the inverter has been modulating. | UINT16 | days | Read | |||
| HR | 503doc 400504 | 05.04 Fan on-time counter | Cooling fan running time. | UINT16 | days | Read | |||
| HR | 510doc 400511 | 05.11 Inverter temperature | Drive temperature as percent of fault limit. | INT16 | % | Read | |||
| HR | 600doc 400601 | 06.01 Main control word | Drive-internal control word actually in use. | BITMAP16 | Read | bit 0 = Off1 control; bit 1 = Off2 control; bit 2 = Off3 control; bit 3 = Run; bit 4 = Ramp out zero; bit 5 = Ramp hold; bit 6 = Ramp in zero; bit 7 = Reset; bit 8 = Reserved; bit 9 = Reserved; bit 10 = Remote cmd; bit 11 = Ext ctrl loc; bit 12 = User bit 0; bit 13 = User bit 1; bit 14 = User bit 2; bit 15 = User bit 3 | |||
| HR | 610doc 400611 | 06.11 Main status word | Bits 10-14 can be re-assigned with 06.29-06.33. | BITMAP16 | Read | bit 0 = Ready to switch ON; bit 1 = Ready run; bit 2 = Ready ref; bit 3 = Tripped; bit 4 = Off 2 inactive; bit 5 = Off 3 inactive; bit 6 = Switch-on inhibited; bit 7 = Warning; bit 8 = At setpoint; bit 9 = Remote; bit 10 = Above limit (default; selectable with 06.29); bit 11 = User bit 0 (selectable with 06.30); bit 12 = User bit 1 (selectable with 06.31); bit 13 = User bit 2 (selectable with 06.32); bit 14 = User bit 3 (selectable with 06.33); bit 15 = Reserved | |||
| HR | 615doc 400616 | 06.16 Drive status word 1 | BITMAP16 | Read | bit 0 = Enabled; bit 1 = Inhibited (start inhibited); bit 2 = DC charged; bit 3 = Ready to start; bit 4 = Following reference; bit 5 = Started; bit 6 = Modulating; bit 7 = Limiting; bit 8 = Local control; bit 9 = Network control; bit 10 = Ext1 active; bit 11 = Ext2 active; bit 12 = Reserved; bit 13 = Start request; bit 14 = Running; bit 15 = Reserved | ||||
| HR | 616doc 400617 | 06.17 Drive status word 2 | BITMAP16 | Read | bit 0 = Identification run done; bit 1 = Magnetized; bit 2 = Reserved; bit 3 = Speed control; bit 4 = Reserved; bit 5 = Safe reference active; bit 6 = Last speed active; bit 7 = Reserved; bit 8 = Emergency stop failed; bit 9 = Reserved; bit 10 = Above limit; bit 13 = Start delay active | ||||
| HR | 617doc 400618 | 06.18 Start inhibit status word | Shows why a start is being refused. | BITMAP16 | Read | bit 0 = Not ready run; bit 1 = Ctrl location changed; bit 2 = SSW inhibit; bit 3 = Fault reset; bit 4 = Start interlocked; bit 5 = Run permissive missing; bit 6 = Reserved; bit 7 = STO active; bit 8 = Current calibration ended; bit 9 = ID run ended; bit 10 = Reserved; bit 11 = Em Off1; bit 12 = Em Off2; bit 13 = Em Off3; bit 14 = Auto reset inhibit; bit 15 = Reserved | |||
| HR | 5813doc 405814 | 58.14 Communication loss action | Reaction to EFB communication loss. | UINT16 | Read/write | 0 = No action; 1 = Fault; 2 = Last speed; 3 = Speed ref safe; 4 = Fault always; 5 = Warning | |||
| HR | 5814doc 405815 | 58.15 Communication loss mode | Which messages reset the comm-loss timer. | UINT16 | Read/write | 1 = Any message; 2 = Cw / Ref1 / Ref2 | |||
| HR | 5815doc 405816 | 58.16 Communication loss time | EFB comm-loss timeout (0-6000 s). | UINT16 | s | Read/write | |||
| HR | 20201doc 420202 | 01.01 Motor speed used (32-bit) | Estimated motor speed; CDAB assumes 58.34 = LO-HI (default). | INT32 | CDAB | × 0.01 | rpm | Read | |
| HR | 20211doc 420212 | 01.06 Output frequency (32-bit) | Estimated output frequency; CDAB assumes 58.34 = LO-HI (default). | INT32 | CDAB | × 0.01 | Hz | Read | |
| HR | 20213doc 420214 | 01.07 Motor current (32-bit) | Measured motor current; CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | × 0.01 | A | Read | |
| HR | 20219doc 420220 | 01.10 Motor torque (32-bit) | Percent of nominal motor torque; CDAB assumes 58.34 = LO-HI (default). | INT32 | CDAB | × 0.1 | % | Read | |
| HR | 20221doc 420222 | 01.11 DC voltage (32-bit) | CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | × 0.01 | V | Read | |
| HR | 20227doc 420228 | 01.14 Output power (32-bit) | Unit follows 96.16 Unit selection (kW or hp); CDAB assumes 58.34 = LO-HI (default). | INT32 | CDAB | × 0.01 | kW | Read | |
| HR | 20307doc 420308 | 01.54 Cumulative inverter energy (32-bit) | Signed total energy through the drive; CDAB assumes 58.34 = LO-HI (default). | INT32 | CDAB | kWh | Read | ||
| HR | 20343doc 420344 | 01.72 U-phase RMS current (32-bit) | CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | × 0.01 | A | Read | |
| HR | 20345doc 420346 | 01.73 V-phase RMS current (32-bit) | CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | × 0.01 | A | Read | |
| HR | 20347doc 420348 | 01.74 W-phase RMS current (32-bit) | CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | × 0.01 | A | Read | |
| HR | 21005doc 421006 | 05.03 Hours run (32-bit) | Motor run time in hours; CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | × 0.1 | h | Read |
Notes on this map
- Registers 400001-400006 are the factory defaults of Data I/O 1-6 (58.101-58.106) and can be re-pointed; 400007-400014 are user-selectable via 58.107-58.114 and are not listed.
- Control and status word bits are shown for the ABB Drives profile (58.25 = 0, default). With the DCU profile (58.25 = 5) the words are passed through unconverted with a different bit layout (bit 0 STOP, bit 1 START, bit 2 REVERSE, bit 4 RESET...).
- Reference/actual registers are signed 16-bit; 20000 corresponds to the value of 46.01 Speed scaling or 46.02 Frequency scaling (46.03 torque, 46.04 power), so their engineering value depends on drive settings and is left unscaled here.
- 32-bit registers use 58.34 Word order; the default LO-HI sends the low word first (CDAB). If 58.34 is set to HI-LO the order becomes ABCD. Within each register the high byte is sent first.
- 16-bit parameter scaling is the manual's FbEq16 column (e.g. '10 = 1 V' -> scale 0.1). Parameters whose 16-bit scaling is 'See par. 46.xx' (01.01 speed, 01.06 frequency, 01.07 current, 01.10 torque, 01.14 power, 01.72-01.74 phase currents) are listed only in their 32-bit form, which has a fixed FbEq32 scaling.
- Left out: 01.50-01.53 hour/day kWh logs and 05.03 in 16-bit form (ranges exceed 16 bits), 05.20-05.22 diagnostic words (bit lists not fully captured), group 46 scaling parameters and all configuration parameters other than the comm-loss settings.
- Coils (CW bits) and discrete inputs (SW bits, DI status) also exist but are omitted: the manual's wording on how their 1-based references map to wire addresses is ambiguous.
- ACH580 has no jogging: control-word bits 8-9 are reserved (unlike the ACS580).
- 01.66 16-bit scaling is 10 = 1% in the ACH580 manual (the ACS580 manual lists 1 = 1%).
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 ACH580 HVAC drive (embedded Modbus RTU)
What Modbus registers does the ABB ACH580 HVAC drive (embedded Modbus RTU) have?
This map lists 58 registers: 58 holding registers. 7 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the ABB ACH580 HVAC drive (embedded Modbus RTU) Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers Modicon 3xxxx/4xxxx (drop the prefix, subtract 1). 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. The manual prints holding registers as 6-digit references and maps 400001-465536 onto the 65536-register address field, so 400001 = wire address 0 (its setup table also pairs the parameter range with addresses 100-65535). Masters limited to 5 digits can use 40001-49999 for 400001-409999; 32-bit parameter registers (420000+) need 6-digit or raw addressing. With 58.33 Addressing mode = Mode 0 (default) a 16-bit parameter gg.ii sits at 400000 + 100*gg + ii (e.g. 01.11 -> 400111, wire 110) and a 32-bit copy at 420000 + 200*gg + 2*ii (e.g. 01.07 -> 420214, wire 20213). Mode 1 uses 400000 + 256*gg + ii and Mode 2 uses 400000 + 512*gg + 2*ii; this map assumes Mode 0. All 32-bit registers are listed CDAB, which assumes 58.34 Word order = LO-HI, the default.
What byte order does the ABB ACH580 HVAC drive (embedded Modbus RTU) use for 32-bit values?
Multi-register values in this map use CDAB (low word first (word-swapped)). 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 ACH580 HVAC drive (embedded Modbus RTU)?
Start with HR 0 Control word (EFB CW) (Control word: start/stop/reset); HR 1 Reference 1 (EFB Ref1) (Reference 1 (speed/frequency setpoint, 20000 = 46.01/46.02)); HR 3 Status word (EFB SW) (Status word: ready/running/fault/remote); HR 4 Actual value 1 (EFB Act1) (Actual value 1 (speed/frequency feedback)); HR 110 01.11 DC voltage (01.11 DC voltage); HR 400 04.01 Tripping fault (04.01 Tripping fault code); HR 20211 01.06 Output frequency (32-bit) (01.06 Output frequency, 0.01 Hz (32-bit)); HR 20213 01.07 Motor current (32-bit) (01.07 Motor current, 0.01 A (32-bit)).
How do I enable Modbus control of the ABB ACH580 HVAC drive (embedded Modbus RTU)?
Set 58.01 Protocol enable = Modbus RTU, then 58.03 node address, 58.04 baud and 58.05 parity, and apply them with 58.06 Communication control = Refresh settings (or power-cycle). For control set 20.01 Ext1 commands (and 20.06 for EXT2) = Embedded fieldbus and the reference source, e.g. 22.11 Ext1 speed ref1 or 28.11 Ext1 frequency ref1 = EFB ref1. Every start/stop control-word value in the manual sets bit 10 (REMOTE_CMD); the manual's own description of that bit is truncated. Save parameter writes permanently with 96.07 Parameter save manually.
What happens when the ABB ACH580 HVAC drive (embedded Modbus RTU) loses Modbus communication?
58.14 Communication loss action (default No action; options No action / Fault / Last speed / Speed ref safe / Fault always / Warning) with 58.16 Communication loss time (0-6000 s, default 30.0 s) and 58.15 Communication loss mode (any message, or only control word/reference writes, resets the timer). A loss trips 6681 EFB comm loss or warns A7CE; 'Speed ref safe' runs at 22.41/28.41. There is a 30 s boot-up delay before monitoring starts.
Where is the official ABB ACH580 HVAC drive (embedded Modbus RTU) Modbus documentation?
The source is ACH580 HVAC control program firmware manual (3AXD50000027537 Rev J), revision 2026-02-23, published free by ABB at https://search.abb.com/library/Download.aspx?DocumentID=3AXD50000027537&LanguageCode=en&DocumentPartId=1&Action=Launch.
More ABB Modbus register maps
- Variable frequency drive
ABB ACQ580 water and wastewater drive (embedded Modbus RTU)
ACQ580 drives running the ACQ580 pump control program, embedded fieldbus (EFB) Modbus RTU, addressing mode 0 (default); firmware manual 3AXD50000035867 Rev H.
Also known as: ACQ580-01, ACQ580-04, ACQ580-07, ACQ580-31, ACQ580-34, ACQ580 pump control program - Variable frequency drive
ABB ACS355 machinery drive (embedded Modbus RTU)
ACS355 drives with firmware 5.110 or later using the embedded fieldbus (Modbus RTU) over an FMBA-01 adapter on terminal X3 (EIA-485) or the panel port (RS-232).
Also known as: ACS355-01E, ACS355-03E, ACS355-01U, ACS355-03U, ACS355 with FMBA-01 - Variable frequency drive
ABB ACS480 general purpose drive (embedded Modbus RTU)
ACS480 drives running the ACS480 standard control program, embedded fieldbus (EFB) Modbus RTU, addressing mode 0 (default); firmware manual 3AXD50000047399 Rev G.
Also known as: ACS480-04, ACS480 standard control program - Variable frequency drive
ABB ACS580 general purpose drive (embedded Modbus RTU)
ACS580 drives running the ACS580 standard control program, embedded fieldbus (EFB) Modbus RTU, addressing mode 0 (default).
Also known as: ACS580-01, ACS580-04, ACS580-07, ACS580 standard control program - Variable frequency drive
ABB ACS880 industrial drive, primary control program (embedded Modbus RTU)
ACS880 drives running the primary control program (AINLX) 3.4x or later, embedded fieldbus (EFB) Modbus RTU on terminal XD2D, 58.33 Addressing mode = Mode 0 (default).
Also known as: ACS880-01, ACS880-04, ACS880-07, ACS880-11, ACS880-17, ACS880-31, ACS880-37, AINLX, ACS880 primary control program - Energy meter
ABB EQ meter B21 (Modbus RTU)
ABB EQ B21 single-phase 65 A DIN meter with the RS485 interface set to Modbus.
Also known as: B21, EQ B21 - Energy meter
ABB EQ meter B23 / B24 (Modbus RTU)
ABB EQ B23 (direct, 65 A) and B24 (CT-connected) three-phase DIN meters fitted with the RS485 interface set to Modbus.
Also known as: B23, B24, EQ B23, EQ B24 - Power meter (network analyzer)
ABB M4M 20 / M4M 30 network analyzer
ABB M4M 20 and M4M 30 network analyzers, Modbus RTU and Modbus TCP versions, map v1.3O; items marked M4M 30 only are absent on M4M 20.
Also known as: M4M 20, M4M 30, M4M 20 Modbus, M4M 30 Modbus, M4M 20 Ethernet, M4M 30 Ethernet, M4M 20 I/O, M4M 30 I/O, M4M 2X, M4M 30-M, M4M 32
Source: ACH580 HVAC control program firmware manual · 3AXD50000027537 Rev J · rev. 2026-02-23. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.