Easy Modbus
  1. Home
  2. Modbus register maps
  3. ABB
  4. ACS580 general purpose drive (embedded Modbus RTU)

Variable frequency drive · Modbus register map

ABB ACS580 general purpose drive (embedded Modbus RTU) Modbus register map

Updated 16 October 2026

Short answer

ABB's general purpose 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 ACS580 general purpose 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
ACS580 general purpose 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
ACS580 standard control program, manual revision J
Also known as
ACS580-01, ACS580-04, ACS580-07, ACS580 standard control program
Source document
ACS580 standard control program firmware manual · 3AXD50000016097 Rev J · rev. 2025-10-01
Download CSV all columns JSON Manufacturer PDF ↗

Integration notes: ABB ACS580 general purpose drive (embedded Modbus RTU)

Integration in brief

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.

RegisterNameTypeWhyAccess
HR 0Control word (EFB CW)BITMAP16Control word: start/stop/resetRead/write
HR 1Reference 1 (EFB Ref1)INT16Reference 1 (speed/frequency setpoint, 20000 = 46.01/46.02)Read/write
HR 3Status word (EFB SW)BITMAP16Status word: ready/running/fault/remoteRead
HR 4Actual value 1 (EFB Act1)INT16Actual value 1 (speed/frequency feedback)Read
HR 11001.11 DC voltageUINT1601.11 DC voltageRead
HR 40004.01 Tripping faultUINT1604.01 Tripping fault codeRead
HR 2021101.06 Output frequency (32-bit)INT32 CDAB01.06 Output frequency, 0.01 Hz (32-bit)Read
HR 2021301.07 Motor current (32-bit)UINT32 CDAB01.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 (No action / Fault / Last speed / Speed ref safe / Fault always / Warning) with 58.16 Communication loss time (0-6000 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

Network setup

Watch out for

ABB ACS580 general purpose 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.

58 of 58 shown
ABB ACS580 general purpose drive (embedded Modbus RTU) Modbus register map
TableAddressNameDescriptionTypeOrderScaleUnitsAccessValues / bits
HR0doc 400001Control word (EFB CW)ABB Drives profile bits shown; DCU profile layout differs (58.25).BITMAP16Read/writebit 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 = JOGGING_1: 1 = run at jogging speed 1; bit 9 = JOGGING_2: 1 = run at jogging speed 2; 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
HR1doc 400002Reference 1 (EFB Ref1)Signed; 20000 = value of 46.01/46.02 scaling, type per 58.26.INT16Read/write
HR2doc 400003Reference 2 (EFB Ref2)Signed second reference; type and scaling per 58.27.INT16Read/write
HR3doc 400004Status word (EFB SW)ABB Drives profile bits shown; DCU profile layout differs (58.25).BITMAP16Readbit 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
HR4doc 400005Actual value 1 (EFB Act1)Signed; 20000 = value of 46.01/46.02, type per 58.28.INT16Read
HR5doc 400006Actual value 2 (EFB Act2)Signed second actual value; type per 58.29 (default transparent).INT16Read
HR89doc 400090Reset error registersWrite 1 to clear error registers 400091-400095.UINT16Read/write0 = Do nothing; 1 = Reset
HR90doc 400091Error function codeFunction code of the last failed query.UINT16Read
HR91doc 400092Error codeDetail code when exception 04h was returned.UINT16Read0 = No error; 2 = Low/High limit exceeded; 3 = Faulty index (array parameter); 5 = Incorrect data type; 101 = General error (65h)
HR92doc 400093Failed registerLast register that failed to read or write.UINT16Read
HR93doc 400094Last register written successfullyUINT16Read
HR94doc 400095Last register read successfullyUINT16Read
HR102doc 40010301.03 Motor speed %Motor speed in percent of synchronous speed.INT16× 0.1%Read
HR107doc 40010801.08 Motor current % of motor nomUINT16%Read
HR108doc 40010901.09 Motor current % of drive nomUINT16%Read
HR110doc 40011101.11 DC voltageMeasured DC link voltage.UINT16× 0.1VRead
HR112doc 40011301.13 Output voltageCalculated motor voltage (AC).UINT16VRead
HR114doc 40011501.15 Output power % of motor nomINT16× 0.1%Read
HR117doc 40011801.18 Inverter GWh counterWhole GWh through the drive; combine with 01.19 and 01.20.UINT16GWhRead
HR118doc 40011901.19 Inverter MWh counterWhole MWh, rolls over into 01.18.UINT16MWhRead
HR119doc 40012001.20 Inverter kWh counterkWh part (0-1000), rolls over into 01.19.UINT16× 0.1kWhRead
HR123doc 40012401.24 Flux actual %UINT16%Read
HR161doc 40016201.62 Abs motor speed %UINT16× 0.1%Read
HR164doc 40016501.65 Abs output powerUINT16kWRead
HR165doc 40016601.66 Abs output power % motor nomUINT16%Read
HR400doc 40040104.01 Tripping faultHex code of the fault that caused the trip; 0 = none.UINT16Read
HR401doc 40040204.02 Active fault 2UINT16Read
HR402doc 40040304.03 Active fault 3UINT16Read
HR405doc 40040604.06 Active warning 1Hex code of the first active warning.UINT16Read
HR406doc 40040704.07 Active warning 2UINT16Read
HR407doc 40040804.08 Active warning 3UINT16Read
HR410doc 40041104.11 Latest faultMost recent stored (non-active) fault code.UINT16Read
HR411doc 40041204.12 2nd latest faultUINT16Read
HR412doc 40041304.13 3rd latest faultUINT16Read
HR415doc 40041604.16 Latest warningMost recent stored warning code.UINT16Read
HR500doc 40050105.01 On-time counterDays the drive has been powered.UINT16daysRead
HR501doc 40050205.02 Run-time counterDays the inverter has been modulating.UINT16daysRead
HR503doc 40050405.04 Fan on-time counterCooling fan running time.UINT16daysRead
HR510doc 40051105.11 Inverter temperatureDrive temperature as percent of fault limit.INT16%Read
HR600doc 40060106.01 Main control wordDrive-internal control word actually in use.BITMAP16Readbit 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 = Inching 1; bit 9 = Inching 2; 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
HR610doc 40061106.11 Main status wordBITMAP16Readbit 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; bit 11 = User bit 0; bit 12 = User bit 1; bit 13 = User bit 2; bit 14 = User bit 3; bit 15 = Reserved
HR615doc 40061606.16 Drive status word 1BITMAP16Readbit 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
HR616doc 40061706.17 Drive status word 2BITMAP16Readbit 0 = Identification run done; bit 1 = Magnetized; bit 2 = Torque control; 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 = Jogging active; bit 10 = Above limit; bit 13 = Start delay active
HR617doc 40061806.18 Start inhibit status wordShows why a start is being refused.BITMAP16Readbit 0 = Not ready run; bit 1 = Ctrl location changed; bit 2 = SSW inhibit; bit 3 = Fault reset; bit 4 = Lost start enable; bit 5 = Lost run enable; 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 = Jogging active
HR5813doc 40581458.14 Communication loss actionReaction to EFB communication loss.UINT16Read/write0 = No action; 1 = Fault; 2 = Last speed; 3 = Speed ref safe; 4 = Fault always; 5 = Warning
HR5814doc 40581558.15 Communication loss modeWhich messages reset the comm-loss timer.UINT16Read/write1 = Any message; 2 = Cw / Ref1 / Ref2
HR5815doc 40581658.16 Communication loss timeEFB comm-loss timeout (0-6000 s).UINT16sRead/write
HR20201doc 42020201.01 Motor speed used (32-bit)Estimated motor speed; CDAB assumes 58.34 = LO-HI (default).INT32CDAB× 0.01rpmRead
HR20211doc 42021201.06 Output frequency (32-bit)Estimated output frequency; CDAB assumes 58.34 = LO-HI (default).INT32CDAB× 0.01HzRead
HR20213doc 42021401.07 Motor current (32-bit)Measured motor current; CDAB assumes 58.34 = LO-HI (default).UINT32CDAB× 0.01ARead
HR20219doc 42022001.10 Motor torque (32-bit)Percent of nominal motor torque; CDAB assumes 58.34 = LO-HI (default).INT32CDAB× 0.1%Read
HR20221doc 42022201.11 DC voltage (32-bit)CDAB assumes 58.34 = LO-HI (default).UINT32CDAB× 0.01VRead
HR20227doc 42022801.14 Output power (32-bit)Unit follows 96.16 Unit selection (kW or hp); CDAB assumes 58.34 = LO-HI (default).INT32CDAB× 0.01kWRead
HR20307doc 42030801.54 Cumulative inverter energy (32-bit)Signed total energy through the drive; CDAB assumes 58.34 = LO-HI (default).INT32CDABkWhRead
HR20343doc 42034401.72 U-phase RMS current (32-bit)CDAB assumes 58.34 = LO-HI (default).UINT32CDAB× 0.01ARead
HR20345doc 42034601.73 V-phase RMS current (32-bit)CDAB assumes 58.34 = LO-HI (default).UINT32CDAB× 0.01ARead
HR20347doc 42034801.74 W-phase RMS current (32-bit)CDAB assumes 58.34 = LO-HI (default).UINT32CDAB× 0.01ARead
HR21005doc 42100605.03 Hours run (32-bit)Motor run time in hours; CDAB assumes 58.34 = LO-HI (default).UINT32CDAB× 0.1hRead

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 ACS580 general purpose drive (embedded Modbus RTU)

What Modbus registers does the ABB ACS580 general purpose 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 ACS580 general purpose 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 ACS580 general purpose 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 ACS580 general purpose 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 ACS580 general purpose 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 ACS580 general purpose drive (embedded Modbus RTU) loses Modbus communication?

58.14 Communication loss action (No action / Fault / Last speed / Speed ref safe / Fault always / Warning) with 58.16 Communication loss time (0-6000 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 ACS580 general purpose drive (embedded Modbus RTU) Modbus documentation?

The source is ACS580 standard control program firmware manual (3AXD50000016097 Rev J), revision 2025-10-01, published free by ABB at https://search.abb.com/library/Download.aspx?DocumentID=3AXD50000016097&LanguageCode=en&DocumentPartId=1&Action=Launch.

More ABB Modbus register maps

Source: ACS580 standard control program firmware manual · 3AXD50000016097 Rev J · rev. 2025-10-01. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.