Easy Modbus
  1. Home
  2. Modbus register maps
  3. ABB
  4. 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

Short answer

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
Source document
ACS355 drives user's manual · 3AUA0000066143 Rev E · rev. 2020-11-02
Download CSV all columns JSON Manufacturer PDF ↗

Integration notes: ABB ACS355 machinery drive (embedded Modbus RTU)

Integration in brief

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.

RegisterNameTypeWhyAccess
HR 0Control word (ABB Drives)BITMAP16Control word: start/stop/resetRead/write
HR 1Reference 1 (REF1)INT16REF1 speed/frequency setpoint (20000 = 1105)Read/write
HR 3Status word (ABB Drives)BITMAP16Status word: ready/running/fault/remoteRead
HR 1020103 Output freqUINT160103 Output frequency, 0.1 HzRead
HR 1030104 CurrentUINT160104 Motor current, 0.1 ARead
HR 1060107 DC bus voltageUINT160107 DC bus voltageRead
HR 4000401 Last faultUINT160401 Last fault codeRead
HR 3040305 Fault word 1BITMAP160305 Fault word 1Read

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

Network setup

Watch out for

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.

55 of 55 shown
ABB ACS355 machinery drive (embedded Modbus RTU) Modbus register map
TableAddressNameDescriptionTypeOrderScaleUnitsAccessValues / bits
HR0doc 40001Control word (ABB Drives)Only with 5305 = ABB DRV LIM or ABB DRV FULL; copy in 5319.BITMAP16Read/writebit 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
HR1doc 40002Reference 1 (REF1)Signed; 20000 = value of 1105 REF1 MAX (speed or frequency).INT16Read/write
HR2doc 40003Reference 2 (REF2)Signed; 10000 = value of 1108 REF2 MAX (speed, torque or PID).INT16Read/write
HR3doc 40004Status word (ABB Drives)Only with 5305 = ABB DRV LIM or ABB DRV FULL; copy in 5320.BITMAP16Readbit 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
HR4doc 40005Actual value 1Signal chosen by 5310 (default 0103 output frequency, 1 = 0.1 Hz).INT16Read
HR5doc 40006Actual value 2Signal chosen by 5311 (default 0104 current, 1 = 0.1 A).INT16Read
HR30doc 40031DCU control word LSW (0301)Only with 5305 = DCU PROFILE.BITMAP16Read/writebit 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
HR31doc 40032DCU control word MSW (0302)Only with 5305 = DCU PROFILE; bit n here is DCU bit 16+n.BITMAP16Read/writebit 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)
HR32doc 40033DCU status word LSW (0303)Only with 5305 = DCU PROFILE.BITMAP16Readbit 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
HR33doc 40034DCU status word MSW (0304)Only with 5305 = DCU PROFILE; bit n here is DCU bit 16+n.BITMAP16Readbit 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)
HR100doc 401010101 Speed & dirCalculated motor speed; negative = reverse.INT16rpmRead
HR101doc 401020102 SpeedCalculated motor speed.UINT16rpmRead
HR102doc 401030103 Output freqCalculated output frequency.UINT16× 0.1HzRead
HR103doc 401040104 CurrentMeasured motor current.UINT16× 0.1ARead
HR104doc 401050105 TorqueCalculated torque, percent of motor nominal.INT16× 0.1%Read
HR105doc 401060106 PowerMeasured motor power.INT16× 0.1kWRead
HR106doc 401070107 DC bus voltageMeasured intermediate circuit voltage.UINT16VRead
HR108doc 401090109 Output voltageCalculated motor voltage (AC).UINT16VRead
HR109doc 401100110 Drive tempMeasured IGBT temperature.INT16× 0.1°CRead
HR110doc 401110111 External ref 1REF1: 0.1 Hz or 1 rpm per 9904; unscaled here.INT16Read
HR111doc 401120112 External ref 2REF2 as percent.INT16× 0.1%Read
HR112doc 401130113 Ctrl locationActive control location.UINT16Read0 = LOCAL; 1 = EXT1; 2 = EXT2
HR113doc 401140114 Run time (R)Resettable running-hours counter.UINT16hRead
HR114doc 401150115 kWh counter (R)Resettable; rolls over to 0 after 65535.UINT16kWhRead
HR139doc 401400140 Run timeNon-resettable running time in thousands of hours.UINT16× 0.01khRead
HR140doc 401410141 MWh counterNon-resettable; rolls over to 0 after 65535.UINT16MWhRead
HR142doc 401430143 Drive on time hiControl board power-on time, days.UINT16daysRead
HR149doc 401500150 CB tempControl board temperature.INT16× 0.1°CRead
HR161doc 401620162 RO statusRelay output 1 state.UINT16Read0 = De-energized; 1 = Energized
HR171doc 401720172 Abs torqueAbsolute motor torque, percent of nominal.UINT16× 0.1%Read
HR304doc 403050305 Fault word 1BITMAP16Readbit 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
HR305doc 403060306 Fault word 2BITMAP16Readbit 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
HR306doc 403070307 Fault word 3BITMAP16Readbit 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)
HR307doc 403080308 Alarm word 1Manual says writing 0 resets the whole word.BITMAP16Readbit 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
HR308doc 403090309 Alarm word 2Manual says writing 0 resets the whole word.BITMAP16Readbit 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
HR400doc 404010401 Last faultCode of the latest fault; 0 = history clear.UINT16Read
HR403doc 404040404 Speed at fltMotor speed when the latest fault occurred.INT16rpmRead
HR404doc 404050405 Freq at fltOutput frequency when the latest fault occurred.INT16× 0.1HzRead
HR405doc 404060406 Voltage at fltDC bus voltage when the latest fault occurred.UINT16× 0.1VRead
HR406doc 404070407 Current at fltMotor current when the latest fault occurred.UINT16× 0.1ARead
HR407doc 404080408 Torque at fltTorque (percent of nominal) at the latest fault.INT16× 0.1%Read
HR411doc 404120412 Previous fault 1Code of the 2nd latest fault.UINT16Read
HR412doc 404130413 Previous fault 2Code of the 3rd latest fault.UINT16Read
HR1606doc 416071607 Param saveWrite 1 to store parameters; fieldbus writes are otherwise volatile.UINT16Read/write0 = DONE; 1 = SAVE (in progress)
HR3017doc 430183018 Comm fault funcReaction to fieldbus communication loss.UINT16Read/write0 = 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)
HR3018doc 430193019 Comm fault timeDelay before 3018 acts (0.0-600.0 s).UINT16× 0.1sRead/write
HR5301doc 453025302 EFB station IDModbus slave address (0-247).UINT16Read/write
HR5302doc 453035303 EFB baud rateBaud in 0.1 kbit/s units (e.g. 96 = 9.6 kbit/s).UINT16× 0.1kbit/sRead/write
HR5303doc 453045304 EFB parityUINT16Read/write0 = 8 NONE 1; 1 = 8 NONE 2; 2 = 8 EVEN 1; 3 = 8 ODD 1
HR5304doc 453055305 EFB ctrl profileUINT16Read/write0 = ABB DRV LIM; 1 = DCU PROFILE; 2 = ABB DRV FULL
HR5305doc 453065306 EFB OK messagesValid messages received; should keep rising.UINT16Read
HR5306doc 453075307 EFB CRC errorsMessages received with a CRC error.UINT16Read
HR5309doc 453105310 EFB par 10Parameter index shown at 40005 (default 103).UINT16Read/write
HR5310doc 453115311 EFB par 11Parameter index shown at 40006 (default 104).UINT16Read/write
HR9801doc 498029802 Comm prot selEnables the embedded Modbus and picks the port.UINT16Read/write0 = NOT SEL; 1 = STD MODBUS (EIA-485 via FMBA-01); 4 = EXT FBA; 10 = MODBUS RS232 (panel port)

Notes on this map

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

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.