ABB ACS580 Modbus register map

General-purpose AC drive from ABB with a standard control program. The embedded fieldbus interface speaks Modbus RTU over EIA-485 and gives access to control and status words, two references, two actual values, and every drive parameter through a mapped register range.

Protocol
Modbus RTU (embedded fieldbus, EIA-485)
Defaults
Node address 1, 19.2 kbit/s, 8 data bits with even parity and 1 stop bit, ABB Drives control profile, addressing mode 0, word order low word first (p. 572-573). Settings in group 58 take effect after a reboot or after parameter 58.06 is set to Refresh settings.
Addresses in the manual
Modicon style numbers (for example 40001 is holding register 0)
32 and 64-bit values
Low word first (CD AB)
Registers listed
66
Checked against
3AXD50000016097 Rev J, effective 2025-10-01

Address base. The manual prints holding registers with six digits from 400001 to 465536, where 400001 is the first register, so the wire address is the printed number minus 400001 (p. 576, p. 591). Parameters are mapped into the 400101 to 465536 range by parameter 58.33: in mode 0 a 16-bit parameter sits at 400000 + 100 x group + index and a 32-bit parameter at 420000 + 200 x group + 2 x index (p. 442). Coil and discrete input references are not listed here because the manual's wording on their wire address is ambiguous. For example 400001 in the manual (Control word (default Data I/O 1)) is address 0 on the wire.

Word order. Applies to the 32-bit parameter registers. Parameter 58.34 selects the order: low word first is the default, high word first is the alternative; bytes inside each register are high byte first (p. 442).

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

