S7-200 to ABB ACS800 Modbus RTU Communication Setup

David Krause19 min read
S7-200SiemensTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

The Siemens SIMATIC S7-200 (CPU 222, 224, 224 XP, 226) and ABB ACS800 industrial drive can be integrated over a serial fieldbus without requiring a dedicated Siemens PROFIBUS/USS stack when the application is point-to-point PLC-to-drive. The two most field-proven paths for an S7-200 talking to a third-party drive such as the ACS800 are:

  1. Modbus RTU on RS485 using the ABB RMBA-01 Modbus RTU Adapter and the Siemens Modbus Master library (MBUS_CTRL / MBUS_MSG subroutines) loaded into the S7-200 with STEP 7 Micro/WIN.
  2. PROFIBUS DP using the ABB RPBA-01 PROFIBUS DP Adapter on the drive and the EM277 PROFIBUS DP slave module on the S7-200 (a configuration that effectively turns the S7-200 into a PROFIBUS slave and pairs it with a PROFIBUS master, which is rarely the right choice for a single PLC-to-drive link).

For a one-PLC-to-one-drive link, Modbus RTU is almost always selected because it requires no extra hardware on the S7-200 beyond the on-board Port 0 (or Port 1 on CPU 224 XP/226), and the ACS800 only needs the RMBA-01 plugged into Slot 1 of the drive's DDCS chain. The same hardware topology also works for an S7-200 driving an Allen-Bradley PowerFlex, Schneider Altivar, Yaskawa A1000, or Danfoss VLT 5000/6000 — only the register map changes.

Selection rule of thumb: if the VFD supports a standard Modbus RTU slave on a 2-wire RS485 port, use Modbus RTU. Use PROFIBUS only when the project already requires PROFIBUS for other nodes (remote I/O, multiple drives, HMI) or when a third-party master (not the S7-200) is the fieldbus controller.

Communication Architecture Options

Option S7-200 hardware ACS800 hardware Cable / connector Max nodes Typical cycle Recommended use
Modbus RTU (recommended) On-board Port 0/1 RS485 RMBA-01 in Slot 1 Shielded twisted pair, daisy-chain, 120 Ω terminations both ends Up to 31 slaves per segment 20–100 ms per transaction Single PLC to 1–4 drives, low data rate
PROFIBUS DP EM277 on right side bus RPBA-01 in Slot 1 PROFIBUS cable, 9-pin D-sub, 9.6 kbps to 12 Mbps Up to 125 slaves 1–10 ms PROFIBUS already in use on the machine
DeviceNet Not native to S7-200 RDNA-01 DeviceNet trunk / drop Up to 63 5–50 ms North-American machine builders
CANopen Not native to S7-200 RCAN-01 CANopen trunk Up to 127 1–10 ms European motion / safety projects
USS Port 0/1, USS library Not supported on ACS800 RS485 2-wire Up to 30 30–150 ms Use MicroMaster / SINAMICS V20/G110 only

The USS protocol is Siemens-proprietary and is NOT available on the ACS800; this is the single most common mistake when migrating from a MicroMaster-based line to an ACS800-based line. Do not load the Siemens USS_INIT / USS_CTRL libraries and try to address an ACS800 — the drive will never respond.

S7-200 Communication Port and Protocol Capabilities

The S7-200 family ships with one or two RS485 ports that can each be configured in STEP 7 Micro/WIN (V4.0 SP9 or later recommended) for one of four modes:

  • PPI (Siemens point-to-point, default)
  • MPI (multi-point, Siemens master/slave)
  • Freeport (user-defined protocol, ASCII or RTU)
  • Modbus RTU master/slave (via library instructions)

For Modbus RTU master, the S7-200 uses two subroutine calls from the Modbus Master library:

Subroutine Purpose Called
MBUS_CTRL Initialize the port, set baud rate, parity, mode (0=RTU, 1=ASCII), timeout Once, on first scan
MBUS_MSG Trigger a single Modbus read or write transaction to one slave Per transaction, can be triggered cyclically

