ABB ACS355 Modbus register map
Compact ABB machinery drive for 0.37 to 22 kW motors. The embedded fieldbus interface speaks Modbus RTU and maps the control word, status word, two references, selectable actual values and every drive parameter to 4xxxx holding registers.
- Protocol
- Modbus RTU (embedded fieldbus, RS-232 or EIA-485)
- Defaults
- Station ID is set with parameter 5302 (range 0 to 247). The communication profile is chosen with parameter 5305 (ABB DRV LIM, ABB DRV FULL or DCU PROFILE). Parameter writes over Modbus are volatile; parameter 1607 saves them (p. 326).
- Addresses in the manual
- Modicon style numbers (for example 40001 is holding register 0)
- 32 and 64-bit values
- Not stated in the manual
- Registers listed
- 43
- Checked against
- 3AUA0000066143 Rev E, effective 2020-11-02
Address base. Registers are printed in the 4xxxx style. The manual says register 4xxxx is addressed as xxxx minus 1 in the Modbus message, for example 40002 is addressed as 0001, so the wire address is the printed number minus 40001 (p. 326). Registers 40101 to 49999 map to drive parameters 0101 to 9999 (group number as thousands and hundreds, parameter number as tens and ones) (p. 325). The manual does not state whether parameter values are signed, so the types here follow each quantity's physical range. For example 40001 in the manual (Control word) is address 0 on the wire.
Word order. All rows listed here are single 16-bit registers, so no multi-register word order applies. The DCU profile 32-bit control and status words are split into separate low and high word registers.
Modbus Poll and the Modbus protocol itself count from 0. The "Wire address" column is the number to type into Modbus Poll.
Downloads
The register table has every column on this page. The blocks file imports into Modbus Poll. The template JSON holds the same blocks plus unit, scale and access for scripts.
Registers
| Manual | Wire | Register | Type | Regs | Unit | Scale | Access | Area |
|---|---|---|---|---|---|---|---|---|
| 40001 | 0 | Control wordControlWord · ABB drives profile only (parameter 5305 set to ABB DRV LIM or ABB DRV FULL). Bit layout on p. 329-330. Parameter 5319 shows a hex copy of the word. |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 40002 | 1 | External reference REF1Reference1 · Scaling for the ABB drives profile: 20000 equals 100% (parameter 1105) and negative values are two's complement (p. 322). |
int16 | 1 | 1 | RW | Holding (FC03) | |
| 40003 | 2 | External reference REF2Reference2 · Scaling for the ABB drives profile: 10000 equals 100% (parameter 1108) for speed, frequency, torque or PID reference types (p. 322). |
int16 | 1 | 1 | RW | Holding (FC03) | |
| 40004 | 3 | Status wordStatusWord · ABB drives profile only. Bit layout on p. 330-331. Parameter 5320 shows a hex copy of the word. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40005 | 4 | Actual value 1ActualValue1 · The drive signal mapped here is chosen with parameter 5310. Registers 40005 to 40012 carry actual values 1 to 8, selected by parameters 5310 to 5317. |
int16 | 1 | 1 | R | Holding (FC03) | |
| 40006 | 5 | Actual value 2ActualValue2 · The drive signal mapped here is chosen with parameter 5311. |
int16 | 1 | 1 | R | Holding (FC03) | |
| 40031 | 30 | DCU profile control word, low wordDCU_ControlWordLSW · Mirrors parameter 0301. DCU profile only (5305 = DCU PROFILE). Bit layout on p. 333-334. |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 40032 | 31 | DCU profile control word, high wordDCU_ControlWordMSW · Mirrors parameter 0302. DCU profile only. Bit layout on p. 335. |
bitfield16 | 1 | 1 | RW | Holding (FC03) | |
| 40033 | 32 | DCU profile status word, low wordDCU_StatusWordLSW · Mirrors parameter 0303. DCU profile only. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40034 | 33 | DCU profile status word, high wordDCU_StatusWordMSW · Mirrors parameter 0304. DCU profile only. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40101 | 100 | Motor speed with direction (0101)SpeedAndDirection · Drive parameter 0101. A negative value means reverse rotation. |
int16 | 1 | rpm | 1 | R | Holding (FC03) |
| 40102 | 101 | Motor speed (0102)Speed · Drive parameter 0102. |
int16 | 1 | rpm | 1 | R | Holding (FC03) |
| 40103 | 102 | Output frequency (0103)OutputFrequency · Drive parameter 0103. |
uint16 | 1 | Hz | 0.1 | R | Holding (FC03) |
| 40104 | 103 | Motor current (0104)Current · Drive parameter 0104. |
uint16 | 1 | A | 0.1 | R | Holding (FC03) |
| 40105 | 104 | Motor torque percent of nominal (0105)Torque · Drive parameter 0105. |
int16 | 1 | % | 0.1 | R | Holding (FC03) |
| 40106 | 105 | Motor power (0106)Power · Drive parameter 0106. |
int16 | 1 | kW | 0.1 | R | Holding (FC03) |
| 40107 | 106 | DC bus voltage (0107)DCBusVoltage · Drive parameter 0107. |
uint16 | 1 | V | 1 | R | Holding (FC03) |
| 40109 | 108 | Output voltage (0109)OutputVoltage · Drive parameter 0109. |
uint16 | 1 | V | 1 | R | Holding (FC03) |
| 40110 | 109 | Drive IGBT temperature (0110)DriveTemperature · Drive parameter 0110. |
int16 | 1 | °C | 0.1 | R | Holding (FC03) |
| 40113 | 112 | Active control location (0113)ControlLocation · Drive parameter 0113. 0 = local, 1 = EXT1, 2 = EXT2. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40114 | 113 | Running time counter (0114)RunTime · Drive parameter 0114. |
uint16 | 1 | h | 1 | R | Holding (FC03) |
| 40115 | 114 | Energy counter (0115)kWhCounter · Drive parameter 0115. Rolls over at 65535. |
uint16 | 1 | kWh | 1 | R | Holding (FC03) |
| 40120 | 119 | Analog input AI1 relative value (0120)AnalogInput1 · Drive parameter 0120. |
uint16 | 1 | % | 0.1 | R | Holding (FC03) |
| 40121 | 120 | Analog input AI2 relative value (0121)AnalogInput2 · Drive parameter 0121. |
uint16 | 1 | % | 0.1 | R | Holding (FC03) |
| 40124 | 123 | Analog output AO1 value (0124)AnalogOutput1 · Drive parameter 0124. |
uint16 | 1 | mA | 0.1 | R | Holding (FC03) |
| 40126 | 125 | Process PID1 output (0126)PID1Output · Drive parameter 0126. |
int16 | 1 | % | 0.1 | R | Holding (FC03) |
| 40301 | 300 | Fieldbus command word 1 (0301)FBCmdWord1 · Drive parameter 0301. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40302 | 301 | Fieldbus command word 2 (0302)FBCmdWord2 · Drive parameter 0302. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40303 | 302 | Fieldbus status word 1 (0303)FBStsWord1 · Drive parameter 0303. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40304 | 303 | Fieldbus status word 2 (0304)FBStsWord2 · Drive parameter 0304. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40305 | 304 | Fault word 1 (0305)FaultWord1 · Drive parameter 0305. One bit per fault, for example bit 0 overcurrent and bit 15 earth fault. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40306 | 305 | Fault word 2 (0306)FaultWord2 · Drive parameter 0306. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40307 | 306 | Fault word 3 (0307)FaultWord3 · Drive parameter 0307. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40308 | 307 | Alarm word 1 (0308)AlarmWord1 · Drive parameter 0308. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40309 | 308 | Alarm word 2 (0309)AlarmWord2 · Drive parameter 0309. |
bitfield16 | 1 | 1 | R | Holding (FC03) | |
| 40401 | 400 | Code of the latest fault (0401)LastFault · Drive parameter 0401. 0 means the fault history is clear. |
uint16 | 1 | 1 | R | Holding (FC03) | |
| 40404 | 403 | Motor speed at latest fault (0404)SpeedAtFault · Drive parameter 0404. |
int16 | 1 | rpm | 1 | R | Holding (FC03) |
| 40405 | 404 | Output frequency at latest fault (0405)FreqAtFault · Drive parameter 0405. |
uint16 | 1 | Hz | 0.1 | R | Holding (FC03) |
| 42001 | 2000 | Minimum speed (2001)MinimumSpeed · Drive parameter 2001. |
int16 | 1 | rpm | 1 | RW | Holding (FC03) |
| 42002 | 2001 | Maximum speed (2002)MaximumSpeed · Drive parameter 2002. |
uint16 | 1 | rpm | 1 | RW | Holding (FC03) |
| 42202 | 2201 | Acceleration time 1 (2202)AccelTime1 · Drive parameter 2202. |
uint16 | 1 | s | 0.1 | RW | Holding (FC03) |
| 42203 | 2202 | Deceleration time 1 (2203)DecelTime1 · Drive parameter 2203. |
uint16 | 1 | s | 0.1 | RW | Holding (FC03) |
| 45302 | 5301 | Embedded fieldbus station ID (5302)EFB_StationId · Drive parameter 5302. Range 0 to 247. |
uint16 | 1 | 1 | RW | Holding (FC03) |
Scale is the number to multiply the raw value by to get the unit.
Open in Modbus Poll
- Download the Modbus Poll blocks file.
- Open Modbus Poll, connect to the device and set its unit ID. The manual does not state the word order for 32-bit values. Check one known value (a voltage or a counter) and switch the setting if it reads wrong.
- In the blocks panel on the right, click Import CSV and pick the file. CSV import is a Pro feature. Without Pro, Modbus Poll polls the first 20 values of your blocks.
- The wire addresses are already in the file, so there is no 0-based or 1-based conversion to do.
Once the values look right, export the tag list to Ignition, Kepware, Node-RED, Home Assistant or Voltrus SCADA.
Source and accuracy
Manufacturer document: ACS355 drives user's manual (library.e.abb.com)
3AUA0000066143 Rev E, effective 2020-11-02, p. 183-190, 222, 233-234, 290, 322-335. Read on 2026-10-24.
Addresses, types, units and scale are taken from the document above. Names and descriptions are written by Voltrus. Firmware versions can differ, so confirm a value on your own device before you rely on it.
Found a mistake? Report it by email with the register address and the manual page.