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.
Windows 10/11 · Modbus RTU & TCP · one-time license
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.
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.
⚠ 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.
Configure the embedded fieldbus in parameter group 58 (XD2D terminals), set 58.06 to Refresh, then match the same settings in ModbusManager.
| Setting | Typical 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 codes | 03 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.
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.
| Register | Function | Access | Notes |
|---|---|---|---|
| 40001 | Control Word | R/W | Start/stop/reset bits (ABB Drives profile) |
| 40002 | Reference 1 | R/W | Speed/frequency setpoint, 20000 = 100% |
| 40003 | Reference 2 | R/W | Second reference (e.g. torque), if used |
| 40004 | Status Word | R | Ready/running/fault bits |
| 40005 | Actual Value 1 | R | Mapped via par. 58.101+ (EFB data I/O) (e.g. output freq) |
| 40006 | Actual Value 2 | R | Mapped via par. 53.11 (e.g. current) |
| 40007–40012 | Actual Values 3–8 | R | Mapped via par. 53.12–53.17 |
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.
The ABB Drives control word at 40001 needs a short bit sequence to bring the drive from stopped to running.
| Step | Write to 40001 | Effect |
|---|---|---|
| 1 | 0x0476 | Prepare: ready-on, no run yet |
| 2 | 0x047F | Run: drive accelerates to the reference |
| 3 | 0x0476 | Stop (ramp down) — clears the run bit |
| Fault | 0x0480 (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.
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.
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.
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.
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.
We use Google Analytics cookies to see how the site is used. You can accept or decline — declining keeps analytics off. See our Privacy Policy.