Per the SIMATIC S7-200 Programmable Controller System Manual (6ES7298-8FA30-8BH0), the on-board RS485 ports support baud rates 1.2k, 2.4k, 4.8k, 9.6k, 19.2k, 38.4k, 57.6k, and 115.2 kbps with half-duplex 2-wire connection. Modbus RTU master mode is supported on Port 0 and Port 1.

ABB ACS800 Fieldbus Adapter Options

The ACS800 was supplied from 1995 to roughly 2014 and uses the DDCS (Distributed Drives Communication System) optical/serial backplane. Each ACS800 can accept one of the following optional adapter cards in Slot 1 (and an additional one in Slot 2 in some firmware versions):

Adapter code Fieldbus Order code suffix Handbook reference
RMBA-01 Modbus RTU on RS485 +K454 3AFE64498833
RPBA-01 PROFIBUS DP +K454 3AFE64504215
RDNA-01 DeviceNet +K457 3AFE64504223
RCAN-01 CANopen +K458 3AFE64504231
RDCO-01 DDCS fiber (for drive-to-drive and panel link) Standard on ACS800 3AFE64492253

Fieldbus option modules are documented in the ABB Drives Library under the ACS800 product family. The relevant handbooks are linked from the ABB ACS800 product page and the RPBA-01 PROFIBUS DP Adapter User's Manual (3AFE64504215). For Modbus RTU, the RMBA-01 manual is 3AFE64498833.

Important: the RMBA-01's Modbus address range is 1–247. The default address is 1 and the default baud rate is 9600 bps, even parity, 8E1. All three values must match what is configured on the S7-200 MBUS_CTRL block.

Hardware Wiring — Modbus RTU Path (RMBA-01)

Both the S7-200 Port 0 (or Port 1) and the RMBA-01 use a 9-pin D-sub female with the same RS485 2-wire pinout (A = D−, B = D+ on the Siemens side; the equivalent on the RMBA-01 is also marked A/B, with shield on Pin 1 / housing). Cable recommendations follow the Modbus over serial line specification Modbus_over_serial_line_V1_02.pdf:

  • Shielded twisted pair, characteristic impedance ≈120 Ω, capacitance < 100 pF/m, e.g. Belden 3106A or Lapp ETHERLINE 6XS.
  • Maximum length without repeater: 1000 m at ≤ 19.2 kbps, 600 m at 38.4 kbps, 200 m at 115.2 kbps.
  • 120 Ω termination resistor at BOTH physical ends of the trunk; ABB typically ships a termination jumper on the RMBA-01 that is enabled for the end-of-line drive.
  • Shield grounded at one end only (drive end) to avoid ground loops.
S7-200 Port 0/1 pin Signal RMBA-01 pin (X2) Color (Belden 3106A)
3 B (D+) B Clear / blue
8 A (D−) A Black / white
5 Logic GND Common Drain / shield
1, housing Shield Pin 1 / housing Shield

ACS800 Communication Parameter Configuration

With the RMBA-01 fitted and the drive powered, navigate to the control panel (ACS-CP-A or similar CDP / DCS panel) and set the following parameters. Refer to the ACS800 Firmware Manual (3AFE64671194) for canonical definitions and full parameter list.

