// Device guide — ABB drives

ABB ACS880
Modbus RTU Guide

Read and control an ABB ACS880 industrial drive over Modbus RTU — either through the embedded fieldbus on the drive’s XD2D port (parameter group 58, no extra hardware) or via the optional FSCA-01 adapter. This guide covers the ABB Drives profile: control word, status word, references and actual values, and how to test it all with ModbusManager on Windows, without a PLC or Drive Composer.

Download monitoring workspace Get ModbusManager Pro

Windows 10/11 · Modbus RTU & TCP · one-time license

// why Modbus on the ACS880

Embedded fieldbus on the XD2D port

The ACS880 is ABB’s all-compatible industrial drive family — wall-mounted ACS880-01, module ACS880-04, cabinet ACS880-07 and the regenerative -11/-31 variants all run the same firmware and the same parameter structure. For Modbus RTU you have two routes: the embedded fieldbus (EFB), which repurposes the drive-to-drive XD2D connector on the ZCU control unit and is configured entirely in parameter group 58 with no extra hardware, or the optional FSCA-01 adapter (+K458), configured in groups 50–53, when you want a galvanically isolated dedicated port. Either way the drive becomes a Modbus slave you can read and control directly — useful for commissioning, fault-finding and HMI integration. The register interface is the same ABB Drives profile used across the ACS family, so if you know the ACS580 you already know this.

// free download

Read-only monitoring workspace

A free ModbusManager Pro workspace that only reads the ACS880 — status word, output frequency and motor current — with ready/running/fault lamps on a dashboard. It writes nothing, so it cannot start the motor. The workspace polls holding registers from 40004 read-only (FC03), decodes the status word into ready / running / fault indicators and scales the actual values. Set your drive’s slave address and connection, and you see its state at a glance.

Download ACS880 workspace

⚠ The actual-value registers (40005+) and their scaling depend on the drive’s EFB data I/O mapping (parameters 58.101+). The workspace assumes a typical mapping (frequency, current) — verify against your drive and adjust the gains if values look off. Open via File › Open Workspace in ModbusManager Pro.

// connection settings

Modbus settings

Configure the embedded fieldbus in parameter group 58 (XD2D terminals), set 58.06 to Refresh, then match the same settings in ModbusManager.

SettingTypical value
Protocol (par. 58.01)Modbus RTU on the XD2D (D2D) connector, RS-485
Command source (groups 19/20)Embedded fieldbus (EFB) for start/stop and reference
Node address (par. 58.03)1–247 (default 1)
Baud rate (par. 58.04)19.2 kbps default (9.6–115.2 selectable)
Parity / stop bits (par. 58.05)8 EVEN 1 default (match both ends)
Function codes03 read, 06 / 16 write
Profile (par. 58.25)ABB Drives (or Transparent)
Apply changes (par. 58.06)Set to Refresh after every group 58 change

Using the FSCA-01 adapter (+K458) instead? The same ABB Drives profile applies, but configuration moves to groups 50–53: 50.01 FBA A enable, 51.02 protocol, 51.03 station ID, 51.04 baud, 51.05 parity, then 51.27 Refresh.

// register map

ABB Drives profile registers

The core control and feedback registers in the ABB Drives profile. All are 16-bit holding registers, read with FC03 and written with FC06/FC16.

RegisterFunctionAccessNotes
40001Control WordR/WStart/stop/reset bits (ABB Drives profile)
40002Reference 1R/WSpeed/frequency setpoint, 20000 = 100%
40003Reference 2R/WSecond reference (e.g. torque), if used
40004Status WordRReady/running/fault bits
40005Actual Value 1RMapped via par. 58.101+ (EFB data I/O) (e.g. output freq)
40006Actual Value 2RMapped via par. 53.11 (e.g. current)
40007–40012Actual Values 3–8RMapped via par. 53.12–53.17
Tip: the actual-value registers (40005+) are user-mapped. Set par. 58.101+ (EFB data I/O)–53.17 to the drive parameters you want to read — e.g. 01.06 Output frequency, 01.07 Motor current, 01.10 Motor torque.