66 registers
Manual Wire Register Type Regs Unit Scale Access Area
400001 0 Control word (default Data I/O 1)ControlWord · ABB Drives profile bit layout on p. 579 (OFF1, OFF2, OFF3, inhibit operation, ramp controls, reset on rising edge of bit 7, jogging, remote command, EXT1/EXT2 select, four user bits). The source of this register can be remapped with parameter 58.101. bitfield16 1 1 RW Holding (FC03)
400002 1 Reference 1 (default Data I/O 2)Reference1 · Scaled by the type chosen in 58.26: 20000 corresponds to 46.01 speed scaling or 46.02 frequency scaling, 10000 to 46.03 torque scaling or 46.04 power scaling; negative values are two's complement (p. 589). int16 1 1 RW Holding (FC03)
400003 2 Reference 2 (default Data I/O 3)Reference2 · Scaled by the type chosen in 58.27, same scale points as reference 1 (p. 589). int16 1 1 RW Holding (FC03)
400004 3 Status word (default Data I/O 4)StatusWord · ABB Drives profile bit layout on p. 583 (ready on, ready run, ready ref, tripped, OFF2 and OFF3 status, switch-on inhibited, alarm, at setpoint, remote, above limit, four user bits). bitfield16 1 1 R Holding (FC03)
400005 4 Actual value 1 (default Data I/O 5)ActualValue1 · Scaled by the type chosen in 58.28: 20000 corresponds to 46.01 speed scaling or 46.02 frequency scaling, 10000 to 46.03 torque or 46.04 power scaling (p. 590). int16 1 1 R Holding (FC03)
400006 5 Actual value 2 (default Data I/O 6)ActualValue2 · Scaled by the type chosen in 58.29, same scale points as actual value 1 (p. 590). int16 1 1 R Holding (FC03)
400090 89 Reset error registersErrorReset · Write 1 to clear the internal error registers 400091 to 400095. uint16 1 1 RW Holding (FC03)
400091 90 Function code of the last failed queryErrorFunctionCode uint16 1 1 R Holding (FC03)
400092 91 Error code after a device failure exceptionErrorCode · Values: 0 no error, 2 limit exceeded, 3 bad array index, 5 wrong data type, 101 general error (hex 65). uint16 1 1 R Holding (FC03)
400093 92 Last register that failed to read or writeErrorFailedRegister uint16 1 1 R Holding (FC03)
400094 93 Last register written successfullyLastRegisterWritten uint16 1 1 R Holding (FC03)
400095 94 Last register read successfullyLastRegisterRead uint16 1 1 R Holding (FC03)
400101 100 Motor speed used (01.01)MotorSpeedUsed · Parameter 01.01 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.01 (speed scaling), so the raw value is not rpm unless that parameter is set accordingly. int16 1 rpm 1 R Holding (FC03)
400103 102 Motor speed percent of synchronous speed (01.03)MotorSpeedPercent · Parameter 01.03 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 10 = 1%. int16 1 % 0.1 R Holding (FC03)
400106 105 Output frequency (01.06)OutputFrequency · Parameter 01.06 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.02 (frequency scaling). int16 1 Hz 1 R Holding (FC03)
400107 106 Motor current (01.07)MotorCurrent · Parameter 01.07 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.05 (current scaling). uint16 1 A 1 R Holding (FC03)
400108 107 Motor current percent of nominal motor current (01.08)MotorCurrentPctMotor · Parameter 01.08 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 1 = 1%. uint16 1 % 1 R Holding (FC03)
400109 108 Motor current percent of nominal drive current (01.09)MotorCurrentPctDrive · Parameter 01.09 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 1 = 1%. uint16 1 % 1 R Holding (FC03)
400110 109 Motor torque percent of nominal (01.10)MotorTorque · Parameter 01.10 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.03 (torque scaling). int16 1 % 1 R Holding (FC03)
400111 110 DC link voltage (01.11)DCVoltage · Parameter 01.11 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 10 = 1 V. uint16 1 V 0.1 R Holding (FC03)
400113 112 Output voltage (01.13)OutputVoltage · Parameter 01.13 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 1 = 1 V. uint16 1 V 1 R Holding (FC03)
400114 113 Output power (01.14)OutputPower · Parameter 01.14 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.04 (power scaling); the unit depends on parameter 96.16. int16 1 kW 1 R Holding (FC03)
400115 114 Output power percent of nominal motor power (01.15)OutputPowerPctMotor · Parameter 01.15 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 10 = 1%. int16 1 % 0.1 R Holding (FC03)
400118 117 Inverter energy counter, GWh part (01.18)InverterGWh · Parameter 01.18 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 GWh 1 R Holding (FC03)
400119 118 Inverter energy counter, MWh part (01.19)InverterMWh · Parameter 01.19 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 MWh 1 R Holding (FC03)
400120 119 Inverter energy counter, kWh part (01.20)InverterkWh · Parameter 01.20 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 10 = 1 kWh. uint16 1 kWh 0.1 R Holding (FC03)
400124 123 Actual flux percent of nominal (01.24)FluxActualPct · Parameter 01.24 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 % 1 R Holding (FC03)
400131 130 Ambient temperature (01.31)AmbientTemperature · Parameter 01.31 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Only for frame sizes R6 or larger. The unit follows the unit selection (Celsius or Fahrenheit). int16 1 °C 1 R Holding (FC03)
400172 171 U-phase RMS current (01.72)CurrentPhaseU · Parameter 01.72 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.05 (current scaling). uint16 1 A 1 R Holding (FC03)
400173 172 V-phase RMS current (01.73)CurrentPhaseV · Parameter 01.73 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.05 (current scaling). uint16 1 A 1 R Holding (FC03)
400174 173 W-phase RMS current (01.74)CurrentPhaseW · Parameter 01.74 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.05 (current scaling). uint16 1 A 1 R Holding (FC03)
400401 400 Code of the active tripping fault (04.01)TrippingFault · Parameter 04.01 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 1 R Holding (FC03)
400402 401 Code of the second active fault (04.02)ActiveFault2 · Parameter 04.02 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 1 R Holding (FC03)
400403 402 Code of the third active fault (04.03)ActiveFault3 · Parameter 04.03 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 1 R Holding (FC03)
400406 405 Code of the first active warning (04.06)ActiveWarning1 · Parameter 04.06 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 1 R Holding (FC03)
400407 406 Code of the second active warning (04.07)ActiveWarning2 · Parameter 04.07 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 1 R Holding (FC03)
400408 407 Code of the third active warning (04.08)ActiveWarning3 · Parameter 04.08 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 1 R Holding (FC03)
400440 439 User-defined event word 1 (04.40)EventWord1 · Parameter 04.40 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Each bit shows the state of an event code chosen with parameters 04.41 to 04.71. bitfield16 1 1 R Holding (FC03)
400501 500 Power-on time counter (05.01)OnTimeDays · Parameter 05.01 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 d 1 R Holding (FC03)
400502 501 Motor run-time counter (05.02)RunTimeDays · Parameter 05.02 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 d 1 R Holding (FC03)
400504 503 Cooling fan on-time counter (05.04)FanOnTimeDays · Parameter 05.04 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). uint16 1 d 1 R Holding (FC03)
400510 509 Control board temperature (05.10)ControlBoardTemp · Parameter 05.10 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). The unit follows the unit selection (Celsius or Fahrenheit). int16 1 °C 1 R Holding (FC03)
400511 510 Inverter temperature percent of fault limit (05.11)InverterTempPct · Parameter 05.11 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 1 = 1%. int16 1 % 1 R Holding (FC03)
400520 519 Diagnostic word 1 (05.20)DiagnosticWord1 · Parameter 05.20 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). bitfield16 1 1 R Holding (FC03)
400521 520 Diagnostic word 2 (05.21)DiagnosticWord2 · Parameter 05.21 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). bitfield16 1 1 R Holding (FC03)
400522 521 Diagnostic word 3 (05.22)DiagnosticWord3 · Parameter 05.22 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). bitfield16 1 1 R Holding (FC03)
400601 600 Main control word as seen by the drive (06.01)MainControlWord · Parameter 06.01 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Read-only. When fieldbus control is used it can differ from the word the PLC sent. bitfield16 1 1 R Holding (FC03)
400611 610 Main status word (06.11)MainStatusWord · Parameter 06.11 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). bitfield16 1 1 R Holding (FC03)
400616 615 Drive status word 1 (06.16)DriveStatusWord1 · Parameter 06.16 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). bitfield16 1 1 R Holding (FC03)
400617 616 Drive status word 2 (06.17)DriveStatusWord2 · Parameter 06.17 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). bitfield16 1 1 R Holding (FC03)
400618 617 Start inhibit status word (06.18)StartInhibitWord · Parameter 06.18 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). bitfield16 1 1 R Holding (FC03)
402312 2311 Acceleration time 1 (23.12)AccelTime1 · Parameter 23.12 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 10 = 1 s. Time to go from zero to the speed in 46.01. uint16 1 s 0.1 RW Holding (FC03)
402313 2312 Deceleration time 1 (23.13)DecelTime1 · Parameter 23.13 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Printed scale is 10 = 1 s. Time to go from the speed in 46.01 to zero. uint16 1 s 0.1 RW Holding (FC03)
403011 3010 Minimum speed (30.11)MinimumSpeed · Parameter 30.11 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.01 (speed scaling), so the raw value is not rpm unless that parameter is set accordingly. int16 1 rpm 1 RW Holding (FC03)
403012 3011 Maximum speed (30.12)MaximumSpeed · Parameter 30.12 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Scaling follows parameter 46.01 (speed scaling), so the raw value is not rpm unless that parameter is set accordingly. int16 1 rpm 1 RW Holding (FC03)
405803 5802 Embedded fieldbus node address (58.03)EFB_NodeAddress · Parameter 58.03 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Values 1 to 247 are allowed. Takes effect after a reboot or a refresh through 58.06. uint16 1 1 RW Holding (FC03)
405804 5803 Embedded fieldbus baud rate (58.04)EFB_BaudRate · Parameter 58.04 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Enumeration: 0 autodetect, 1 = 4.8, 2 = 9.6, 3 = 19.2, 4 = 38.4, 5 = 57.6, 6 = 76.8, 7 = 115.2 kbit/s. Default 19.2 kbit/s. uint16 1 1 RW Holding (FC03)
405805 5804 Embedded fieldbus parity and stop bits (58.05)EFB_Parity · Parameter 58.05 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). Enumeration: 0 = 8N1, 1 = 8N2, 2 = 8E1, 3 = 8O1. Default 8E1. uint16 1 1 RW Holding (FC03)
405834 5833 Word order for 32-bit parameters (58.34)EFB_WordOrder · Parameter 58.34 read as a 16-bit value: register = 400000 + 100 x group + index (addressing mode 0, p. 442). 0 = high word first, 1 = low word first (default). uint16 1 1 RW Holding (FC03)
420202 20201 Motor speed used, 32-bit (01.01)MotorSpeedUsed_32 · Parameter 01.01 read as a 32-bit value over two registers: register = 420000 + 200 x group + 2 x index (addressing mode 0, p. 442). 32-bit scaling from p. 499. int32 2 rpm 0.01 R Holding (FC03)
420212 20211 Output frequency, 32-bit (01.06)OutputFrequency_32 · Parameter 01.06 read as a 32-bit value over two registers: register = 420000 + 200 x group + 2 x index (addressing mode 0, p. 442). 32-bit scaling from p. 499. int32 2 Hz 0.01 R Holding (FC03)
420214 20213 Motor current, 32-bit (01.07)MotorCurrent_32 · Parameter 01.07 read as a 32-bit value over two registers: register = 420000 + 200 x group + 2 x index (addressing mode 0, p. 442). 32-bit scaling from p. 499. uint32 2 A 0.01 R Holding (FC03)
420220 20219 Motor torque percent, 32-bit (01.10)MotorTorque_32 · Parameter 01.10 read as a 32-bit value over two registers: register = 420000 + 200 x group + 2 x index (addressing mode 0, p. 442). 32-bit scaling from p. 499. int32 2 % 0.1 R Holding (FC03)
420222 20221 DC link voltage, 32-bit (01.11)DCVoltage_32 · Parameter 01.11 read as a 32-bit value over two registers: register = 420000 + 200 x group + 2 x index (addressing mode 0, p. 442). 32-bit scaling from p. 499. uint32 2 V 0.01 R Holding (FC03)
420228 20227 Output power, 32-bit (01.14)OutputPower_32 · Parameter 01.14 read as a 32-bit value over two registers: register = 420000 + 200 x group + 2 x index (addressing mode 0, p. 442). 32-bit scaling from p. 499. int32 2 kW 0.01 R Holding (FC03)
420308 20307 Cumulative inverter energy, 32-bit (01.54)CumulativeEnergy_32 · Parameter 01.54 read as a 32-bit value over two registers: register = 420000 + 200 x group + 2 x index (addressing mode 0, p. 442). 32-bit scaling from p. 499. int32 2 kWh 1 R 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 CD AB.
  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: ACS580 standard control program firmware manual (library.e.abb.com)

3AXD50000016097 Rev J, effective 2025-10-01, p. 223-236, 315-316, 343, 436-442, 499, 569-598. 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 variable frequency drives

All register maps · Modbus addressing explained