Problem Context and OPC DA Overview
SCADA stations running SIMATIC WinCC V7.x frequently need to publish their internal or process tags to other computers on the plant LAN — for example, to a historian, a MES terminal, a third-party visualization, or another WinCC client. The legacy method for this is the WinCC OPC DA (Data Access) server, which exposes the entire runtime tag namespace as a COM/DCOM-based OPC item tree. The default programmatic identifier (ProgID) of the server installed on a WinCC operator station is OPCServer.WinCC; once WinCC Runtime is started, every tag declared in the project's Tag Management becomes visible to any compliant OPC client reachable on the network.
This reference documents the end-to-end procedure to enable cross-computer tag exchange with WinCC V7.0 SP3, including the upgrade path from V7.0, the SIMATIC NET prerequisite, the DCOM security hardening required for remote COM instantiation, and the firewall rules needed on Windows 7 64-bit. A parallel note covers modern WinCC Unified RT tag synchronization for projects migrating off classic WinCC.
Prerequisites and Supported Environments
Before the OPC server can be reached from a remote client, verify each prerequisite on both the WinCC server and the OPC client machines.
| Component | WinCC Server (OPC DA provider) | OPC Client PC |
|---|---|---|
| OS | Windows 7 SP1 Professional / Enterprise / Ultimate 32-bit or 64-bit (Single-User / Client); Windows Server 2008 R2 for WinCC Server | Windows 7 SP1 or later with matching bitness to client OPC stack |
| WinCC release | WinCC V7.0 SP3 or V7.0 SP3 ASIA (minimum); V7.3 / V7.4 / V7.5 supported | OPC client tool only — WinCC Runtime not required |
| SIMATIC NET | Required for OPC channel access over S7 / PROFIBUS / PROFINET in some configurations; install matching version (e.g. SIMATIC NET V8.x for WinCC V7.3+) | Optional — needed only if the client acts as an S7 station |
| User rights | Local administrator to configure DCOM and firewall; runtime user must be member of "SIMATIC HMI" / "Siemens TIA Engineer" group per installed version | Local administrator to register OPC client proxy and configure DCOM |
| Network | Static IP recommended; same workgroup or domain; NetBIOS / TCP port 445 and DCOM RPC ports reachable | Resolves server hostname via DNS or LMHOSTS |
WinCC V7.0 SP3 ASIA is the regional release referenced in the WinCC V7.0 SP3 release note (Siemens Support entry 55987264); original Windows 7 RTM (without SP1) is not supported by V7.0 SP3 and must be upgraded to SP1 before installing WinCC.
WinCC OPC DA Server Architecture
The WinCC OPC DA server is a Windows in-process COM server (DLL) registered during WinCC setup. It runs only while the WinCC Runtime is active on the station — the OPC item tree is generated from the loaded WinCC project, so stopping Runtime removes the tags from the browse namespace.
| Element | Value | Notes |
|---|---|---|
| ProgID | OPCServer.WinCC |
Used by clients to instantiate the server remotely via CoCreateInstanceEx |
| CLSID |
{1A2DB3F0-2B5C-11D2-B6F4-0060087A3A0E} (WinCC OPC DA Server; verify with regedit) |
Located under HKEY_CLASSES_ROOT\CLSID
|
| Executable host | Out-of-process wrapper launched by DCOM service; DLL loaded by CCOpcServer.dll
|
Path: %ProgramFiles%\Siemens\Automation\WinCC\opc\
|
| Browse root | Hierarchy Server name → Group → Tag following WinCC Tag Management structure | Includes internal, process, and structure tags |
| Update rate | Configured per OPC group on client side; default 1000 ms | Faster rates (<250 ms) increase CPU load |
| Spec version | OPC Data Access 2.05a / 3.0 | 3.0 available with V7.3+; classic clients use 2.05a |
The OPC item path the client subscribes to follows the convention:
\\<WinCCServerHost>\OPCServer.WinCC\<TagName>
\\PLC01\OPCServer.WinCC\DB100_DBX0.0
\\PLC01\OPCServer.WinCC\S7_Driver_Connection_01\Motor_Speed
Tags whose source is a WinCC structure tag are exposed as a hierarchical path; numeric and boolean tags are exposed directly. Each tag must be enabled in the WinCC Tag Management — disabled tags are not browsed.
Installing and Verifying OPCServer.WinCC
Run the WinCC V7.0 SP3 setup on the operator station with administrator rights. The OPC option is part of the standard installation but is only activated if SIMATIC NET is also present in some channel configurations.
- Insert the WinCC V7.0 SP3 / SP3 ASIA DVD or mount the ISO obtained from Siemens Support entry 55987264.
- Launch
Setup.exeas Administrator; choose WinCC Installation and accept the license. - In the component tree confirm WinCC OPC Server is selected (default).
- If SIMATIC NET is required for the channel, install it before WinCC setup completes; the WinCC installer detects SIMATIC NET and registers the matching S7 OPC channels.
- Reboot when prompted. Log in with the WinCC Runtime user.
- Open a command prompt and verify COM registration:
Both commands must return values without ERROR: The system was unable to find the specified registry key or value.reg query "HKCR\OPCServer.WinCC" /s reg query "HKCR\CLSID\{1A2DB3F0-2B5C-11D2-B6F4-0060087A3A0E}" /s - Start WinCC Runtime with the project, then launch any OPC DA browser (e.g. Matrikon OPC Explorer, OPC Quick Client) on the same machine. Connect to
OPCServer.WinCCand confirm the project tag list is browsable.
DCOM Security Configuration
Remote OPC clients must instantiate the WinCC COM server over DCOM. Without explicit DCOM permissions the client receives 0x80070005 — Access is denied. Apply the following configuration identically on the WinCC server and the client PCs.
- Open dcomcnfg from the Start menu.
- Expand Component Services → Computers → My Computer. Right-click → Properties.
- Tab Default Properties: enable Enable Distributed COM on this computer; set Default Authentication Level to Connect; set Default Impersonation Level to Identify.
- Tab COM Security:
- Access Permissions → Edit Limits: add ANONYMOUS LOGON, EVERYONE, and the OPC client user account; allow Local Access and Remote Access.
- Launch Permissions → Edit Limits: add Administrators, INTERACTIVE, SYSTEM, and the client user; allow Local Launch and Remote Launch.
- Launch and Activation Security → Edit Limits: allow Remote Launch and Remote Activation for the same principals.
- Switch to DCOM Config, locate OPCServer.WinCC, right-click → Properties:
- Tab General: set Authentication Level to Default or Packet Privacy if on an untrusted segment.
- Tab Location: tick Run application on the following computer → enter the WinCC server hostname.
- Tab Security: override with Use custom launch permissions and Use custom access permissions; add the same principals as in step 4.
- Tab Identity: select The launching user if the client user has matching credentials, or This user and enter a domain account that exists on the WinCC server with read/write access to the project directory.
- Repeat steps 1–4 on every OPC client PC.
SIMATIC NET Installation Considerations
If the WinCC project reads process values via SIMATIC S7 / PROFIBUS / PROFINET channels, SIMATIC NET must be installed and configured on the operator station. SIMATIC NET ships its own OPC server (OPC.SimaticNET) which can coexist with the WinCC OPC server.
| WinCC Version | Recommended SIMATIC NET | Notes |
|---|---|---|
| V7.0 SP3 | SIMATIC NET V8.1 SP1 or higher | Required for S7 OPC channels; not needed for purely internal tags |
| V7.3 | SIMATIC NET V8.2 SP1 / V13 SP2 | See WinCC V7.3 Communication Manual section 6.7 |
| V7.4 / V7.5 | SIMATIC NET V14 / V15 / V16 / V17 matching the installed TIA Portal version | Mandatory for PROFINET IO OPC UA bridge scenarios |
After installing SIMATIC NET, restart the WinCC Configuration Studio and re-open the Tag Management. Channels that previously failed to populate (status 0x02 = BadCommunicationError) will now show valid handle sets, and the OPC browse tree will include the SIMATIC NET addresses.
Firewall and Network Configuration
Windows Firewall blocks DCOM by default. Configure explicit rules or open the required ports.
- Open wf.msc → Inbound Rules → New Rule.
- Allow the program
%ProgramFiles%\Siemens\Automation\WinCC\bin\CCOpcServer.exefor Domain, Private, and Public profiles. - Create a port rule allowing TCP 135 (DCOM endpoint mapper).
- Open the dynamic RPC port range. Microsoft default is TCP 49152–65535 for Windows 7; restrict it via registry:
reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v Ports /t REG_MULTI_SZ /d 5000-5010 /f reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v PortsInternetAvailable /t REG_SZ /d Y /f reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v UseInternetPorts /t REG_SZ /d Y /f net stop "Windows Firewall" & net start "Windows Firewall" - Allow inbound ICMPv4 Echo Request for diagnostics only; remove after commissioning.
- Disable SMB signing only on the OPC pair if required by legacy clients — not recommended for production.
From the client, validate end-to-end connectivity:
Test-NetConnection -ComputerName <WinCCServer> -Port 135
Get-Service -ComputerName <WinCCServer> -Name "WinCC Runtime" | Select Status, Name
Configuring OPC Clients for Tag Exchange
On the client PC, install any OPC DA 2.05a / 3.0 compliant client. Common choices: OPC Quick Client (bundled with Matrikon), KEPware, Inductive Automation Ignition OPC-DA, Siemens OPC Scout (V10 / V13).
- Add a new OPC DA server connection. Enter the remote node as
\<WinCCServerHost>\OPCServer.WinCC(double-backslash syntax required by COM). - Authenticate using the configured DCOM identity user.
- Browse the namespace. The hierarchy shows the WinCC server name → connection → tag.
- Add a group with desired update rate (typical 250–1000 ms). For high-speed data logging use 100 ms and disable dead-band filtering by setting the group PercentDeadband to 0.
- Subscribe to the items. Verify a quality code of
0xC0(Good) on the items;0x04= BadConfigurationError means the tag is not declared;0x08= BadCommunicationsError means the underlying channel is offline.
For programmatic access (C#, Python with OpenOPC, Node.js with node-opc-da), instantiate the server with the correct CLSID and item path. Example with Python + OpenOPC:
import OpenOPC
opc = OpenOPC.client()
opc.connect('OPCServer.WinCC', host='WinCCServer01')
print(opc.list(tags=True, recursive=True))
print(opc.read(['DB100_DBX0.0', 'Motor_Speed']))
opc.close()
Tag Synchronization in WinCC Unified RT
Projects migrating to WinCC Unified V17+ replace classic OPC DA with OPC UA and provide built-in tag synchronization between HMI tags and connected PLC tags. The synchronization behavior is configured per tag collection via the runtime settings panel described in the Settings for tags (RT Unified) documentation.
| Unified Setting | Effect on Runtime | Field use case |
|---|---|---|
| PLC tag synchronization = On | HMI tag values are overwritten with PLC tag values at every compile/load | Re-import after PLC program change |
| PLC tag synchronization = Off | Manual alignment; structure positions are not auto-mapped | Stable runtime; manual mapping via TIA Portal |
| Retain HMI tag properties | Threshold, scaling, limits retained during PLC import | Keep operator-side alarms on value changes |
| Update cycle (ms) | Acquisition rate for the synchronized tag set | 100–1000 ms typical; below 100 ms increases CPU |
For pure cross-PC tag exchange in Unified, publish the HMI tags via OPC UA server on port 4840 (default) and consume them from another Unified station or third-party OPC UA client using opc.tcp://<UnifiedPC>:4840.
Verification and Diagnostics
After completing installation and DCOM configuration, validate the OPC DA server is reachable from the client.
- From the client, open the OPC client tool and select Connect to Server. The tool must list
OPCServer.WinCCon the WinCC server hostname. - Add a group, browse, and add three tag types: a boolean, a 16-bit integer, and a 32-bit float. Confirm quality =
Good(0xC0) and a non-zero timestamp. - Force a value change in WinCC (e.g. via the Graphics Designer test mode). Verify the change appears on the client within one update cycle.
- Disconnect and reconnect. The OPC server should re-instantiate without restarting WinCC Runtime.
- Check the WinCC station logs:
%ProgramFiles%\Siemens\Automation\WinCC\diagnose\→ WinCC_Sys_<date>.log. Look for OPC-related entries; OPCServer.WinCC started confirms registration. - Use the Windows event viewer: Applications and Services Log → OpcEnum for COM activation traces.
If quality flags remain at 0x01 (BadConfigurationError) after restart, the tag has been removed from Tag Management but is still subscribed by the client — refresh the group and re-add the items.
Troubleshooting Matrix
| Symptom | Error Code | Likely Cause | Corrective Action |
|---|---|---|---|
| OPC server not listed in OPC client | — | WinCC Runtime not started; WinCC version below V7.0 SP3; SIMATIC NET missing | Start Runtime; upgrade to V7.0 SP3; install matching SIMATIC NET |
| Access denied on connect | 0x80070005 | DCOM access/launch permissions missing for client user | Re-apply DCOM Limits in dcomcnfg for Access, Launch, Activation |
| RPC server unavailable | 0x800706BA | Firewall blocking TCP 135 / RPC dynamic range; account mismatch | Open firewall ports; align user accounts across both machines |
| Items return BadConfigurationError | 0x800C0002 / OPC quality 0x01 | Tag disabled or deleted in Tag Management | Enable tag; reload Runtime; re-browse from client |
| Items return BadCommunicationError | OPC quality 0x08 | S7 channel offline; SIMATIC NET not installed | Install SIMATIC NET matching WinCC version; check CP card drivers |
| Browse tree empty | — | Tag Management group disabled or project empty | Open Tag Management → confirm tags exist and are enabled |
| Slow updates (> 5 s) | — | Group update rate too low; RPC fragmentation; CPU on server at 100% | Raise update rate to 250 ms; restrict RPC ports; check Task Manager |
| Server crashes when client disconnects | Event 10016 in System log | DCOM Identity set to "Launching User" but launching user is service account | Set Identity to "This user" with a permanent domain account |
Migration Notes: V7.0 to V7.0 SP3 and Beyond
The most common cause of "cannot find OPC server" in legacy installations is running WinCC V7.0 RTM on Windows 7 64-bit without SP1. Microsoft ended mainstream support for Windows 7 RTM on April 9, 2013, and WinCC V7.0 SP3 is the last SP that explicitly supports that OS family.
- Verify current WinCC version in Help → About WinCC Explorer.
- Download the latest V7.0 SP3 / SP3 ASIA or V7.4 / V7.5 media from Siemens Support entry 55987264 or via the Siemens Industry Online Support portal under Product Support → WinCC V7.
- Schedule a maintenance window — the upgrade restarts the WinCC service.
- Back up the project directory (
\<server>\WinCCProjects\<project>\) and the WinCC archive directories. - Run the installer, choose Update, and select the existing project for migration.
- Recompile the OS, then start Runtime. Validate OPC browsing from the client.
- Long-term, plan migration to WinCC Professional / WinCC Unified on TIA Portal to use OPC UA and eliminate the COM/DCOM attack surface.
FAQ
What is the exact OPC DA server ProgID exposed by WinCC V7?
The ProgID is OPCServer.WinCC, with CLSID {1A2DB3F0-2B5C-11D2-B6F4-0060087A3A0E}. Clients connect via \\<WinCCServer>\OPCServer.WinCC.
Why does WinCC Runtime need to be running for OPC tags to appear?
The OPC item tree is generated from the loaded WinCC project's Tag Management at Runtime start. When Runtime stops, the COM server unregisters its items, so remote clients see an empty browse tree until Runtime is restarted.
Which Windows version is the minimum for WinCC V7.0 SP3?
Windows 7 SP1 Professional / Enterprise / Ultimate 32-bit or 64-bit (Single-User / Client), or Windows Server 2008 R2 SP1 for WinCC Server. Original Windows 7 RTM is not supported — install SP1 first.
Do I need SIMATIC NET to expose internal tags via OPC?
No. SIMATIC NET is required only when the WinCC project reads from S7 / PROFIBUS / PROFINET channels and you want the OPC tree to include those process tags. Internal and script-driven tags are exposed by the WinCC OPC server alone.
How do I move from OPC DA to OPC UA without losing clients?
Upgrade WinCC to V7.4+ or migrate to WinCC Unified, which includes an OPC UA server on port 4840. Re-point clients to opc.tcp://<server>:4840 using UA endpoint discovery; both DA and UA servers can run concurrently during the transition.