Parameter Name Recommended value Meaning
98.02 COMM MODULE FIELDBUS (or NO = NONE if not yet configured) Activates the fieldbus adapter in Slot 1
98.04 COMM PROFILE GENERIC (or ABB DRIVES / CSA 2.8/3.0) Selects the Modbus register profile
51.01 MODBUS NODE 1 (or 2…247) Modbus slave address, must match the MBUS_MSG Slave parameter
51.02 BAUDRATE 9600 (or 19200) 9600 bps is the safe default
51.03 PARITY 2 (= 8E1, even parity, 1 stop) Must match the S7-200 MBUS_CTRL parity
51.04 MODBUS TIMEOUT 10 10× heartbeat cycle
51.05 WRITE TIME-OUT 5 5 s write disable
10.01 EXT1 START/STOP/DIR COMM.CW Allows start/stop from the fieldbus control word
10.02 EXT1 DIR LOCK REQUEST Direction commanded by control word bit 11
10.03 EXT1 REF SELECT COMM.REF Reference 1 sourced from fieldbus
10.04 EXT2 START/STOP/DIR NOT SEL (if not used) Disables EXT2 unless needed
11.02 EXT1/EXT2 SEL EXT1 Use EXT1 (fieldbus)
13.01 MINIMUM AI1 0.000 Keep analog input as backup only
21.01 START FUNCTION AUTO (or CNST DC MAGN for flying start) Direct-on-line, no DC pre-magnetization
21.02 STOP FUNCTION COAST (or RAMP) COAST lets the fieldbus hold the run signal
Critical step: parameter 98.02 must be changed to FIELDBUS and the drive must be re-powered (or a PARAM SAVE performed, parameter 16.07 = 1) before the RMBA-01 will answer Modbus requests. The drive's control panel will show the active profile and a status message such as "FIELDBUS ACTIVE".

Modbus Register Map for ABB ACS800

With the profile ABB DRIVES (the default and most widely deployed profile) selected, the ACS800 exposes a standard 16-word process data area plus parameter access on Modbus holding registers. The convention follows Modicon-compatible 4xxxx addressing; PLCs typically send the address as 4xxxx-40001 = zero-based in the MBUS_MSG block.

4xxxx reg Zero-based Direction Name Width Description
40001 0 M→D Control Word 16-bit Start, stop, fault reset, ramp hold, etc.
40002 1 M→D Reference 1 16-bit Speed ref 0–20000 ≡ 0–100 % of 11.05 REF1 MAX (default 1500 rpm)
40003 2 M→D Reference 2 16-bit Process ref (e.g. PID setpoint)
40004 3 M→D Reserved 16-bit —
40005 4 D→M Status Word 16-bit Run, ready, fault, at setpoint
40006 5 D→M Actual 1 16-bit Output frequency or speed, 1 = 0.01 Hz or 1 rpm (per 4.01 / 4.02)
40007 6 D→M Actual 2 16-bit Motor current, motor torque, etc.
40008 7 D→M Actual 3 16-bit Selected by 4.03
40009–40016 8–15 D→M Actuals 4–11 / diagnostics 16-bit Configurable via parameters 4.04–4.11
40017… 16+ M↔D Drive parameters 16-bit Parameter access; address = parameter_number*100 − 1 + group_offset (vendor-specific)

The Control Word is the master→drive command set. Bits per the ABB Drives profile:

Bit Name Function
0 ON 0 = stop with ramp per 22.02, 1 = start
1 OFF2 0 = coast stop (override ramp), 1 = ramp allowed
2 OFF3 0 = emergency stop (max decel per 22.04), 1 = no e-stop
3 FAULT RESET 0→1 rising edge resets an active fault
4 HOLD ACC/DEC 1 = freeze ramp
5 RAMP2 1 = use accel/decel pair 2 (22.05/22.06)
6 REF2 SEL 1 = use reference 2 instead of reference 1
7 — Reserved (0)
8 JOG1 1 = jog at 11.06 JOG SPEED
9 JOG2 1 = jog at 11.07 JOG2 SPEED
10 RAMP BYPASS 1 = direct from ref to output, no ramp
11 DIR 0 = forward, 1 = reverse (only if 10.02 = REQUEST)
12 — Reserved (0)
13 — Reserved (0)
14 — Reserved (0)
15 — Reserved (0)

The Status Word returned by the drive (reg 40005):

