Configuring WinCC OS Clients in Multi-User Projects: Step-by-Step

David Krause11 min read
SCADA ConfigurationSiemensTutorial / 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

Siemens WinCC (and the OS stations layered on top of PCS 7) is engineered around a distributed, redundant client-server architecture. A typical multi-user SCADA project deploys one or two paired OS Servers, redundant OS Servers, and several OS Clients that read process data, alarms, and trends from the server's package. Each client carries its own project subdirectory, references the server's package, and runs a thin runtime view with no local data acquisition.

This article documents the engineering procedure for restoring or adding an OS Client into an existing multi-client WinCC project after hardware loss or replacement. The procedure is built around WinCC V7.x and the equivalent PCS 7 OS components. It assumes you already hold an exported copy of the original OS Client project (or a fully licensed spare station) and you need to re-integrate it into the live Engineering Station (ES) and Server pairing.

Engineering principle: Never edit a client online in the live ES and then copy it back. Build the client offline in the ES, transfer the project, then assign server package. This preserves the single source of truth on the ES and avoids configuration drift between the five (or more) OS Clients.

OS Client-Server Architecture

Before touching configuration, map the role of each station. WinCC's logical data flow is straightforward but strict:

Engineering Station (ES) OS Server (Master/Standby) OS Server Redundant Pair OS Client #1 OS Client #2 OS Client #3..N Configure Package Data

Key roles:

  • Engineering Station (ES) — holds the master project with all PDLs, scripts, archive configurations, and the OS server/client topology. Single source of truth.
  • OS Server — receives the configured data from the AS via S7/S7Plus and publishes it as a server package.
  • OS Client — reads the published package, displays the same graphics as the server, and supports operator input. The client project is small (no archives, no driver connections).

When replacing a failed OS Client, you must rebuild it inside the ES project first and then re-deploy. Standalone editing on the client station causes divergent copies and breaks the package integrity.

Prerequisites

  1. Licensing — Confirm the new OS Client station has a valid WinCC RT/RC license (e.g., 6AV6371-1DV07-0AX0 for V7.5) keyed to the station's Microsoft Windows SID. Without the correct license the runtime will not start.
  2. WinCC version parity — The OS Client, OS Server, and ES must run the same WinCC major.minor version (e.g., V7.5 SP2). A mismatch forces a downgrade or upgrade migration before the client can join the package.
  3. Backup of the original client project — Export the OS Client subdirectory \<Server>\WinCCProjects\<Project>\<ClientName> or use the WinCC Project Duplicator to capture the entire multi-user project including the five client trees.
  4. Network reachability — The OS Client must resolve the OS Server's hostname via DNS or local hosts entries. Allow ports 102, 135, 137-139, 445, 3389 (RDP for commissioning), and the dynamic range used by WinCC RPC. Validate with net view \\<OSServer> before commissioning.
  5. Same Windows workgroup or domain — Mixed-domain clients cannot authenticate the WinCC service accounts.
  6. Symmetric user accounts — Configure identical local accounts (e.g., WinCCUser) with matching passwords on the ES, OS Server, and OS Client, or use a domain account. WinCC's User Administrator enforces this.

Step-by-Step OS Client Configuration

The procedure below restores a single OS Client into an existing multi-client WinCC project. Times are approximate for a 50 MB project on a 1 GbE LAN.

Step 1 — Add the Client Station in the ES Project

  1. Open WinCC Explorer on the Engineering Station.
  2. Right-click the project root and choose New → OS Client. Name the client exactly as it will appear on the network (e.g., OS_CL_04). The name is case-sensitive in the package.
  3. Set the Computer Properties: enter the host name, the Windows startup path (C:\Program Files\Siemens\Automation\WinCC\bin\WinCCRT.exe for V7.5), and the project path (\<OSServer>\WinCCProjects\<Project>\OS_CL_04).
  4. Confirm Start WinCC Runtime is enabled and Autostart behavior matches the other four clients.

Step 2 — Assign the Server Package

  1. From the new client entry in WinCC Explorer, open Server Data.
  2. Click Select Server and pick the preferred OS Server (typically the master of the redundant pair).
  3. Set Preferred Server for the redundant path; the runtime will fall back to the standby automatically on package timeout (~30 s default, configurable via CCSetServer.rt parameter).
  4. Click Assign. WinCC generates a local stub that references the server's package. The client now knows which server holds the live tags and pictures.
