- Home
- Modbus register maps
- ABB
- ACS880 industrial drive, primary control program (embedded Modbus RTU)
Variable frequency drive · Modbus register map
ABB ACS880 industrial drive, primary control program (embedded Modbus RTU) Modbus register map
Updated 25 October 2026
ABB's industrial variable frequency drive family. The control unit's XD2D RS-485 terminal can be switched from the drive-to-drive link to Modbus RTU, which puts a 16-bit control word, two references, a status word and two actual values in the first six holding registers and exposes every drive parameter as a holding register derived from its group and index. This map covers that cyclic block, the EFB error registers, key group 01/04/05/06 monitoring signals, the EFB diagnostics and comm-loss settings, and the main 32-bit actual values.
This page lists 64 Modbus registers for the ABB ACS880 industrial drive, primary control program (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
- ACS880 industrial drive, primary control program (embedded Modbus RTU)
- Equipment type
- Variable frequency drive
- Registers
- 64 (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
- ACS880 primary control program (AINLX) 3.4x or later
- Also known as
- ACS880-01, ACS880-04, ACS880-07, ACS880-11, ACS880-17, ACS880-31, ACS880-37, AINLX, ACS880 primary control program
Integration notes: ABB ACS880 industrial drive, primary control program (embedded Modbus RTU)
Set 58.01 = Modbus RTU, set node, baud and parity, apply with 58.06 = Refresh settings, then point 20.01 Ext1 commands and the speed or frequency reference source at the embedded fieldbus. Write the ABB Drives control word and Reference 1 at 400001/400002, poll the status word and actual values at 400004-400006, and read other signals straight from their parameter registers.
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 (20000 = 46.01/46.02 for speed/frequency) | 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 (feedback matching the Ref1 type) | 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 |
| HR 617 | 06.18 Start inhibit status word | BITMAP16 | 06.18 Start inhibit status word | Read |
Enable Modbus control & writes
Set 58.01 Protocol enable = Modbus RTU (this disables the drive-to-drive link on XD2D and cannot be changed while the drive runs), then 58.03 node address, 58.04 baud rate and 58.05 parity, and validate with 58.06 Communication control = Refresh settings or reboot the control unit. For control set 20.01 Ext1 commands (and 20.06 for EXT2) = Embedded fieldbus and the reference source, e.g. 22.11 Speed ref1 source or 28.11 Frequency ref1 source = EFB ref1. Fieldbus parameter writes are made permanent with 96.07 Parameter save manually = Save.
Communication loss & watchdog
58.14 Communication loss action (No / Fault / Last speed / Speed ref safe / Fault always / Warning) with 58.16 Communication loss time (default 3.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 for frequency). Apart from Fault always, it only acts when the EFB is the active control source or 58.36 forces supervision. Monitoring is held off for 30 s after power-up.
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. Bytes within each register are always high byte first.
- References and actual values are signed 16-bit scaled to the group 46 values, not engineering units; 58.26-58.29 pick the type (Ref2 and Act2 default to Torque).
- Start per the ABB Drives state diagram: write 0x0476 (1142) to 400001; once status bit 0 (RDY_ON) is 1, write 0x0477 (1143) and then 0x047F (1151) to run. Clearing bit 0 (0x047E) gives an OFF1 ramp stop; a 0->1 edge on bit 7 resets a fault. Bit 10 (REMOTE_CMD) must be 1 for the fieldbus to have control.
- Control word bit 3 (run) only works when the run enable signal is present, unless run enable is itself taken from the fieldbus.
Network setup
- Wire the RS-485 bus to terminal XD2D on the control unit; termination and chaining are in the drive's hardware manual (terminate only the two bus ends).
- Defaults: node 1, 19.2 kbit/s, 8 data bits, even parity, 1 stop bit (58.03-58.05); 4.8-115.2 kbit/s selectable.
- 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 noise/addressing errors; 58.08-58.12 count packets, UART errors and CRC errors.
Watch out for
- If a start command is ignored, read 06.18 Start inhibit status word (e.g. missing run or start enable, STO, or a changed control location).
- The drive processes 10 registers per 10 ms, so a 20-register read takes about 22 ms before the reply starts.
- Exception 04h means the drive rejected the value; read 400092 Error code for the reason. Exception 03h means too many registers were requested, not an out-of-range value.
- Supported function codes are 01, 02, 03, 05, 06, 08, 0Bh, 0Fh, 10h, 16h, 17h and 2Bh/0Eh; there are no input registers (function 04 is not supported).
ABB ACS880 industrial drive, primary control program (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 (58.25 = ABB Drives). | BITMAP16 | Read/write | bit 0 = OFF1_CONTROL: 1 = proceed to 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); 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 1 reference; bit 9 = JOGGING_2: 1 = run at jogging 2 reference; bit 10 = REMOTE_CMD: 1 = fieldbus control enabled; bit 11 = EXT_CTRL_LOC: 1 = select EXT2, 0 = select EXT1; bit 12 = Reserved; bit 13 = Reserved; bit 14 = Reserved; bit 15 = Reserved | |||
| HR | 1doc 400002 | Reference 1 (EFB Ref1) | Signed; type per 58.26 (20000 = 46.01/46.02 for speed/frequency). | INT16 | Read/write | ||||
| HR | 2doc 400003 | Reference 2 (EFB Ref2) | Signed; type and scaling per 58.27 (default Torque). | INT16 | Read/write | ||||
| HR | 3doc 400004 | Status word (EFB SW) | ABB Drives profile bits shown (58.25 = ABB Drives). | 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_STA: 1 = OFF2 inactive; bit 5 = OFF_3_STA: 1 = OFF3 inactive; bit 6 = SWC_ON_INHIB: switch-on inhibited; bit 7 = ALARM: warning active; bit 8 = AT_SETPOINT: actual value within tolerance of 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: user-defined status bit; bit 12 = EXT_RUN_ENABLE: external run enable received (user bit 1; 6.31 default); bit 13 = Reserved; bit 14 = Reserved; bit 15 = Reserved | |||
| HR | 4doc 400005 | Actual value 1 (EFB Act1) | Signed; type per 58.28 (default Auto, follows Ref1 type). | INT16 | Read | ||||
| HR | 5doc 400006 | Actual value 2 (EFB Act2) | Signed; type per 58.29 (default Torque). | INT16 | Read | ||||
| HR | 89doc 400090 | Reset error registers | Write 1 to clear error registers 400091-400095. | UINT16 | Read/write | 1 = Reset | |||
| HR | 90doc 400091 | Error function code | Function code of the 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 | 107doc 400108 | 01.08 Motor current % of motor 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 | 116doc 400117 | 01.17 Motor shaft power | Estimated shaft power; kW or hp per 96.16. | INT16 | kW | Read | |||
| HR | 117doc 400118 | 01.18 Inverter GWh motoring | Whole GWh toward the motor; combine with 01.19/01.20. | INT16 | GWh | Read | |||
| HR | 118doc 400119 | 01.19 Inverter MWh motoring | Whole MWh, rolls over into 01.18. | INT16 | MWh | Read | |||
| HR | 119doc 400120 | 01.20 Inverter kWh motoring | kWh part (0-1000), rolls over into 01.19. | UINT16 | × 0.1 | kWh | Read | ||
| HR | 123doc 400124 | 01.24 Flux actual % | Used flux reference, percent of nominal flux. | UINT16 | % | Read | |||
| HR | 124doc 400125 | 01.25 INU momentary cos phi | INT16 | × 0.01 | Read | ||||
| HR | 130doc 400131 | 01.31 Ambient temperature | Incoming cooling air; °C or °F per 96.16. | INT16 | °C | Read | |||
| HR | 161doc 400162 | 01.62 Abs motor speed % | UINT16 | × 0.1 | % | Read | |||
| HR | 164doc 400165 | 01.65 Abs output power | kW or hp per 96.16. | 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 Main fan on-time counter | UINT16 | days | Read | ||||
| HR | 509doc 400510 | 05.10 Control board temperature | INT16 | °C | Read | ||||
| HR | 510doc 400511 | 05.11 Inverter temperature | Percent of fault limit; about 94 % is the warning level. | INT16 | % | Read | |||
| HR | 540doc 400541 | 05.41 Main fan service counter | Fan age as percent of estimated life; 100 % warns A8C0. | UINT16 | % | 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 = Inching 1; bit 9 = Inching 2; bit 10 = Remote cmd; bit 11 = Ext ctrl loc | |||
| HR | 610doc 400611 | 06.11 Main status word | 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 (source 6.29); bit 11 = User bit 0 (source 6.30, default Ext ctrl loc); bit 12 = User bit 1 (source 6.31, default Ext run enable); bit 13 = User bit 2 (source 6.32); bit 14 = User bit 3 (source 6.33); bit 15 = Reserved | ||||
| HR | 615doc 400616 | 06.16 Drive status word 1 | BITMAP16 | Read | bit 0 = Enabled (run enable and start enable present, STO not active); 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 = Reserved; bit 15 = Reserved | ||||
| HR | 616doc 400617 | 06.17 Drive status word 2 | BITMAP16 | Read | bit 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 = Loss of reference; bit 8 = Emergency stop failed; bit 9 = Jogging active; bit 10 = Above limit; bit 11 = Emergency stop active; bit 12 = Reduced run; bit 13 = Reserved; bit 14 = Stop failed; bit 15 = Reserved | ||||
| 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; bit 4 = Lost start enable; bit 5 = Lost run enable; bit 6 = FSO inhibit; bit 7 = STO; bit 8 = Current calibration ended; bit 9 = ID run ended; bit 10 = Auto phase ended; bit 11 = Off1; bit 12 = Em Off2; bit 13 = Em Off3; bit 14 = Auto reset inhibit; bit 15 = Jogging active | |||
| HR | 618doc 400619 | 06.19 Speed control status word | BITMAP16 | Read | bit 0 = Zero speed; bit 1 = Forward; bit 2 = Reverse; bit 3 = Out of window; bit 4 = Internal speed feedback; bit 5 = Encoder 1 feedback; bit 6 = Encoder 2 feedback; bit 7 = Constant speed req; bit 8 = MF speed corr min; bit 9 = MF speed corr max | ||||
| HR | 5806doc 405807 | 58.07 Communication diagnostics | EFB link status flags. | BITMAP16 | Read | bit 0 = Init failed; bit 1 = Addr config err; bit 2 = Silent mode; bit 3 = Reserved (Autobauding); bit 4 = Wiring error (A/B possibly swapped); bit 5 = Parity error; bit 6 = Baud rate error; bit 7 = No bus activity (5 s); bit 8 = No packets (5 s); bit 9 = Noise or addressing error; bit 10 = Comm loss; bit 11 = CW/Ref loss; bit 12 = Reserved (Not active); bit 13 = Protocol 1; bit 14 = Protocol 2; bit 15 = Internal error | |||
| 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; whole seconds in 16-bit form. | UINT16 | s | Read/write | |||
| HR | 20201doc 420202 | 01.01 Motor speed used (32-bit) | Measured or estimated 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) | kW or hp per 96.16; CDAB assumes 58.34 = LO-HI (default). | INT32 | CDAB | × 0.01 | kW | Read | |
| HR | 20259doc 420260 | 01.30 Nominal torque scale (32-bit) | Torque equal to 100 %; Nm or lb·ft per 96.16; CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | × 0.001 | Nm | 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 | 31615doc 431616 | 58.08 Received packets (32-bit) | Valid packets addressed to the drive; CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | Read | |||
| HR | 31623doc 431624 | 58.12 CRC errors (32-bit) | Packets received with a CRC error; CDAB assumes 58.34 = LO-HI (default). | UINT32 | CDAB | Read |
Notes on this map
- Registers 400001-400006 are the factory defaults of 58.101-58.106 Data I/O 1-6 and can be re-pointed; 400007-400024 (Data I/O 7-24) are user-selected and not listed.
- Control and status word bits are for 58.25 Control profile = ABB Drives (default). With Transparent the control word is passed unconverted (visible in 6.05) and the status word comes from the source chosen in 58.30.
- References and actual values are signed 16-bit. For speed/frequency 20000 equals 46.01 Speed scaling or 46.02 Frequency scaling (torque 46.03, power 46.04), so their engineering value depends on drive settings and they are left unscaled here. 58.27 and 58.29 default to Torque, not Auto.
- EFB status word bit 12 = EXT_RUN_ENABLE is confirmed three ways in the manual: the EFB status word table, the ABB Drives state diagram (SW bit 12 = 1 is the run-enable condition for OPERATION ENABLED) and 6.31 MSW bit 12 sel, whose default is Ext run enable. It is a user-selectable bit: the coil/discrete-input table calls status bits 11-14 User-defined (0)-(3), so a changed 6.31 changes its meaning. The bit 11 row of the status word table carries a stray '12 USER_1' fragment in its text; bit 11 is shown here only as a user-defined bit.
- 16-bit scaling is the manual's FbEq 16b column (FbEq is defined as the integer used in communication, e.g. '10 = 1 V' -> scale 0.1). Signals 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 32-bit form, which has a fixed FbEq 32b scaling.
- 01.14, 01.17, 01.30, 01.31 and 01.65 follow 96.16 Unit selection (kW or hp, Nm or lb·ft, °C or °F); the units shown assume metric.
- Left out: 01.35-01.37 resettable energy balance, 05.22 Diagnostic word 3 (only two fan bits in use), the ACS800-compatible fault words 4.21/4.22 (bit meanings depend on 4.120), the supply-unit signals 01.102-01.164 (visible only with IGBT supply control), and all configuration parameters other than the EFB diagnostics and comm-loss settings.
- Coils (control word bits at 00001-00032 plus 10.99 RO/DIO bits) and discrete inputs (status word bits at 10001-10032 plus 10.02 DI bits) also exist but are omitted, matching the ABB sibling maps; the manual does not spell out how those references map to wire addresses.
- Comm-loss defaults agree between the EFB setup table and the parameter list: 58.14 = Fault, 58.15 = Cw / Ref1 / Ref2, 58.16 = 3.0 s. 58.16 is 1 = 1 s in 16-bit form and 10 = 1 s in 32-bit form.
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 ACS880 industrial drive, primary control program (embedded Modbus RTU)
What Modbus registers does the ABB ACS880 industrial drive, primary control program (embedded Modbus RTU) have?
This map lists 64 registers: 64 holding registers. 7 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the ABB ACS880 industrial drive, primary control program (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 writes holding registers as 6-digit references 400001-465536 covering the full 16-bit address field, so 400001 = wire address 0. Masters limited to 5 digits can reach 400001-409999 as 40001-49999, but nothing from 410000 up (which includes every 32-bit parameter register). 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 its 32-bit form 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. 32-bit registers are listed CDAB because 58.34 Word order defaults to LO-HI (low word in the first register).
What byte order does the ABB ACS880 industrial drive, primary control program (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 ACS880 industrial drive, primary control program (embedded Modbus RTU)?
Start with HR 0 Control word (EFB CW) (Control word: start/stop/reset); HR 1 Reference 1 (EFB Ref1) (Reference 1 (20000 = 46.01/46.02 for speed/frequency)); HR 3 Status word (EFB SW) (Status word: ready/running/fault/remote); HR 4 Actual value 1 (EFB Act1) (Actual value 1 (feedback matching the Ref1 type)); 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)); HR 617 06.18 Start inhibit status word (06.18 Start inhibit status word).
How do I enable Modbus control of the ABB ACS880 industrial drive, primary control program (embedded Modbus RTU)?
Set 58.01 Protocol enable = Modbus RTU (this disables the drive-to-drive link on XD2D and cannot be changed while the drive runs), then 58.03 node address, 58.04 baud rate and 58.05 parity, and validate with 58.06 Communication control = Refresh settings or reboot the control unit. For control set 20.01 Ext1 commands (and 20.06 for EXT2) = Embedded fieldbus and the reference source, e.g. 22.11 Speed ref1 source or 28.11 Frequency ref1 source = EFB ref1. Fieldbus parameter writes are made permanent with 96.07 Parameter save manually = Save.
What happens when the ABB ACS880 industrial drive, primary control program (embedded Modbus RTU) loses Modbus communication?
58.14 Communication loss action (No / Fault / Last speed / Speed ref safe / Fault always / Warning) with 58.16 Communication loss time (default 3.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 for frequency). Apart from Fault always, it only acts when the EFB is the active control source or 58.36 forces supervision. Monitoring is held off for 30 s after power-up.
Where is the official ABB ACS880 industrial drive, primary control program (embedded Modbus RTU) Modbus documentation?
The source is ACS880 primary control program (AINLX) firmware manual (3AUA0000085967 Rev Y), revision 2024-03-07, published free by ABB at https://search.abb.com/library/Download.aspx?DocumentID=3AUA0000085967&LanguageCode=en&DocumentPartId=1&Action=Launch.
More ABB Modbus register maps
- Variable frequency drive
ABB ACH580 HVAC drive (embedded Modbus RTU)
ACH580 drives running the ACH580 HVAC control program, embedded fieldbus (EFB) set to Modbus RTU, addressing mode 0 (default).
Also known as: ACH580-01, ACH580-07, ACH580-31, ACH580-34, ACH580 HVAC control program - 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 - 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: ACS880 primary control program (AINLX) firmware manual · 3AUA0000085967 Rev Y · rev. 2024-03-07. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.