Bit Name Meaning
0 RDY_ON Ready to switch on (no fault, charge ok)
1 RDY_RUN Ready to receive run command (no off2, no off3)
2 RDY_REF Drive is in remote control, references valid
3 TRIPPED Fault present
4 OFF2_STA 0 = OFF2 active
5 OFF3_STA 0 = OFF3 active
6 SWC_ON_INHIB Switch-on inhibited (e.g. STO or run enable missing)
7 ALARM Warning active
8 AT_SETPOINT Output = reference (within tolerance)
9 REMOTE Drive in remote (fieldbus) control
10 ABOVE_LIMIT Actual above parameter 20.07 MAX SPEED LIMIT
11 EXT2_ACT External control location 2 active
12 RUNNING Inverter is modulating (motor energized)
13 — Reserved
14 REVERSED Output frequency negative
15 — Reserved
If the active profile is set to GENERIC (parameter 98.04), the data layout is identical but the semantics of Control Word and Status Word follow the generic Modbus protocol. For OEM control it is safer to keep the ABB DRIVES profile because most ABB firmware versions, the Start Drive macro (47.01) and the DriveWindow Light macro libraries expect it.

S7-200 Modbus Master Programming

The Modbus Master library is shipped with STEP 7 Micro/WIN as the example project "Modbus Master". It consists of two instruction blocks to be called from a Main OB1 cycle. The library pre-allocates 1 KB of V-memory for the stack (default VW0…VW1023); relocate it to a free range with V-memory Overview.

Initialization (Network 1, first-scan only):

NETWORK 1 // Initialize Modbus Master on Port 0
SM0.1  MBUS_CTRL
        Mode: 1 // 0 = PPI, 1 = Modbus RTU master
        Baud: 9600 // 9.6 kbps
        Parity: 2 // 0=none, 1=odd, 2=even, 3=no parity (2 stop)
        Timeout: 1000 // ms response timeout
        Done: VB100.0
        Error: VB100.1

Cyclic command to write Control Word + Reference 1 (Network 2, called every 50 ms via a timer):

NETWORK 2 // Start command + reference to drive at address 1
T37 (50 ms pulse)  MBUS_MSG
        First: 1 // first call, 0 for subsequent
        Slave: 1 // Modbus address of the ACS800
        RW: 1 // 1 = write multiple (FC16), 0 = read (FC03), 2 = write single (FC06), 3 = read input (FC04)
        Addr: 0 // 4xxxx register 40001 minus 40001 (zero-based)
        Count: 2 // write 2 words: Control Word + Reference 1
        DataPtr: &VW200 // pointer to holding buffer in V memory
        Done: VB101.0
        Error: VB101.1

Build the two-word payload in V memory BEFORE calling MBUS_MSG. In a separate network, move the control-word pattern and the scaled reference into VW200 and VW202:

NETWORK 3 // Build control word 0x047F (Run enable, no off2/off3, ramp2, no jog, dir = fwd)
LDB= V10.0, 1 // V10.0 = "RunRequest" from HMI/operator
        MOVW 16#047F, VW200
        // Hex 047F = bits: ON=1, OFF2=1, OFF3=1, /RESET=0, HOLD=0, RAMP2=1, REF2=0, JOG=0, DIR=0
        // Bit 5 (RAMP2) = 1 selects accel pair 2; bit 6 (REF2) = 0 uses REF1
        // Bit 0 (ON) = 1 starts the drive after a 0→1 transition with no fault active
NETWORK 4 // Build reference: 1500 rpm * 20000 / 11.05 default 1500 = 20000 dec
MOVW +20000, VW202 // 20000 ≡ 100 % of 11.05 REF1 MAX (default 1500 rpm)

Read-back of Status Word + Actual 1 (Network 5, called once every 100 ms):

