Choose single-user, multi-user, distributed or redundant WinCC from the plant's availability needs; connect servers to the PLC over the S7-1500 channel; add a life bit in both directions (ladder or SCL) so PLC and SCADA detect each other's loss; configure server and client packages; and, for redundancy, two servers with archive synchronisation.
- Choose architecture from availability, not habit.
- Life bit both ways: WinCC watches the PLC, the PLC watches WinCC.
- Redundancy only counts if failover and archive sync are tested.
Single-User, Multi-User, Distributed and Redundant
| Architecture | Use when | Weak point |
|---|---|---|
| Single-user | One machine, one operator station | PC failure = no SCADA |
| Multi-user | One area, several operators | Server is a single point of failure |
| Distributed | Large plant split into areas | More engineering |
| Redundant pair | Production must not lose visibility or data | Must be tested regularly |
Lab Flow: From PLC Connection to a Tested Failover
Every lesson in the Softwell PLC lab manual series follows the same six stages and the same address rule, so the code you write here plugs straight into the HMI lessons.
Stage 1Network and PLC Connection
| Node | Example address | Role |
|---|---|---|
| PLC S7-1500 | 192.168.0.1 | Plant bus |
| WinCC server A / B | 192.168.0.10 / .11 (plant), 10.0.0.10 / .11 (terminal) | Redundant pair |
| Clients | 10.0.0.21 … | Operator stations |
Stage 2PLC Interface Data Block
Create DB_Life with PLC_LifeBit, SCADA_Counter, SCADA_CounterOld, SCADA_Changed, SCADA_Lost – all accessible from HMI. Field I/O stays mapped through FC_InputMapping as in every lesson of the series.
Stage 3PLC Logic in Ladder and SCL
The same logic in SCL – use whichever your plant standard prefers; both write the same DB members that WinCC reads:
// FC_LifeBit – called every scan; T_Pulse and T_ScadaAlive are TON instances
"T_Pulse"(IN := NOT "T_Pulse".Q, PT := T#1S);
IF "T_Pulse".Q THEN "DB_Life".PLC_LifeBit := NOT "DB_Life".PLC_LifeBit; END_IF; // for WinCC
"DB_Life".SCADA_Changed := "DB_Life".SCADA_Counter <> "DB_Life".SCADA_CounterOld; // written by the active server
"DB_Life".SCADA_CounterOld := "DB_Life".SCADA_Counter;
"T_ScadaAlive"(IN := NOT "DB_Life".SCADA_Changed, PT := T#10S);
"DB_Life".SCADA_Lost := "T_ScadaAlive".Q OR ("DB_Life".SCADA_Lost AND NOT "DB_Life".SCADA_Changed);
// Use SCADA_Lost to hold remote commands, keep the plant in a safe local state and raise a local alarm.Stage 4Link PLC Tags to WinCC
In Tag Management add the SIMATIC S7-1200, S7-1500 Channel, create a connection with the CPU IP address, then use AS Symbols to load the PLC symbols and drag the DB members you need into a tag group. The DB members must have Accessible from HMI ticked in TIA Portal. Names and menus can differ slightly between WinCC versions.
| WinCC tag | Data type | Connection / address | Used by |
|---|---|---|---|
DB_Life_PLC_LifeBit | Binary | symbolic | WinCC watchdog script / communication alarm |
DB_Life_SCADA_Counter | Signed 32-bit | symbolic | Incremented every second by a server-side global action |
DB_Life_SCADA_Lost | Binary | symbolic | Shown on the system screen |
Stage 5Configure Servers, Clients and Redundancy
| Step | Where in WinCC Explorer |
|---|---|
| Server project | Computer list: server and client computers, startup settings |
| Server data package | Create on each server, load on clients (distributed systems) |
| Client project | Screens from the servers; preferred server per client |
| Redundancy | Redundancy editor: partner server, synchronisation of archives and alarms |
| Life counter | Global script action, cycle 1 s, increments DB_Life_SCADA_Counter on the active server |
Tag types and connection diagnostics are covered in WinCC tag types.
Stage 6Perform and Test: Redundant Servers and Life-Bit Monitoring
Two redundant servers serve two clients. Fail a server, disable redundancy or cut the plant network, and watch which server is active, whether the PLC still sees the SCADA life counter, and how large the archive gap becomes.
Troubleshooting
| Symptom | Likely cause | First check |
|---|---|---|
| Clients freeze after a server failure | No redundancy or client not configured for partner | Redundancy settings, preferred server |
| Gaps in archives after failover | Archive synchronisation off | Redundancy editor |
| PLC never detects SCADA loss | No life counter logic | DB_Life and the global action |
Hands-On Lab: Configure a WinCC Server and Client with Life-Bit Monitoring
Hands-on- TIA Portal and WinCC Explorer V8.1 (two PCs or VMs for server/client)
- Estimated time: 90 minutes
Plan the network and addresses
PLC, servers and clients on defined subnets; plant bus and terminal bus.
Prepare the PLC interface
Create DB_Life accessible from HMI.
Write the life-bit logic in ladder and SCL
PLC toggle bit and SCADA-lost timeout.
Configure WinCC connections and tags
S7-1500 channel on each server; life tags; a server-side action that increments SCADA_Counter.
Configure server, client and redundancy
Server packages, client project, redundancy partner and archive synchronisation.
Test failover
Fail a server, the network and redundancy; check the life bits and archive gap.
You can explain the chosen architecture, prove failover, and show that PLC and SCADA each detect the loss of the other.
Frequently asked questions
What is the difference between single-user, multi-user and distributed WinCC systems?
A single-user station is server and client in one PC. A multi-user system has one server with several clients. A distributed system splits the plant over several servers, each owning its area, with clients viewing several servers.
What does WinCC redundancy give me?
Two servers with the same project running in parallel. If one fails, clients switch to the partner, and when it returns the archives and alarms are synchronised so no data is lost.
Why monitor a life bit between PLC and SCADA?
So each side knows when the other has gone. WinCC shows a communication fault when the PLC life bit stops; the PLC holds remote commands and raises a local alarm when the SCADA counter stops.
How many clients can a server handle?
It depends on the WinCC licences, the hardware and the project size. Size the server for tags, archives and clients together and check the Siemens system requirements for your version.
Should the life-bit logic be ladder or SCL?
Either – the toggle and the timeout are both a few lines. Both are shown, writing the same DB members.
Where should screens live in a distributed system?
Each server owns the screens and tags of its area; clients load screens from several servers. Keep a common screen template and naming so operators move between areas without relearning.