Pitfall: Do not assign a redundant server manually with a duplicate entry. WinCC only supports a single preferred server plus an implicit standby; double-assigning causes "Server not found" alarms at runtime.

Step 3 — Copy Custom PDLs and Graphics

  1. If the backup contains PDLs modified locally on the client (custom overlays, vendor faceplates), navigate to the backup and copy *.PDL and any referenced BMP/EMF/WMF assets into the new client directory under GraCS\.
  2. Run the OS Project Editor on the ES (right-click project → OS Project Editor). This regenerates the compiled runtime PDLs (*.PDL.rt) and the picture cache.
  3. Enable the option "Disable overwrite of custom changes" if you want manual PDL edits to survive subsequent OS Project Editor runs. Leave it off if the ES is authoritative and the local edits are throwaway.

Step 4 — Copy Global Scripts and Regenerate Header

  1. Copy any custom C scripts and VB scripts from the backup into the project's Library\ and ScriptLib\ directories.
  2. In WinCC Explorer, open Global Scripts → C-Editor, then choose Regenerate Header. This rebuilds apdefap.h and forces a clean compile of every action and function.
  3. Compile (F7). Verify zero errors and zero warnings in the output window — warnings in C actions frequently manifest as silent runtime failures on the client only.

Step 5 — OS Project Editor — Authoring Configuration

  1. Launch OS Project Editor from the ES context menu.
  2. Verify the following per-client settings:
Tab Setting Recommended Value
General Hotkeys Same as the four surviving clients
Monitoring Standard cycle, picture cycle 2 s / 5 s (match running clients)
Message Configuration Single message line Enabled
Picture Selection Start picture Overview.PDL
User Administrator See Step 6 Match ES
Time Synchronization See Step 7 Slave to OS Server

Click OK to commit. The editor writes OS->ProjectEd.op7 in the project root.

Step 6 — User Administrator

  1. Open User Administrator in WinCC Explorer.
  2. Confirm the same authorization groups exist on the client as on the ES (Operator, Supervisor, Engineer, etc.).
  3. For each operator, ensure the Logon setting uses the same WinCC user name. If you employ SIMATIC Logon, verify the certificates on the new client match.
  4. Configure the auto-logoff timeout identically across clients to avoid a station staying unlocked when an operator forgets to log out.

Step 7 — Time Synchronization

  1. Open the client's Computer Properties → Time Synchronization.
  2. Set the OS Server as the NTP master (or DCF77 if the master is equipped with a radio clock). Each client becomes a slave.
  3. Verify the time zone and DST handling match the other four clients. A client in a different time zone causes archive timestamps to drift, which corrupts trend queries.

Step 8 — Compile and Transfer

  1. In WinCC Explorer on the ES, select the new client and choose Compile → Full. This produces <ClientName>.rt and an updated server package reference.
  2. Use Server Data → Remote Transfer or manually copy the compiled client directory to the OS Server's shared WinCCProjects folder.
  3. On the OS Server, run WinCC Project Sync to push the package to the new client.

Verification

Verification has three checkpoints. Treat any failed checkpoint as a stop-the-line event.

Check 1 — Network Path and Authentication

  1. From the new client, open a command prompt and run ping -n 4 <OSServer>. Expect zero loss and sub-1 ms on a GbE LAN.
  2. Run net view \\<OSServer> — the project share must list without prompting for credentials.
  3. Run wbemtest on the client and connect to \\<OSServer>\root\cimv2 using the WinCC service account. A successful WMI connection proves DCOM and the RPC ports are open.

Check 2 — Project Load Test

  1. On the client, start WinCC Runtime from Start → Programs → Siemens Automation → WinCC → WinCC Runtime.
  2. Observe Status of Server Connections in the diagnostics window: all tags should resolve within the configured timeout (default 5 s).
  3. Open the start picture and exercise one input field per operator area. Confirm that operator input reaches the AS through the server (verified via AS online monitor).

Check 3 — Redundant Failover

  1. On the master OS Server, disable the WinCC service to force failover.
  2. Verify the new client switches to the standby server within 30 s and the operator does not see a logged-out dialog.
  3. Re-enable the master service and confirm the client re-prefers it without operator action.

Configuration Parameters Reference

Parameter Default Recommended (Multi-Client) Notes
Runtime startup mode Service Service Allows autostart at boot without an interactive session
Server failover timeout 30 s 30 s Lower values cause spurious failovers on transient network glitches
Picture change monitoring 2 s 2 s Must match the server cycle for consistent animation
Archive transfer cycle 500 ms 500 ms Clients do not archive; this value affects only what the client requests
User auto-logoff 30 min 30 min Lock the project consistently across all clients
Time sync interval 10 min 10 min NTP slave mode on every client
Graphics cache size 64 MB 128 MB Increase on clients running high-resolution process graphics
Server package path Local UNC to server Never map a drive letter; UNC survives reboot