NETWORK 5 // Read Status Word and Actual 1 from slave 1
T38 (100 ms pulse)  MBUS_MSG
        First: 1
        Slave: 1
        RW: 0 // FC03 read holding registers
        Addr: 4 // 4xxxx reg 40005 minus 40001 = 4
        Count: 2 // read SW + ACT1
        DataPtr: &VW210
        Done: VB102.0
        Error: VB102.1

After Done, the S7-200 has 16-bit Status Word in VW210 and 16-bit Actual 1 in VW212. Actual 1 is interpreted per parameter 4.01 SELECT ACTUAL 1 in the drive (default 0 = SPEED, scaled 1 = 1 rpm; default 4.02 = MOTOR SPEED FILTERED).

Fault reset is performed by toggling bit 3 of the control word. The typical sequence in S7-200 ladder:

NETWORK 6 // Edge-trigger fault reset when operator pushes reset
EU  V10.1 // "ResetRequest" from HMI
        // XOR the current control word with 0x0008 to invert bit 3 for one cycle
        MOVW VW200, VW204
        XORW 16#0008, VW204
        MOVW VW204, VW200 // overwrite for next write transaction
The S7-200 Modbus Master library is single-master and strictly half-duplex; do NOT overlap MBUS_MSG calls. Only one transaction can be in flight at a time. Use a sequencer (DRUM, sequencer SB, or simply time-multiplexed timer pulses) to schedule the writes and reads, and gate the next MBUS_MSG on the Done bit of the previous one. The library internally enforces a 3.5 character inter-frame delay to comply with the Modbus RTU spec.

Alternative PROFIBUS Path (RPBA-01 + EM277)

If PROFIBUS is mandatory because the rest of the machine already runs DP, the ACS800 can be equipped with an RPBA-01 PROFIBUS DP Adapter. The S7-200 does not natively act as a PROFIBUS master — only the S7-300/400/1200/1500 do. To still drive an RPBA-01 from an S7-200, the typical workarounds are:

  1. Add an EM277 PROFIBUS DP slave module to the S7-200 and pair it with an S7-300/400 or a third-party PROFIBUS master such as a Siemens S7-1200 CM 1243-5 master; the S7-200 then becomes a DP slave and exchanges V-memory with the master, while the master is the one talking RPBA-01.
  2. Add a third-party PROFIBUS master card to a PC, which defeats the purpose of having a S7-200.

If the S7-200 is the only controller on the machine, PROFIBUS is the wrong choice — switch to Modbus RTU instead. The cost of the EM277 plus a DP master easily exceeds the cost of an RMBA-01 plus a Modbus scanner for any S7-300/1200 replacement that may come later.

Common Fault Codes and Diagnostics

The ACS800 reports faults on its CDP panel and in status word bit 3. The most common faults encountered during S7-200 commissioning:

Fault code Name Likely cause during S7-200 commissioning
FF01 OVERCURRENT Acceleration time too short, motor stalled
FF02 DC OVERVOLT Deceleration too short, regen load, line surge
FF03 DEV OVERTEMP Cooling fan failed, blocked air flow, ambient too high
FF04 SHORT CIRCUIT Motor cable insulation failure, VFD output short
FF05 DC UNDERVOLT Line drop-out, soft-charge not complete
FF06 AI < MIN Analog input below parameter 13.01; not relevant in fieldbus mode but still active
FF07 AI LOSS Analog reference lost; not used if 10.03 = COMM.REF but check 10.04 if EXT2
FF08 FLT MOTOR PROT Motor thermal model tripped, check 30.01..30.04
FF11 FIELDBUS COMMUN Modbus RTU timeout, bad wiring, baud mismatch, slave address wrong
FF12 COMM MODULE RMBA-01 missing or not recognised; check 98.01–98.02
FF13 EXTERNAL FAULT DI3 / 8.03 external fault input triggered
FF14 EARTH FAULT Sum of phase currents too high; insulation check needed
FF15 PRECHARGE Soft-charge circuit failed; line or contactor issue
FF17 LINE CONV Active front end or line-side converter fault
FF18 ID RUN FAIL Identification run was not completed at first start
FF32 FAN Cooling fan tachometer feedback lost
FF41 IGBT OVERTEMP Output stage thermal overload
FF45 STO Safe Torque Off circuit open (XSTO connector)
FF48 PARAM CRC Parameter checksum failed after firmware update