ABB also supports direct parameter access: register number = parameter number with a leading digit, e.g. parameter 01.06 maps to a register near 40106 in 16-bit mode. The exact mapping and 16/32-bit behaviour depend on par. 58.33 addressing mode — always confirm against the firmware manual for your drive.

// starting the drive

Control word sequence

The ABB Drives control word at 40001 needs a short bit sequence to bring the drive from stopped to running.

StepWrite to 40001Effect
10x0476Prepare: ready-on, no run yet
20x047FRun: drive accelerates to the reference
30x0476Stop (ramp down) — clears the run bit
Fault0x0480 (rising edge of bit 7)Fault reset

Important: the master must keep sending the control word and reference periodically (every 200–500 ms). If transmission stops, the ACS880 trips fault 6681 (communication loss). Use ModbusManager’s periodic write to hold the run command alive.

// quick start

Test an ACS880 in three steps

1

Wire the XD2D port

Connect your USB-RS485 adapter to the XD2D terminals (B, A, BGND) on the ZCU control unit. In group 58 set 58.01 = Modbus RTU, note 58.03/58.04/58.05, then set 58.06 = Refresh. With an FSCA-01, wire its X1 terminals instead.

2

Connect and poll

ModbusManager › Connect › RTU: pick the COM port and match the drive — 19200 baud, 8E1 by default. Poll FC03 from register 40001, quantity 10: control word, references, status word and actual values appear live.

3

Monitor safely

Load the read-only workspace above for a dashboard with ready/running/fault lamps — it never writes the control word. When you do want to test control, use the control-word sequence documented above with the motor safely decoupled.

// why modbusmanager

A practical tool for ABB drives

ModbusManager reads and writes any ACS880 register directly, with periodic writes to hold the control word alive and a serial monitor to see every frame. The Standard edition ($49) covers polling, writing and the serial monitor — enough to start, stop and monitor a drive. The Pro edition ($119) adds a drag-and-drop dashboard, a data logging Historian with CSV export, and an alarm system — all running locally on Windows, with no SCADA server or cloud account.

// common questions

ABB ACS880 Modbus — FAQ

Does the ACS880 have Modbus built in, or do I need an adapter?+
Both options exist. The embedded fieldbus (EFB) runs Modbus RTU on the XD2D drive-to-drive connector of the ZCU control unit — configured in group 58, no extra hardware. The FSCA-01 adapter (+K458) is the optional route when you want a dedicated, galvanically isolated RS-485 port; it is configured in groups 50–53 instead.
My group 58 changes don’t take effect — why?+
Group 58 settings are only applied after you set parameter 58.06 to Refresh. Change the node address, baud or profile, then refresh — the EFB restarts with the new settings.
Which registers hold the actual values (speed, current)?+
Registers 40005 onward are mapped through the EFB data I/O parameters 58.101–58.124. A typical mapping puts motor speed (par. 1.1), current (1.7) and DC voltage (1.11) there as 16-bit words, but it is configurable — check your drive’s 58.1xx settings and scale accordingly (e.g. speed scaling via 46.01).
Is the register layout the same as the ACS580?+
Yes — both use the ABB Drives profile: 40001 control word, 40002/40003 references, 40004 status word, 40005+ actual values. Group 58 configuration is also near-identical. The differences are physical (ACS880 EFB uses the XD2D connector) and in the data I/O mapping parameters. Our ACS580 guide covers the smaller sibling.
Can I start the drive accidentally while polling?+
Not by reading. FC03 polling is passive. The drive only acts when you write the control word (40001) with a valid start sequence while the command source is set to EFB — and the monitoring workspace on this page deliberately contains no write polls.
Does this apply to ACS880-04 and -07 sizes too?+
Yes. ACS880-01, -04, -07, -11, -31 and the multidrive variants share the primary control program, so group 58 EFB, the FSCA-01 option and the ABB Drives profile registers are the same across the family.