- Home
- Modbus register maps
- ABB
- ACS355 machinery drive (embedded Modbus RTU)
Variable frequency drive · Modbus register map
ABB ACS355 machinery drive (embedded Modbus RTU) Modbus register map
Updated 25 October 2026
ABB's compact machinery variable frequency drive. Its embedded Modbus RTU slave is reached through the plug-in FMBA-01 RS-485 adapter (or point-to-point RS-232 on the panel connector) and maps the control word, two references, the status word and up to eight selectable actual values into 40001-40012, a 32-bit DCU-profile control/status pair into 40031-40034, and every drive parameter NNNN into register 4NNNN. This map covers the control block, group 01 operating data, fault and alarm words, fault history and the comm settings; all values are 16-bit.
This page lists 55 Modbus registers for the ABB ACS355 machinery drive (embedded Modbus RTU) — 15 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
- ACS355 machinery drive (embedded Modbus RTU)
- Equipment type
- Variable frequency drive
- Registers
- 55 (15 writable)
- Transport
- Modbus RTU
- Default unit ID
- 1
- Default serial
- 9600 baud, 8N1
- Documented addressing
- Modicon 3xxxx/4xxxx (drop the prefix, subtract 1)
- Firmware
- ACS355 firmware 5.110 or later
- Also known as
- ACS355-01E, ACS355-03E, ACS355-01U, ACS355-03U, ACS355 with FMBA-01
Integration notes: ABB ACS355 machinery drive (embedded Modbus RTU)
Fit the FMBA-01 adapter, set 9802 = STD MODBUS and the group 53 link settings, then cycle power. Set 5305 = ABB DRV FULL, point 1001 EXT1 COMMANDS and 1103 REF1 SELECT at COMM, write the control word and REF1 at 40001/40002 and poll the status word plus the default actual values (output frequency, current) at 40004-40006.
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 (ABB Drives) | BITMAP16 | Control word: start/stop/reset | Read/write |
| HR 1 | Reference 1 (REF1) | INT16 | REF1 speed/frequency setpoint (20000 = 1105) | Read/write |
| HR 3 | Status word (ABB Drives) | BITMAP16 | Status word: ready/running/fault/remote | Read |
| HR 102 | 0103 Output freq | UINT16 | 0103 Output frequency, 0.1 Hz | Read |
| HR 103 | 0104 Current | UINT16 | 0104 Motor current, 0.1 A | Read |
| HR 106 | 0107 DC bus voltage | UINT16 | 0107 DC bus voltage | Read |
| HR 400 | 0401 Last fault | UINT16 | 0401 Last fault code | Read |
| HR 304 | 0305 Fault word 1 | BITMAP16 | 0305 Fault word 1 | Read |
Enable Modbus control & writes
Set 9802 COMM PROT SEL = STD MODBUS (EIA-485 through FMBA-01 on X3) or MODBUS RS232 (panel connector, max 3 m). Set 5302 station ID, 5303 baud, 5304 parity and 5305 profile; new settings apply at the next power-up or after clearing and re-entering 5302. For control set 1001 EXT1 COMMANDS = COMM (1002 for EXT2), 1103 REF1 SELECT = COMM, and optionally 1102 EXT1/EXT2 SEL, 1601 RUN ENABLE and 1604 FAULT RESET SEL = COMM. Save fieldbus parameter writes with 1607 PARAM SAVE.
Communication loss & watchdog
3018 COMM FAULT FUNC (NOT SEL default / FAULT / CONST SP 7 / LAST SPEED) after the delay in 3019 COMM FAULT TIME (default 3.0 s, 0.1 s steps). FAULT trips SERIAL 1 ERR (0028) and coasts; the other two raise alarm IO COMM (2005) and keep running. The supervision is inactive for 60 s after start-up.
Byte order & addressing
- Register 4xxxx is wire address xxxx - 1 (40001 = 0); parameter NNNN is register 4NNNN.
- Everything is 16-bit; there is no word-order setting to worry about.
- Start per the ABB Drives state diagram with ABB DRV FULL: write 0x0476 (1142) to 40001, then 0x0477 (1143) once status bit 0 is 1, then 0x047F (1151) to run. Bit 10 (REMOTE_CMD) and bit 4 are marked ABB DRV FULL only; with FULL and bit 10 = 0 the drive keeps the last control word and reference unless both are 0. Fault reset is a 0->1 edge on bit 7 with 1604 = COMM.
- Control word bit 3 needs the run enable signal (1601); with 1601 = COMM the bit itself provides it.
- Only function codes 03, 06, 08, 16 (10h) and 23 (17h) are supported; there are no coils, discrete inputs or input registers.
Network setup
- The EIA-485 port is the optional FMBA-01 module plugged into drive terminal X3; its wiring and termination are in the FMBA-01 user's manual (3AFE68586704).
- The RS-232 option uses the control panel connector and is point-to-point, cable length at most 3 m.
- Parameter-list defaults: station 1, 9.6 kbit/s, 8 data bits, no parity, 1 stop bit, ABB DRV LIM profile; 1.2-115.2 kbit/s selectable.
- 5306 EFB OK MESSAGES should keep rising during polling; a rising 5307 EFB CRC ERRORS points to noise or a CRC/baud mismatch.
Watch out for
- Embedded Modbus does nothing until 9802 is set; the default is NOT SEL.
- Parameter writes over Modbus are volatile until 1607 PARAM SAVE is written.
- Exception 03 covers out-of-range values, read-only parameters, too-long messages and writes refused while the drive is started. 5318 is documented both as the last exception code and as a response delay, so it is not listed here and should not be relied on as a diagnostic.
- The AC500 Modbus application macro changes the comm defaults (station 2, 19.2 kbit/s, ABB DRV FULL), so a drive set up with that macro will not answer at the parameter-list defaults.
ABB ACS355 machinery 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.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| HR | 0doc 40001 | Control word (ABB Drives) | Only with 5305 = ABB DRV LIM or ABB DRV FULL; copy in 5319. | BITMAP16 | Read/write | bit 0 = OFF1 CONTROL: 1 = enter ready to operate, 0 = ramp stop (OFF1); bit 1 = OFF2 CONTROL: 0 = emergency OFF, coast to stop; bit 2 = OFF3 CONTROL: 0 = emergency stop (time per 2208); bit 3 = INHIBIT OPERATION: 1 = operation enabled (run), 0 = inhibit; bit 4 = RAMP_OUT_ZERO (ABB DRV FULL only): 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 (if 1604 = COMM); bit 8 = Not in use; bit 9 = Not in use; bit 10 = REMOTE_CMD (ABB DRV FULL only): 1 = fieldbus control enabled; bit 11 = EXT CTRL LOC: 1 = select EXT2, 0 = select EXT1 (if 1102 = COMM); bit 12 = Reserved; bit 13 = Reserved; bit 14 = Reserved; bit 15 = Reserved | |||
| HR | 1doc 40002 | Reference 1 (REF1) | Signed; 20000 = value of 1105 REF1 MAX (speed or frequency). | INT16 | Read/write | ||||
| HR | 2doc 40003 | Reference 2 (REF2) | Signed; 10000 = value of 1108 REF2 MAX (speed, torque or PID). | INT16 | Read/write | ||||
| HR | 3doc 40004 | Status word (ABB Drives) | Only with 5305 = ABB DRV LIM or ABB DRV FULL; copy in 5320. | 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: alarm active; bit 8 = AT_SETPOINT: actual value within tolerance of reference; bit 9 = REMOTE: 1 = remote (EXT1/EXT2), 0 = local; bit 10 = ABOVE_LIMIT: supervised value (3201) above supervision limit; bit 11 = EXT CTRL LOC: 1 = EXT2 selected, 0 = EXT1; bit 12 = EXT RUN ENABLE: external run enable received; bit 13 = Reserved; bit 14 = Reserved; bit 15 = Reserved | |||
| HR | 4doc 40005 | Actual value 1 | Signal chosen by 5310 (default 0103 output frequency, 1 = 0.1 Hz). | INT16 | Read | ||||
| HR | 5doc 40006 | Actual value 2 | Signal chosen by 5311 (default 0104 current, 1 = 0.1 A). | INT16 | Read | ||||
| HR | 30doc 40031 | DCU control word LSW (0301) | Only with 5305 = DCU PROFILE. | BITMAP16 | Read/write | bit 0 = STOP; bit 1 = START; bit 2 = REVERSE; bit 3 = LOCAL: 1 = local control mode; bit 4 = RESET: rising edge resets; bit 5 = EXT2: 1 = EXT2, 0 = EXT1; bit 6 = RUN_DISABLE; bit 7 = STPMODE_R: ramp stop (with bit 0); bit 8 = STPMODE_EM: emergency stop (with bit 0); bit 9 = STPMODE_C: coast stop (with bit 0); bit 10 = RAMP_2: use ramp pair 2; bit 11 = RAMP_OUT_0; bit 12 = RAMP_HOLD; bit 13 = RAMP_IN_0; bit 14 = REQ_LOCALLOC: lock out panel local mode; bit 15 = TORQLIM2: use torque limit set 2 | |||
| HR | 31doc 40032 | DCU control word MSW (0302) | Only with 5305 = DCU PROFILE; bit n here is DCU bit 16+n. | BITMAP16 | Read/write | bit 0 = FBLOCAL_CTL (bit 16): fieldbus local mode for control word; bit 1 = FBLOCAL_REF (bit 17): fieldbus local mode for reference; bit 2 = START_DISABLE1 (bit 18): 1 = no start enable 1; bit 3 = START_DISABLE2 (bit 19): 1 = no start enable 2; bit 4 = JOGGING 1 (bit 20); bit 5 = JOGGING 2 (bit 21); bit 11 = REF_CONST (bit 27): internal, supervision only; bit 12 = REF_AVE (bit 28): internal, supervision only; bit 13 = LINK_ON (bit 29): internal, supervision only; bit 14 = REQ_STARTINH (bit 30): start inhibit; bit 15 = Reserved (bit 31) | |||
| HR | 32doc 40033 | DCU status word LSW (0303) | Only with 5305 = DCU PROFILE. | BITMAP16 | Read | bit 0 = READY; bit 1 = ENABLED: external run enable received; bit 2 = STARTED; bit 3 = RUNNING: modulating; bit 4 = ZERO_SPEED; bit 5 = ACCELERATE; bit 6 = DECELERATE; bit 7 = AT_SETPOINT; bit 8 = LIMIT; bit 9 = SUPERVISION: supervised value out of limits; bit 10 = REV_REF: reference reverse; bit 11 = REV_ACT: running reverse; bit 12 = PANEL_LOCAL; bit 13 = FIELDBUS_LOCAL; bit 14 = EXT2_ACT; bit 15 = FAULT | |||
| HR | 33doc 40034 | DCU status word MSW (0304) | Only with 5305 = DCU PROFILE; bit n here is DCU bit 16+n. | BITMAP16 | Read | bit 0 = ALARM (bit 16); bit 1 = NOTICE (bit 17): maintenance request; bit 2 = DIRLOCK (bit 18); bit 3 = LOCALLOCK (bit 19); bit 4 = CTL_MODE (bit 20): 1 = vector, 0 = scalar; bit 5 = JOGGING ACTIVE (bit 21); bit 10 = REQ_CTL (bit 26): control word requested from fieldbus; bit 11 = REQ_REF1 (bit 27); bit 12 = REQ_REF2 (bit 28); bit 13 = REQ_REF2EXT (bit 29); bit 14 = ACK_STARTINH (bit 30): start inhibit from fieldbus; bit 15 = Reserved (bit 31) | |||
| HR | 100doc 40101 | 0101 Speed & dir | Calculated motor speed; negative = reverse. | INT16 | rpm | Read | |||
| HR | 101doc 40102 | 0102 Speed | Calculated motor speed. | UINT16 | rpm | Read | |||
| HR | 102doc 40103 | 0103 Output freq | Calculated output frequency. | UINT16 | × 0.1 | Hz | Read | ||
| HR | 103doc 40104 | 0104 Current | Measured motor current. | UINT16 | × 0.1 | A | Read | ||
| HR | 104doc 40105 | 0105 Torque | Calculated torque, percent of motor nominal. | INT16 | × 0.1 | % | Read | ||
| HR | 105doc 40106 | 0106 Power | Measured motor power. | INT16 | × 0.1 | kW | Read | ||
| HR | 106doc 40107 | 0107 DC bus voltage | Measured intermediate circuit voltage. | UINT16 | V | Read | |||
| HR | 108doc 40109 | 0109 Output voltage | Calculated motor voltage (AC). | UINT16 | V | Read | |||
| HR | 109doc 40110 | 0110 Drive temp | Measured IGBT temperature. | INT16 | × 0.1 | °C | Read | ||
| HR | 110doc 40111 | 0111 External ref 1 | REF1: 0.1 Hz or 1 rpm per 9904; unscaled here. | INT16 | Read | ||||
| HR | 111doc 40112 | 0112 External ref 2 | REF2 as percent. | INT16 | × 0.1 | % | Read | ||
| HR | 112doc 40113 | 0113 Ctrl location | Active control location. | UINT16 | Read | 0 = LOCAL; 1 = EXT1; 2 = EXT2 | |||
| HR | 113doc 40114 | 0114 Run time (R) | Resettable running-hours counter. | UINT16 | h | Read | |||
| HR | 114doc 40115 | 0115 kWh counter (R) | Resettable; rolls over to 0 after 65535. | UINT16 | kWh | Read | |||
| HR | 139doc 40140 | 0140 Run time | Non-resettable running time in thousands of hours. | UINT16 | × 0.01 | kh | Read | ||
| HR | 140doc 40141 | 0141 MWh counter | Non-resettable; rolls over to 0 after 65535. | UINT16 | MWh | Read | |||
| HR | 142doc 40143 | 0143 Drive on time hi | Control board power-on time, days. | UINT16 | days | Read | |||
| HR | 149doc 40150 | 0150 CB temp | Control board temperature. | INT16 | × 0.1 | °C | Read | ||
| HR | 161doc 40162 | 0162 RO status | Relay output 1 state. | UINT16 | Read | 0 = De-energized; 1 = Energized | |||
| HR | 171doc 40172 | 0172 Abs torque | Absolute motor torque, percent of nominal. | UINT16 | × 0.1 | % | Read | ||
| HR | 304doc 40305 | 0305 Fault word 1 | BITMAP16 | Read | bit 0 = OVERCURRENT; bit 1 = DC OVERVOLT; bit 2 = DEV OVERTEMP; bit 3 = SHORT CIRC; bit 4 = Reserved; bit 5 = DC UNDERVOLT; bit 6 = AI1 LOSS; bit 7 = AI2 LOSS; bit 8 = MOT OVERTEMP; bit 9 = PANEL LOSS; bit 10 = ID RUN FAIL; bit 11 = MOTOR STALL; bit 12 = CB OVERTEMP; bit 13 = EXT FAULT 1; bit 14 = EXT FAULT 2; bit 15 = EARTH FAULT | ||||
| HR | 305doc 40306 | 0306 Fault word 2 | BITMAP16 | Read | bit 0 = UNDERLOAD; bit 1 = THERM FAIL; bit 2 = Reserved; bit 3 = Reserved; bit 4 = CURR MEAS; bit 5 = SUPPLY PHASE; bit 6 = ENCODER ERR; bit 7 = OVERSPEED; bit 8 = Reserved; bit 9 = Reserved; bit 10 = CONFIG FILE; bit 11 = SERIAL 1 ERR (fieldbus comm loss); bit 12 = EFB CON FILE; bit 13 = FORCE TRIP; bit 14 = MOTOR PHASE; bit 15 = OUTP WIRING | ||||
| HR | 306doc 40307 | 0307 Fault word 3 | BITMAP16 | Read | bit 3 = INCOMPATIBLE SW; bit 4 = SAFE TORQUE OFF; bit 5 = STO1 LOST; bit 6 = STO2 LOST; bit 11 = CB ID ERROR; bit 12 = DSP STACK ERROR; bit 13 = DSP T1-T3 OVERLOAD; bit 14 = SERF CORRUPT / SERF MACRO; bit 15 = PAR faults (PCU, HZRPM, AI/AO scale, FBUSMISS, USER U/F, SETUP) | ||||
| HR | 307doc 40308 | 0308 Alarm word 1 | Manual says writing 0 resets the whole word. | BITMAP16 | Read | bit 0 = OVERCURRENT; bit 1 = OVERVOLTAGE; bit 2 = UNDERVOLTAGE; bit 3 = DIR LOCK; bit 4 = IO COMM; bit 5 = AI1 LOSS; bit 6 = AI2 LOSS; bit 7 = PANEL LOSS; bit 8 = DEVICE OVERTEMP; bit 9 = MOTOR TEMP; bit 10 = UNDERLOAD; bit 11 = MOTOR STALL; bit 12 = AUTORESET; bit 13 = Reserved; bit 14 = Reserved; bit 15 = Reserved | |||
| HR | 308doc 40309 | 0309 Alarm word 2 | Manual says writing 0 resets the whole word. | BITMAP16 | Read | bit 0 = Reserved; bit 1 = PID SLEEP; bit 2 = ID RUN; bit 3 = Reserved; bit 4 = START ENABLE 1 MISSING; bit 5 = START ENABLE 2 MISSING; bit 6 = EMERGENCY STOP; bit 7 = ENCODER ERROR; bit 8 = FIRST START; bit 9 = INPUT PHASE LOSS; bit 10 = Reserved; bit 11 = Reserved; bit 12 = MOTOR BACK EMF; bit 13 = SAFE TORQUE OFF; bit 14 = Reserved; bit 15 = Reserved | |||
| HR | 400doc 40401 | 0401 Last fault | Code of the latest fault; 0 = history clear. | UINT16 | Read | ||||
| HR | 403doc 40404 | 0404 Speed at flt | Motor speed when the latest fault occurred. | INT16 | rpm | Read | |||
| HR | 404doc 40405 | 0405 Freq at flt | Output frequency when the latest fault occurred. | INT16 | × 0.1 | Hz | Read | ||
| HR | 405doc 40406 | 0406 Voltage at flt | DC bus voltage when the latest fault occurred. | UINT16 | × 0.1 | V | Read | ||
| HR | 406doc 40407 | 0407 Current at flt | Motor current when the latest fault occurred. | UINT16 | × 0.1 | A | Read | ||
| HR | 407doc 40408 | 0408 Torque at flt | Torque (percent of nominal) at the latest fault. | INT16 | × 0.1 | % | Read | ||
| HR | 411doc 40412 | 0412 Previous fault 1 | Code of the 2nd latest fault. | UINT16 | Read | ||||
| HR | 412doc 40413 | 0413 Previous fault 2 | Code of the 3rd latest fault. | UINT16 | Read | ||||
| HR | 1606doc 41607 | 1607 Param save | Write 1 to store parameters; fieldbus writes are otherwise volatile. | UINT16 | Read/write | 0 = DONE; 1 = SAVE (in progress) | |||
| HR | 3017doc 43018 | 3018 Comm fault func | Reaction to fieldbus communication loss. | UINT16 | Read/write | 0 = NOT SEL; 1 = FAULT (trip SERIAL 1 ERR, coast); 2 = CONST SP 7 (alarm, run at 1208); 3 = LAST SPEED (alarm, hold 10 s average speed) | |||
| HR | 3018doc 43019 | 3019 Comm fault time | Delay before 3018 acts (0.0-600.0 s). | UINT16 | × 0.1 | s | Read/write | ||
| HR | 5301doc 45302 | 5302 EFB station ID | Modbus slave address (0-247). | UINT16 | Read/write | ||||
| HR | 5302doc 45303 | 5303 EFB baud rate | Baud in 0.1 kbit/s units (e.g. 96 = 9.6 kbit/s). | UINT16 | × 0.1 | kbit/s | Read/write | ||
| HR | 5303doc 45304 | 5304 EFB parity | UINT16 | Read/write | 0 = 8 NONE 1; 1 = 8 NONE 2; 2 = 8 EVEN 1; 3 = 8 ODD 1 | ||||
| HR | 5304doc 45305 | 5305 EFB ctrl profile | UINT16 | Read/write | 0 = ABB DRV LIM; 1 = DCU PROFILE; 2 = ABB DRV FULL | ||||
| HR | 5305doc 45306 | 5306 EFB OK messages | Valid messages received; should keep rising. | UINT16 | Read | ||||
| HR | 5306doc 45307 | 5307 EFB CRC errors | Messages received with a CRC error. | UINT16 | Read | ||||
| HR | 5309doc 45310 | 5310 EFB par 10 | Parameter index shown at 40005 (default 103). | UINT16 | Read/write | ||||
| HR | 5310doc 45311 | 5311 EFB par 11 | Parameter index shown at 40006 (default 104). | UINT16 | Read/write | ||||
| HR | 9801doc 49802 | 9802 Comm prot sel | Enables the embedded Modbus and picks the port. | UINT16 | Read/write | 0 = NOT SEL; 1 = STD MODBUS (EIA-485 via FMBA-01); 4 = EXT FBA; 10 = MODBUS RS232 (panel port) |
Notes on this map
- There are no 32-bit registers: the manual states all values read or written are limited to 16 bits. Signals that can be negative (0101, 0105, 0106, 0110, 0111, 0112, 0404, 0405, 0408) are listed as INT16.
- Scaling is the manual's FbEq column (fieldbus integer per unit, e.g. '1 = 0.1 Hz' -> scale 0.1).
- 40001 and 40004 work only with 5305 = ABB DRV LIM or ABB DRV FULL; 40031-40034 work only with 5305 = DCU PROFILE. ABB DRV LIM (the default) ignores control word bits 4 (RAMP_OUT_ZERO) and 10 (REMOTE_CMD).
- Actual values 40005-40012 follow 5310-5317 (defaults: 40005 = 0103, 40006 = 0104, 40007-40012 unassigned). Their scaling is that of the chosen signal, so they are left unscaled here; 40007-40012 are not listed.
- Reference scaling (ABB Drives profile): REF1 20000 = 1105 REF1 MAX (speed or frequency); REF2 10000 = 1108 REF2 MAX (speed, frequency, torque or PID). 1104/1107 minimums do not affect the scaling.
- Defaults conflict inside the manual: group 53 lists 5302 = 1, 5303 = 9.6 kbit/s, 5304 = 8 NONE 1 and 9802 = NOT SEL, while the AC500 Modbus macro sets station 2, 19.2 kbit/s, 5304 = 1 (which the parameter list calls 8 NONE 2), ABB DRV FULL and STD MODBUS. The text of that macro also mislabels 5302 as 5303. The macro also sets 3018 = FAULT and re-points 5310-5312 to 0101, 0303 and 0305, so 40005-40007 then read speed & dir, DCU status word LSW and fault word 1. Check the drive.
- 0111 External ref 1 is in 0.1 Hz or 1 rpm depending on 9904 Motor ctrl mode, so it is left unscaled.
- Left out: 0120-0139 analog I/O, PID and process-variable signals (units depend on configuration), 0160/0414 DI status (panel and binary encodings differ), 0402/0403 fault time stamps, 0409 status at fault, and all motor/application parameters.
- The group 03 fault and alarm words are documented as read-only actual signals, but the alarm word text says an alarm can be reset by writing zero to the word; they are marked R here.
- 5318 EFB PAR 18 is left out: the group 53 parameter list describes it as an extra response delay in ms, while the exception-code section says it holds the most recent exception code, so its meaning cannot be pinned down from the manual.
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 ACS355 machinery drive (embedded Modbus RTU)
What Modbus registers does the ABB ACS355 machinery drive (embedded Modbus RTU) have?
This map lists 55 registers: 55 holding registers. 15 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the ABB ACS355 machinery 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 lists 4xxxx holding registers and states that register 4xxxx is sent as xxxx - 1 in the Modbus message (its example: 40002 is addressed as 0001), so 40001 = wire address 0. Drive parameter NNNN sits at register 4NNNN (e.g. 0103 -> 40103, wire 102; 3018 -> 43018, wire 3017). Registers that do not correspond to a parameter return an exception.
What are the minimum Modbus registers to integrate the ABB ACS355 machinery drive (embedded Modbus RTU)?
Start with HR 0 Control word (ABB Drives) (Control word: start/stop/reset); HR 1 Reference 1 (REF1) (REF1 speed/frequency setpoint (20000 = 1105)); HR 3 Status word (ABB Drives) (Status word: ready/running/fault/remote); HR 102 0103 Output freq (0103 Output frequency, 0.1 Hz); HR 103 0104 Current (0104 Motor current, 0.1 A); HR 106 0107 DC bus voltage (0107 DC bus voltage); HR 400 0401 Last fault (0401 Last fault code); HR 304 0305 Fault word 1 (0305 Fault word 1).
How do I enable Modbus control of the ABB ACS355 machinery drive (embedded Modbus RTU)?
Set 9802 COMM PROT SEL = STD MODBUS (EIA-485 through FMBA-01 on X3) or MODBUS RS232 (panel connector, max 3 m). Set 5302 station ID, 5303 baud, 5304 parity and 5305 profile; new settings apply at the next power-up or after clearing and re-entering 5302. For control set 1001 EXT1 COMMANDS = COMM (1002 for EXT2), 1103 REF1 SELECT = COMM, and optionally 1102 EXT1/EXT2 SEL, 1601 RUN ENABLE and 1604 FAULT RESET SEL = COMM. Save fieldbus parameter writes with 1607 PARAM SAVE.
What happens when the ABB ACS355 machinery drive (embedded Modbus RTU) loses Modbus communication?
3018 COMM FAULT FUNC (NOT SEL default / FAULT / CONST SP 7 / LAST SPEED) after the delay in 3019 COMM FAULT TIME (default 3.0 s, 0.1 s steps). FAULT trips SERIAL 1 ERR (0028) and coasts; the other two raise alarm IO COMM (2005) and keep running. The supervision is inactive for 60 s after start-up.
Where is the official ABB ACS355 machinery drive (embedded Modbus RTU) Modbus documentation?
The source is ACS355 drives user's manual (3AUA0000066143 Rev E), revision 2020-11-02, published free by ABB at https://search.abb.com/library/Download.aspx?DocumentID=3AUA0000066143&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 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 - Variable frequency drive
ABB ACS880 industrial drive, primary control program (embedded Modbus RTU)
ACS880 drives running the primary control program (AINLX) 3.4x or later, embedded fieldbus (EFB) Modbus RTU on terminal XD2D, 58.33 Addressing mode = Mode 0 (default).
Also known as: ACS880-01, ACS880-04, ACS880-07, ACS880-11, ACS880-17, ACS880-31, ACS880-37, AINLX, ACS880 primary 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: ACS355 drives user's manual · 3AUA0000066143 Rev E · rev. 2020-11-02. Register numbers, types, scaling and units are reproduced as published; descriptions are our own.