The Modbus side error codes returned by MBUS_MSG Error word (V-memory per library documentation):

Dec Hex Cause Fix
0 0x0000 No error —
1 0x0001 Parity / framing error (line quality) Check termination, shielded cable, ground
2 0x0002 Overrun on Port 0 / 1 Reduce poll rate or move to Port 1
3 0x0003 CRC / LRC error from slave Re-check baud and parity
4 0x0004 Illegal Modbus function code in reply Slave firmware mismatch
5 0x0005 Illegal data address Verify address against drive profile
6 0x0006 Illegal data value Reference out of range, count out of range
7 0x0007 Slave failure response (drive busy, e.g. during ID run) Retry after 1 s
8 0x0008 Response time-out (no reply within Timeout ms) Wiring, slave address, baud rate
9 0x0009 Port busy (previous MBUS_MSG still in flight) Gate MBUS_MSG on previous Done
10 0x000A Library not initialized (no MBUS_CTRL call) Call MBUS_CTRL on SM0.1
11 0x000B Library internal buffer overflow Reduce transaction count per cycle

Commissioning Verification Procedure

  1. Disconnect the motor from the drive output terminals (U2, V2, W2) or lock the mechanical load out. Move parameter 21.03 to STOP=COAST if you want a safe coast on Stop.
  2. With the drive in local panel control (LOC mode on CDP), confirm the drive starts and runs the motor locally. This isolates motor + drive wiring from fieldbus issues.
  3. Set 10.01 = COMM.CW and 10.03 = COMM.REF. Save with 16.07 = 1, then re-power the drive to activate the fieldbus profile (98.02 must be FIELDBUS).
  4. Connect the S7-200 Port 0 to the RMBA-01 X2. Pull the connector and re-seat it to verify a good contact.
  5. From the S7-200 program, force MBUS_CTRL Mode=1, Baud=9600, Parity=2, Timeout=1000, and monitor VB100.1 Error. If Error is 0, the link is alive.
  6. Run a single MBUS_MSG to read register 4 (Status Word) with Count=1. If Status Word is non-zero, the drive is responding. A common starting value is 0x0467 (Ready_On + Ready_Run + Ready_Ref + Remote).
  7. Run a single MBUS_MSG to write register 0 (Control Word) with Count=1, Data = 0x047F (or 0x047E for coast; 0x047E means ON=0, OFF2=1, OFF3=1). Monitor Actual 1 to confirm the drive is at zero speed and the status word transitions.
  8. Write 0x0000 to the Control Word, then 0x047F to command a start. Actual speed should ramp from 0 to Reference 1 with accel per 22.02 (default 10 s for ACS800 standard macros).
  9. Write 0x0000 to the Control Word to ramp stop, or 0x047E to coast. Watch the Status Word bit 0 and bit 12 transitions on the HMI.
  10. Re-attach the motor and run a no-load spin check before coupling the load.
  11. Run a full ID run (parameter 99.10 = ID MAGN or ID RUN per the motor nameplate) so the drive learns the motor model. Without it, torque and current loops are not optimised and nuisance over-current faults are common on first production runs.
  12. Document the working program and lock the parameters with 16.08 PARAM LOCK = 1 if required by the end user.

