Configuring WinCC as an OPC DA Server for Citect SCADA Client Communication
WinCC and Citect SCADA frequently co-exist on multi-vendor plant networks. The cleanest, vendor-supported mechanism for moving runtime tag data from a Siemens WinCC station to a Schneider Electric (now AVEVA) Citect SCADA station is OPC Data Access (OPC DA). This reference documents the complete configuration: WinCC runtime OPC server activation, Citect OPC client driver, Windows DCOM security, and step-by-step verification.
1. Architecture Overview
The integration is unidirectional data flow by default, but OPC DA supports both read and write. Two physical PCs on the same TCP/IP subnet (or routable network) participate:
-
WinCC Station (Server) — Hosts the WinCC Runtime and exposes tags through the COM-based OPC DA server registered under the programmatic identifier
OPCServer.WinCC. -
Citect SCADA Station (Client) — Runs the Citect OPC client driver, browses the network for
OPCServer.WinCC, and subscribes to runtime tags.
Communication traverses TCP port 135 (RPC Endpoint Mapper) plus the dynamically assigned DCOM range (default 49152-65535 on modern Windows). The OPC DA 2.0/3.0 protocol rides on top of Microsoft COM/DCOM, not raw TCP, which is why DCOM configuration is mandatory on most Windows installations.
2. Prerequisites
| Component | Requirement |
|---|---|
| WinCC | WinCC V7.0 SP3 or later (V7.4 / V7.5 recommended); WinCC Professional (TIA Portal) V14 or later uses a different OPC stack and is covered separately |
| WinCC License | Standard WinCC RT license includes the OPC server; no separate OPC license required for V7.x |
| Citect SCADA | Citect 2016, 2018, 2020, or later (current AVEVA Plant SCADA) with the OPC client driver installed |
| Operating System | Windows 7 SP1 / Windows 10 LTSC / Windows Server 2012 R2 or 2016 / 2019 (32-bit or 64-bit matching the SCADA install) |
| Network | Both PCs on the same subnet, ICMP echo open, TCP 135 reachable, identical local user accounts for the OPC service or matching credentials |
| User Rights | Local administrator on both PCs for DCOM configuration; both OPC service accounts must have DCOM access, launch, and activation rights |
2.1 Required User Account Model
For WinCC OPC access across machines, configure both PCs to use matching local accounts with identical passwords, or join both to an Active Directory domain. The OPC service must run under an account that the Citect client can authenticate. The simplest production pattern is to create a local user OPCUser on both machines with the same password and run the WinCC OPC server service under that identity.
3. WinCC OPC Server Configuration
No additional software installation is required on the WinCC station. The OPC server is registered automatically when WinCC Runtime is installed. The ProgID exposed to the network is OPCServer.WinCC and the CLSID is platform-specific.
3.1 Confirm the Server is Registered
- On the WinCC PC, open Start → Run and enter
dcomcnfg. - Navigate to Component Services → Computers → My Computer → DCOM Config.
- Look for the entry OPCServer.WinCC. If present, the server is registered. If absent, restart the WinCC Runtime once; the registration runs on first RT start.
3.2 Start the WinCC Runtime
The OPC server only starts when WinCC Runtime is running. Activate the project via the WinCC Explorer (right-click project → Activate). The OPC server window icon appears in the Windows taskbar notification area. Right-click to confirm server state shows OPCServer-WinCC Vx.x - Service is running.
3.3 Configure WinCC Tags for OPC Access
By default, all internal tags and process tags inside the running WinCC project are accessible through OPCServer.WinCC. No additional tag-level configuration is required for read access. To restrict access, edit the OPCTags.csv file in the WinCC project directory and add a filter, or use WinCC User Administrator to assign tag-level read/write permissions.
\YourProject\TagPrefix\YourTag.4. Windows DCOM Configuration
DCOM security is the most common failure point in cross-machine OPC. Apply these settings on both the WinCC server PC and the Citect client PC.
4.1 Default DCOM Properties on the WinCC Server
- Open
dcomcnfg. - Right-click My Computer → Properties.
- Tab Default Properties:
- Enable Enable Distributed COM on this computer.
- Default Authentication Level: Connect.
- Default Impersonation Level: Identify.
- Tab COM Security:
- Access Permissions: Add
Everyone(production: replace withOPCUseror domain group) → Allow Access. - Launch and Activation Permissions: Add
Everyoneor the service account → Allow Launch, Allow Activation.
- Access Permissions: Add
4.2 OPCServer.WinCC-Specific Properties
- In DCOM Config, right-click OPCServer.WinCC → Properties.
- Tab General → set Authentication Level to Default.
- Tab Location → enable Run application on the following computer and check Run application on this computer.
- Tab Security → set all three (Launch, Access, Configuration) to Use Default or to a custom ACL containing the Citect client's service account.
- Tab Identity → set to This user and enter the dedicated
OPCUseraccount credentials. Avoid Launching User for cross-machine access. - Tab EndPoints → ensure Use default system endpoints is selected so DCOM dynamically negotiates the port range.
4.3 Windows Firewall Rules
On Windows 7 and later, allow the following inbound rules on both PCs:
COM+ Network Access (DCOM-In)-
All Rules for the Application %SystemRoot%\System32\dllhost.exe(the DCOM surrogate) - For static port management (recommended in plant networks), restrict DCOM to a fixed range, e.g. TCP 5000-5020, using
netsh int ipv4 set dynamicport tcp start=5000 num=1021and create explicit firewall rules.
For background on DCOM hardening, see the Siemens Application Note "Setting up DCOM for OPC Communication" and Microsoft KB Configure DCOM Application.
5. Citect SCADA OPC Client Configuration
Citect (AVEVA Plant SCADA) ships the OPC client driver as an optional component. The driver exposes OPC items as native Citect variables, so any PLC tag visible to WinCC can be brought into the Citect database.
5.1 Driver Architecture
The Citect OPC client is the multi-threaded Citect.exe host plus the in-process driver OPCClient.ctl. It uses OPC DA 2.0 (custom interfaces) by default. In current versions, the driver can be configured to also use OPC DA 3.0 (Automation interfaces) by toggling a registry key: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citect\CurrentVersion\Drivers\OPCClient\UseDA3 = 1.
5.2 Add the OPC Server in Citect Project Editor
- Open the Citect Explorer and load the target project.
- Navigate to Communications → I/O Devices.
- Right-click → Add I/O Device.
- Name:
WinCC_OPC. I/O Device Type: OPC. Address: leave blank for browsing. - In the Protocol field leave the default
OPCdriver.
5.3 Use the OPC Client Driver Configuration Tool
Open Start → Citect → Citect OPC Client Configuration (or CiOpC.exe on older installs). This launches a dialog that uses IOPCServerList to enumerate all OPC servers on a remote host.
- Enter the WinCC server's UNC name or IP, e.g.
\\PC-WINCC-01. - The tool enumerates
OPCServer.WinCC. If it does not appear, the DCOM configuration is broken (see Section 7). - Select the server, then click Browse. The hierarchy opens, displaying all configured WinCC tag prefixes.
- Add required tags to the Citect tag database — Citect automatically generates variable definitions of the form:
WinCC_OPC_<TagName>with data typeREAL,INT,STRING, etc., inherited from the WinCC tag type.
5.4 Citect Variable Definition Format
| Citect Field | Value |
|---|---|
| Tag Name | WinCC_TIC_1001 |
| I/O Device | WinCC_OPC |
| Address |
\Plant1\Reactor\Temperature (WinCC internal path) |
| Data Type |
REAL / INT / BOOL / STRING
|
| Scaling | Optional, scales raw value |
| Poll Group | Fast (100 ms) / Normal (250 ms) / Slow (1 s) |
Refer to the AVEVA Plant SCADA / Citect documentation portal for current driver configuration: AVEVA Plant SCADA product page and the in-product Citect Help → Drivers → OPC Client.
6. Step-by-Step Commissioning Procedure
-
Verify network reachability from the Citect PC:
ping PC-WINCC-01must succeed. -
Test DCOM plumbing on the Citect PC using PowerShell:
Get-CimInstance -ComputerName PC-WINCC-01 -ClassName Win32_Process -Filter "Name='dllhost.exe'"
If the call returns a process, DCOM is working. If it returns RPC unavailable, check firewall and DCOM defaults. - Activate WinCC Runtime on the server. Confirm the OPC server icon appears in the taskbar.
-
Launch the Citect OPC client configuration tool on the Citect PC and connect to
\\PC-WINCC-01. Browse toOPCServer.WinCC. - Add at least three test tags with different data types (e.g. one BOOL, one REAL, one STRING).
-
Compile and start the Citect project. Open Cicode expression window and verify with:
TagDebug(0, "WinCC_TIC_1001", 1)(logs the tag value once per second). - Force a tag change in WinCC (e.g. flip a bit in the WinCC Graphics Designer simulation) and confirm the change reflects in Citect within the poll group interval plus 200 ms.
7. Troubleshooting Matrix
| Symptom | Likely Cause | Remediation |
|---|---|---|
OPCServer.WinCC not listed in Citect browse |
WinCC Runtime not running, or DCOM denied | Start WinCC RT; verify dcomcnfg identity and access ACLs; check Event Viewer → DCOM errors |
Browse lists server, tags return BAD
|
Tag path typo or tag not started | Verify path in WinCC tag management; check WinCC OPC scout for live read |
| Intermittent disconnects (1-2 per hour) | Service account password mismatch or Windows session lock | Set Password never expires for OPCUser; disable auto-lock screen-saver on server |
| Browse works locally on server, fails remotely | Firewall blocking TCP 135 / DCOM range | Open ports per Section 4.3; create explicit dllhost.exe inbound rule |
| Error 0x80070005 (Access Denied) | Identity account missing launch rights | On server DCOM, add account to Launch and Activation permission → Allow |
| Error 0x80040154 (Class not registered) | 32/64-bit mismatch between Citect and WinCC | Install matching-bit Citect and WinCC; or set Citect OPC client COM surrogate correctly |
| Values update slow > 2 s | Slow poll group assigned | Move tag to Fast poll group; ensure Advise / Callback enabled in Citect OPC client |
8. Performance and Sizing Considerations
OPC DA 3.0 callbacks deliver updates asynchronously; OPC DA 2.0 typically uses polling. Citect's OPC client supports both via the UseDA3 registry flag.
- Default Citect poll group rates: Fast = 100 ms, Normal = 250 ms, Slow = 1000 ms.
- A single OPC client process can subscribe to ~5,000 items before COM marshaling becomes the bottleneck. For 10,000+ tags, deploy multiple Citect I/O servers each pointing at a different
OPCServer.WinCCinstance or partition tags by data rate. - Average data throughput: ~50,000 value updates per second on a 1 Gbit/s LAN with modern Windows Server, using a 64-bit Citect host.
9. Common Configuration Pitfalls
regsvr32 opccomm_ps.dll and regsvr32 opcproxy.dll from %WinDir%\SysWOW64\.10. Alternative Topologies
10.1 WinCC Professional (TIA Portal) to Citect
WinCC Professional ships the OPC UA Server as standard and exposes only OPC UA — there is no COM/DA server. Use the Citect OPC UA client driver (introduced in Citect 2016) and address the WinCC OPC UA endpoint at opc.tcp://<host>:4840. This is the recommended path for new deployments and removes DCOM configuration entirely.
10.2 WinCC V7.x to Citect via OPC UA Wrapper
For sites that want to keep WinCC V7 but eliminate DCOM, install a third-party OPC DA-to-UA bridge (e.g. the Siemens Application & Tools catalog for Softing opc-ua-gateway style products) on a third machine and point both servers at the gateway. Costs and license complexity must be weighed against the DCOM maintenance burden.
11. Documentation References
- Siemens WinCC V7.5 SP2 manual: WinCC V7.5 Communication Manual — OPC DA Server
- Siemens FAQ: "What steps are required to start up a WinCC station as OPC server?" — entry ID 21531482 in the Siemens Industry Online Support.
- Siemens FAQ: "Why are the DCOM settings of the WinCC OPC server reset after activating the OS Runtime?" — entry ID 26249862.
- Microsoft Learn: COM and DCOM reference.
What is the OPC ProgID for the WinCC V7.x server?
The programmatic identifier is OPCServer.WinCC. The OPC DA 2.0 CLSID is registered automatically on first WinCC Runtime start and appears in dcomcnfg under DCOM Config.
Do I need Simatic Net installed on the Citect PC?
No. The Citect OPC client driver talks directly to OPCServer.WinCC via DCOM. Simatic Net is only required if Citect is replaced by another Siemens OPC client (e.g. WinCC itself) reading from a non-WinCC PLC.
Why does the Citect OPC browser show the server but tags read BAD quality?
Three common causes: (1) the WinCC tag path is mistyped — verify in WinCC Tag Management; (2) the WinCC tag is not started; check the green dot in WinCC Explorer; (3) the user account running the Citect OPC client lacks read permission on the specific tag. Switch the OPC server identity to Interactive User temporarily to confirm a permission issue.
Can I avoid DCOM and use OPC UA instead?
Yes — if the WinCC station is WinCC Professional (TIA Portal) V14 or later, enable the built-in OPC UA server and configure the Citect OPC UA client driver. This eliminates DCOM entirely and works across VLANs without firewall pinholes beyond TCP 4840.
How many tags can one Citect OPC client subscribe to from a single WinCC server?
In practice, ~5,000 items per Citect I/O server process on a 64-bit Windows host with 1 Gbit/s LAN. Beyond that, partition the tag set across multiple Citect I/O servers and use Fast/Normal/Slow poll groups to keep bandwidth below 50,000 updates/second.