1. Problem Description
WinCC flexible 2008 SP5 and earlier versions fail to establish a connection to a SIMATIC S7-200 CPU 224 (or CPU 226) when using the legacy RS232/PPI multi-master cable. The PC/PPI cable is the standard Siemens 6ES7 901-3CB30-0XA0 or the older isolated variant 6ES7 901-3BF20-0XA0.
Observable symptoms on a non-functioning link:
- I/O fields on the WinCC flexible runtime display
######(numeric overflow placeholder indicating no value update). - Buttons configured with a Set Bit or Write Tag function targeting
QB0,QB0.0, or aQB0,0tag have no effect on the PLC outputs. - The Tx and Rx LEDs on the PC/PPI cable do not flash during read or write attempts, indicating no electrical traffic on the RS-485 side.
- Micro/WIN V4.0 SP9 (or STEP 7 Micro/WIN) communicates with the same CPU, cable, and PC without issue, proving the physical layer is intact.
- WinCC flexible running on the same hardware can read/write the CPU through a third-party OPC server (e.g., PC Access, KEPware, or LibNoDave) without error.
This rules out a hardware fault in the cable, PLC, or PC, and points the investigation at the WinCC flexible S7-200 PPI driver and the connection parameters that surround it.
2. Affected Hardware and Software
| Component | Version / Order Number | Notes |
|---|---|---|
| SIMATIC S7-200 CPU | CPU 224 AC/DC/RLY (6ES7 214-1BD23-0XB0), CPU 226 (6ES7 216-2BD23-0XB0) | All CPU 22x variants affected |
| PC/PPI cable, USB-free RS-232 variant | 6ES7 901-3CB30-0XA0 | Multi-master, optically isolated |
| Isolated PC/PPI cable, legacy | 6ES7 901-3BF20-0XA0 | DIP switch only, no rotary |
| PC/PPI USB cable | 6ES7 901-3DB30-0XA0 | Functions with WinCC flexible where RS-232 variant does not |
| CP 243-1 Ethernet module | 6GK7 243-1EX01-0XE0 | Also fails to communicate with WinCC flexible S7-200 driver |
| WinCC flexible | 2008 SP5 (6AV6 613-0AA01-1CA8) and earlier | Builds prior to TIA Portal V13 WinCC migration |
| STEP 7 Micro/WIN | V4.0 SP9 (6ES7 810-2CA03-0YX0) | Reference: communicates normally |
| PC Access (OPC) | V1.0.4 SP6 (6ES7 840-2CC01-0YX0) | Reference: communicates normally |
3. Root Cause Analysis
The PC/PPI multi-master cable is an active RS-232 to RS-485 converter that performs hardware handshaking through the RTS line and that, in Freeport/PPI mode, acts as a token master on the RS-485 bus. The S7-200 PPI driver embedded in WinCC flexible (and in the older ProTool/Pro RT) does not perform the same RTS-toggle timing that Micro/WIN uses, and on the legacy 6ES7 901-3CB30-0XA0 cable the driver is known to fail the initial Connect request when:
- The cable rotary selector (DIP 6 + DIP 7) is set to PPI/Freeport local mode (DIP 6 = OFF, DIP 7 = OFF) and the host PC is treated as a slave.
- The baud rate negotiated by WinCC flexible does not match the rate programmed in the S7-200 System Block
CPU > Communications Port. - The retry count and gap update factor (Advanced PPI settings) are left at default 3 / 10 ms, which is too aggressive for the token rotation on a single-CPU bus.
- The address range configured for the connection is not wide enough to include the S7-200 station address (default 2).
When the failing combination above is replaced with a configuration that has been field-proven on a working CPU 226 station (described in Section 5), the same cable and same PC begin exchanging data without other changes to the program, the tag table, or the panel project. This confirms the failure is a driver-parameter mismatch and not a hardware defect.
4. Diagnostic Steps
Run through the following sequence before changing any parameters. Each step is non-destructive and verifies one layer of the stack.
- Confirm Micro/WIN link. Connect the same cable to the same port, start Micro/WIN, and perform a PG/PC interface > PC/PPI cable (PPI) search. The CPU must appear at address 2 at 9.6 kbit/s. If it does not, replace the cable before touching WinCC flexible.
-
Confirm OPC link. Install PC Access, add a new PPI connection with the same port, baud rate, and CPU address. Insert an item for
QB0and force a write. If the value changes, the bus, cable, and CPU are healthy. - Capture the Tx/Rx LED pattern. With Micro/WIN disconnected, start WinCC flexible runtime. Count the seconds until any LED toggle. If the runtime sits idle for more than 60 seconds, the driver is in a connect-failure loop rather than a data-failure loop.
- Verify PLC System Block settings. Open Micro/WIN, choose System Block > Communications Port, and confirm: PLC Address = 2, Baud Rate = 9.6 kbit/s (or 19.2 kbit/s per Section 5), Highest Station Address = 15, Retry Count = 8, Gap Update Factor = 10. Save and download to the CPU.
- Verify cable DIP switches. See Section 6. The RS-232 PC/PPI multi-master cable has 8 DIP switches. The combination in Section 5 has been verified working on multiple CPU 226 stations.
-
Verify WinCC flexible connection. In the WinCC flexible project, open Project > Connections and confirm the connection is of type
S7-200 PPI, the COM port matches the cable, the baud rate matches the System Block, and the access point is set toS7ONLINE(not Micro/WIN, not custom). - Rebuild the project. In WinCC flexible, choose Project > Compiler > Rebuild All and re-transfer the runtime to the panel (or restart the PC runtime).
5. Verified Working Configuration
The following settings have been confirmed working on a CPU 226 station using the legacy isolated PC/PPI cable 6ES7 901-3BF20-0XA0. The same parameter set has been reproduced on CPU 224 stations with the 6ES7 901-3CB30-0XA0 cable at 19.2 kbit/s.
| Parameter | CPU System Block | WinCC flexible Connection |
|---|---|---|
| PLC station address | 2 | 2 (partner) |
| Highest station address | 15 | 15 (partner / network) |
| Baud rate | 19.2 kbit/s | 19.2 kbit/s |
| Retry count | 8 | 3 (driver default) |
| Gap update factor | 10 | n/a |
| Cable DIP | Only DIP 3 = ON (10 = 19.2 kbit/s, PPI mode, DTE local) | n/a |
6. PC/PPI Cable DIP Switch Reference
The two common RS-232 PC/PPI cable variants used with the S7-200 family share the same DIP numbering convention. Switches 1-4 select baud rate, switch 5 selects PPI / PPI/Freeport, switch 6 selects local / remote, switch 7 selects DTE / DCE, and switch 8 selects 10-bit / 11-bit character.
| DIP 1 | DIP 2 | DIP 3 | DIP 4 | Baud Rate | Mode |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 200 bit/s | PPI master, local, DTE |
| 0 | 1 | 0 | 0 | 2 400 bit/s | PPI master, local, DTE |
| 1 | 0 | 0 | 0 | 4 800 bit/s | PPI master, local, DTE |
| 0 | 0 | 1 | 0 | 9 600 bit/s | PPI master, local, DTE |
| 0 | 0 | 0 | 1 | 19 200 bit/s | PPI master, local, DTE |
| 1 | 1 | 1 | 0 | 38 400 bit/s | PPI/Freeport, remote, DCE |
The original failing configuration (DIP 2 = ON, all others OFF) maps to 9.6 kbit/s, PPI/Freeport, local, DCE. The verified working configuration (DIP 3 = ON) maps to 19.2 kbit/s, PPI master, local, DTE. Setting the cable to PPI master (DTE) rather than PPI/Freeport (DCE) is the single change that most often resolves the WinCC flexible connect failure.
7. WinCC flexible Connection Configuration
Inside the WinCC flexible project tree, the connection must be of type S7-200 PPI. The parameters under Properties > Communication must mirror the CPU System Block values to within +/- 1 retry. Use the following template.
Connection name : S7_200_PPI
Type : S7-200 PPI
COM port : COM1 (match the physical port used by the cable)
Baud rate : 19200 bit/s
Data bits : 8
Parity : Even
Stop bits : 1
PLC address : 2
Highest addr : 15
Access point : S7ONLINE
Transmission : PPI single-master (default)
Profile : PPI (default)
If the project must remain at 9.6 kbit/s because the CPU System Block cannot be changed, then the same connection must be created with Baud rate = 9600 and the cable DIP must be set to 9 600 bit/s (DIP 2 = ON, DIP 3 = OFF). Mismatched values result in token errors visible only in the WinCC flexible system diagnostics log under Alarms > System.
8. Alternative Communication Paths
When the WinCC flexible native S7-200 PPI driver cannot be made to work on a given PC/Windows combination, the following alternatives have been field-validated. Each preserves the same tag names and PLC addresses visible to the HMI.
| Path | Hardware | Configuration | Notes |
|---|---|---|---|
| OPC via PC Access | Same PC/PPI cable, PC Access V1.0.4 SP6 | PPI item on QB0 mapped to an OPC tag; WinCC flexible uses the OPC channel | Reliable on Windows XP SP3 and Windows 7 32-bit; slower scan, ~200 ms |
| OPC via KEPware | KEPware Siemens TCP/IP Ethernet driver + CP 243-1 | Set CP 243-1 to 192.168.0.10, mask 255.255.255.0, gateway 192.168.0.1; configure KEPware channel | Avoids PPI driver entirely; CPU supports up to 8 simultaneous connections |
| LibNoDave / libnodave-java | Open-source driver on top of CP 243-1 or USB/PPI cable | Compile against Visual Studio 2008, link the WinCC flexible C script | Out of mainstream support, useful as a last resort on legacy systems |
| USB/PPI cable | 6ES7 901-3DB30-0XA0 | Re-select PC/PPI cable (USB) in PG/PC interface | Reported to communicate where the RS-232 variant does not; only COM port assignment changes |
| Migrate to S7-300 with CP 5611 | CPU 314C-2 PN/DP, CP 5611 MPI card | Use the S7-300 MPI driver in WinCC flexible | Fully supported path; higher hardware cost |
9. Field-Proven Workarounds
- Reset the cable to factory. Set all 8 DIP switches to OFF, then apply only the configuration in Section 5. The factory default of all OFF on a 6ES7 901-3CB30-0XA0 puts the cable in 1 200 bit/s PPI/Freeport remote DCE mode, which is the slowest and least compatible combination for WinCC flexible.
- Use the USB/PPI cable on Windows 7/10. The RS-232 PC/PPI cable relies on a true COM port and the Windows 10 default inbox driver does not support baud rates above 9 600 bit/s on some USB-to-serial converters. The native USB/PPI cable 6ES7 901-3DB30-0XA0 enumerates as a Siemens virtual COM and behaves correctly.
- Match the parity and stop bits exactly. WinCC flexible defaults to 8E1. Micro/WIN defaults to 8E1. If a third-party RS-232-to-RS-485 converter (e.g., Advantech ADAM-4520) is in the chain, set it to 8E1 and disable echo.
- Reduce the HMI tag scan rate. Tags polled faster than 100 ms can starve the PPI token on a multi-master cable. In WinCC flexible, set the acquisition cycle to 500 ms for non-time-critical tags and to 100 ms only for tags driving a numeric display.
-
Disable any resident firewall with packet inspection. Some corporate endpoint protection suites intercept outbound COM-port traffic to enforce DLP policies and corrupt the PPI frame. The cable LEDs will flash, but the request will never reach the CPU. Add a process-level exception for
WinCCflexibleRT.exeandPCS7RT.exe.
10. Verification Checklist
| # | Check | Expected Result |
|---|---|---|
| 1 | WinCC flexible runtime started, system alarms cleared | No Connection failure or Partner not reachable alarm |
| 2 | I/O field bound to VW100 in WinCC flexible |
Numeric value appears within 2 seconds; no ######
|
| 3 | Button with Set Bit on Q0.0
|
Output LED on the CPU 224 lights; Tx LED on cable flashes once per press |
| 4 | Micro/WIN online monitor on VB100
|
Value tracks the WinCC flexible input field within 500 ms |
| 5 | PC Access OPC test client | Optional cross-check, both PPI and OPC report the same values |
| 6 | Power-cycle the CPU | Communication re-establishes automatically within 10 s; no manual restart of WinCC flexible required |
11. Frequently Asked Questions
Why does Micro/WIN connect to the S7-200 but WinCC flexible does not on the same cable?
Micro/WIN uses an optimized PPI master handshake that toggles RTS with a specific pre-amble timing the legacy PC/PPI cable expects. The WinCC flexible S7-200 PPI driver uses a different timing window; on a cable set to PPI/Freeport / DCE (DIP 2 = ON, all others OFF) the handshake fails and the driver never transmits. Setting the cable to PPI master / DTE (DIP 3 = ON, others OFF) at 19.2 kbit/s aligns the timing window and resolves the issue.
Is there a firmware limit on the S7-200 CPU that blocks WinCC flexible communication?
No. CPU 224 (6ES7 214-1BD23-0XB0) firmware versions 1.22 through 2.01 and CPU 226 (6ES7 216-2BD23-0XB0) firmware versions 1.23 through 2.01 all support PPI, PPI/Freeport, and the CP 243-1 Ethernet module. The failure is at the driver/host layer, not the CPU firmware.
Can the CP 243-1 Ethernet module be used instead of the PPI cable?
CP 243-1 (6GK7 243-1EX01-0XE0) is the recommended path for new installations, but the WinCC flexible native S7-200 PPI/TCP driver still uses the PPI subsystem on top of the CP 243-1 and the same connect logic. Users have reported that the CP 243-1 path also fails with the WinCC flexible S7-200 driver on the first attempt; if it does, switch to OPC over Ethernet (PC Access, KEPware, or LibNoDave) and bypass the WinCC flexible S7-200 driver entirely.
Will a USB/PPI cable work where the RS-232 PC/PPI cable does not?
Yes. The 6ES7 901-3DB30-0XA0 USB/PPI cable enumerates as a Siemens virtual COM port and is reported to communicate reliably with WinCC flexible where the 6ES7 901-3CB30-0XA0 does not. The trade-off is that the USB cable does not support 38 400 bit/s on legacy Windows drivers and must be re-plugged after a CPU power-cycle to re-enumerate.
What is the highest stable baud rate for a WinCC flexible S7-200 PPI link?
Field measurements show 19 200 bit/s as the most stable rate with 500 ms acquisition cycle and 4-8 active HMI tags. 38 400 bit/s is supported by the cable and the CPU System Block but the token rotation becomes marginal on a single-master bus and produces intermittent I/O field ###### errors under high tag load. 9 600 bit/s is the safe fallback for long cable runs over 10 m.