Notes and Best Practices

  • For multi-drive applications (one S7-200 controlling two or more ACS800 units on the same RS485 trunk), set 51.01 MODBUS NODE to a unique value per drive (1, 2, 3 …) and use the S7-200 ladder to multiplex the Slave parameter of MBUS_MSG through a routine. Total cycle time is roughly (N × 50 ms) for a typical 4-word read/write, so for 4 drives keep the poll rate above 200 ms per drive to avoid stack overflow in the S7-200.
  • If the application is high-speed (e.g. winder dancer / unwinder tension control with closed-loop PID), the 50–200 ms latency of Modbus RTU is too slow. Migrate the controller to an S7-1200/1500 with PROFINET and a Yaskawa GA500 / Sinamics S120 / ABB ACS880 with PROFINET adapter (RPNT-01 / FENA-11).
  • Use a USB-to-RS485 isolator such as the FTDI USB-RS485-WE for PC-side commissioning, with ABB's DriveWindow Light or Drive Composer entry tool. Never connect the drive's RS485 directly to a non-isolated PC port during commissioning — the ground potential difference will damage the RMBA-01.
  • If the S7-200 is a CPU 224 XP or 226 with Port 1 free, use Port 1 for Modbus and Port 0 for programming/HMI. This decouples the fieldbus traffic from the Micro/WIN upload.
  • For S7-200 replacement: the modern Siemens replacement is the S7-1200 (CPU 1214C / 1215C) with the Modbus_Comm_Load and Modbus_Master instruction blocks, or the S7-1500 with Modbus_Master in the user library. The ACS800 register map remains identical.
  • The S7-200 is at end-of-life as of 2017, and Siemens officially stopped support on 1 Oct 2023. For new installations consider the S7-1200/S7-1500 + ACS880 platform.

Frequently Asked Questions

Can I use the Siemens USS library (USS_INIT / USS_CTRL) to talk to an ABB ACS800?

No. USS is a proprietary Siemens protocol implemented on MicroMaster, SINAMICS V20/G110/G120, and SIMOVERT drives. The ACS800 is a third-party drive and does not support USS. Use the Modbus RTU library (MBUS_CTRL/MBUS_MSG) with the RMBA-01 adapter instead.

What is the simplest S7-200 program to start the ACS800 over Modbus RTU?

Two instructions: MBUS_CTRL with Mode=1, Baud=9600, Parity=2, Timeout=1000; then MBUS_MSG to write holding register 0 (Control Word) with two words — the control word (0x047F for Run) and Reference 1 (e.g. 1500 for 1500 rpm if 11.05 = 1500). Watch Status Word bit 12 (RUNNING) go to 1 to confirm start.

The S7-200 reports Modbus error 8 (time-out) — what is the first thing to check?

Verify in this order: (1) drive parameter 98.02 = FIELDBUS, (2) 51.01 node address matches MBUS_MSG Slave, (3) 51.02 baud and 51.03 parity match MBUS_CTRL, (4) cable is wired A → B, B → A (note the cross), (5) 120 Ω termination present at both ends. A common trap is using a 2-wire/4-wire adapter that swaps A/B.

How many ACS800 drives can a single S7-200 control over RS485?

Up to 31 drives on a single RS485 segment at 9600 bps, limited in practice by the Modbus scan time. For 1–4 drives, 100 ms per drive is realistic (40 ms per MBUS_MSG transaction plus the library inter-frame delay). Beyond 8 drives, switch to an S7-1200/1500 with two RS485 ports or migrate to PROFINET with an RPNT-01/FENA-11.

Do I need an ID run on the ACS800 before S7-200 control?

Yes. Run parameter 99.10 ID RUN (= ID MAGN for standard induction motors) before the first production run. Without it the drive uses default motor parameters, which may cause torque ripple, oscillation at low speed, or nuisance overcurrent trips when the S7-200 commands a fast ramp.

Is the S7-200 / ACS800 combination supported by Siemens and ABB today?

The S7-200 reached end-of-life on 1 October 2023 (per Siemens Industry Online Support), and the ACS800 is in life-cycle phase Limited / Obsolete on the ABB Drives portfolio. Spares and firmware remain available, but new projects should migrate to S7-1200/S7-1500 with an ACS880 drive on PROFINET.

Back to blog