Troubleshooting Matrix

Symptom Likely Root Cause Corrective Action
Client runtime aborts immediately with "Project not found" Server package path is a mapped drive or UNC mismatch Replace with full UNC path \\<Server>\<Project>\<Client> and verify share permissions
Tags show "Initial value" indefinitely Preferred server assignment missing or wrong Re-open Computer Properties → Server Data and click Assign
Operator input returns "No authorization" User Administrator groups not transferred Re-run OS Project Editor with User Administrator tab enabled; copy User.xml from a known-good client
PDLs open but custom faceplates are blank Custom PDL was overwritten by OS Project Editor Enable "Disable overwrite of custom changes" and re-copy the PDL
C script action does nothing at runtime Header not regenerated after library change Open C-Editor → Regenerate Header → Recompile
Clock drift between clients and server Time sync slave mode not set Computer Properties → Time Synchronization → Slave, point to OS Server
Failover hangs at 90 % DCOM permissions insufficient for the WinCC service account Re-run DCOMCnfg.exe on the client and grant the WinCC account Remote Launch/Activation
License alarm "Invalid RT license" License bound to old hardware SID Return and re-issue the license through Siemens Automation License Manager with the new station SID

Commissioning Checklist

  • ES project contains the new client entry with matching computer name and UNC path
  • Server assignment preferred server set; standby selected automatically
  • Custom PDLs, scripts, and graphics copied from the backup
  • Global scripts header regenerated; zero compile warnings
  • OS Project Editor committed with custom overwrite policy defined
  • User Administrator groups and operator accounts identical to surviving clients
  • Time sync set to slave mode, pointing to OS Server
  • Ping, net view, and WMI tests pass with the WinCC service account
  • Runtime load test confirmed; one operator input per area exercised
  • Redundant failover test passed without operator-visible interruption
  • License active on the new station

Common Pitfalls and Field Notes

  • Hostname capitalization. Windows tolerates case-insensitive hostnames, but WinCC's package hashing does not. Keep every client entry lowercase in the ES.
  • Mixed client versions. Two clients on V7.4 and three on V7.5 will not share a single package. Either match all versions or use a WinCC version-specific project fork.
  • Antivirus interference. Real-time scanning of *.PDL.rt files and the WinCC project path adds 200-400 ms latency per picture change. Exclude the project root from AV scans.
  • Service account password rotation. When the domain password expires, the client's connection to the server drops silently. Schedule a runtime test immediately after password changes.
  • OS Project Editor overwrite. Operators frequently request small PDL tweaks locally. Without "Disable overwrite of custom changes," the next OS Project Editor run silently destroys them.
  • Manual time on clients. If the client is set to "no time synchronization," it accepts Windows local time. After a daylight-saving change, the trend archives will show one-hour gaps.

Related Documentation

How do I add a new OS Client to an existing WinCC multi-user project?

Open WinCC Explorer on the ES, right-click the project root, choose New → OS Client, name the station, fill in Computer Properties with the UNC project path, then click Server Data → Select Server → Assign. Compile the client and transfer the project to the OS Server's shared directory.

What ports must be open between OS Server and OS Client?

At minimum: TCP 102 (S7 communication if the client passes through the server to the AS), 135 plus the dynamic RPC range, 137-139 and 445 (SMB for the project share), and 3389 for RDP during commissioning. Verify reachability with net view and wbemtest.

Why do my custom PDL edits disappear after running the OS Project Editor?

The editor regenerates the runtime graphics (*.PDL.rt) from the ES source PDL, overwriting local changes. Enable the option "Disable overwrite of custom changes" in the OS Project Editor to preserve manual edits across subsequent runs.

How long should server failover take on an OS Client?

Default timeout is 30 seconds. Below 20 seconds, transient network noise produces spurious failovers. Above 45 seconds, operators experience noticeable freeze. Tune the timeout in the client's server data configuration, not in the registry.

Can I copy a standalone OS Client project into a multi-user project on the ES?

Yes, but the merge is manual: create a new client station in the ES, then transfer the standalone PDLs, scripts, user database, and computer properties. There is no automatic importer. After the merge, regenerate the C header and recompile.

Back to blog