Resolving WinCC 7 OPC XML DA Quality Code 1C Errors

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

1. Problem Definition: Quality Code 1C on WinCC 7 OPC XML DA Tags

When integrating a remote OPC XML DA server (such as a third-party device gateway running the Softing OPC Toolkit, or any HTTP-hosted OPC DA XML 1.0 endpoint) into a SIMATIC WinCC V7.x SCADA project, the following symptoms are reported:

  • The OPC XML DA server is reachable on port 8082 (or another HTTP/SOAP port) and can be browsed successfully from the WinCC Explorer.
  • OPC items can be imported as WinCC tags, including their data type (typically Double for floating-point 64-bit analog process values from inverter monitoring).
  • OPC Scout V10 8.0 (or any external OPC DA XML 1.0 client) lists and subscribes to the same items with valid values.
  • In WinCC runtime, every imported tag shows the numeric value 0 with quality code 1C.

The quality code 1C (hexadecimal) is not an arbitrary WinCC flag. It is the OPC Data Access 3.0 quality byte defined by the OPC Foundation in OPC DA 3.0 Specification, and the SCADA HMI treats it as bad, refusing to draw the value.

2. Decoding OPC Quality Code 1C

The OPC quality byte is structured as two nibbles:

Bit Field Meaning Value in 0x1C
Quality (high nibble, bits 7-6) Good (0xC0), Uncertain (0x40), Bad (0x00) 0x00 → Bad
Substatus (bits 5-0) Sub-status qualifier 0x1C → BadOutOfService
Limit (bits 5-4 of substatus) Limit status Not used in substatus 1C
Vendor (bit 0) Vendor-specific flag 0

Decoded, 0x1C = Bad / OutOfService. The OPC Foundation defines the semantic meaning as: “The value is not reliable because the block is not being evaluated and may be under construction by a configuration planner. Set if the block mode is O/S.”

In WinCC V7, the quality byte is propagated unchanged from the OPC server to the HMI tag, where it appears in the Quality Code column of the tag management. Whenever the high nibble is 0x00, WinCC forces the numeric value to 0 for Double/Float tags and blocks arithmetic on dependent tags.

3. OPC XML DA vs. OPC DA: Architecture Differences

WinCC V7 supports three OPC DA access paths:

Variant Transport WinCC Channel Driver Special Behavior
OPC DA 2.05 / 3.0 (in-process) COM/DCOM local or remote OPC Channel (.OCX) “Test Server” button available
OPC XML DA 1.0 HTTP/SOAP OPC XML Channel No “Test Server” button; HTTP URL required
OPC UA 1.02+ (only SP3 upd + HF) TCP/HTTPS binary OPC UA Channel Requires WinCC 7.4 SP3 or later with OPC UA option

The Softing OPC Toolkit published by Softing Industrial Automation GmbH implements an OPC XML DA 1.0 server. The Diehl Webmaster box (a solar inverter monitoring gateway based on this toolkit) listens on TCP 8082 by default and exposes the endpoint http://<host>:8082/DA, consistent with the OPC Foundation OPC XML DA 1.0 Specification.

Because XML DA carries the OPC quality byte in the SOAP response, a server-side BadOutOfService flag is forwarded verbatim to WinCC. This is why external clients (OPC Scout V10) and WinCC both see the same quality, but only WinCC refuses to display the value.

4. Root Cause Analysis

Quality code 1C in an OPC XML DA read can be produced by any of the following server-side conditions:

  1. The underlying hardware tag (e.g., inverter Modbus register) is in OutOfService mode in the OPC server address space. Softing's OPC server marks a tag O/S when its source item cannot be resolved or its update task is suspended.
  2. The OPC item path requested by WinCC does not exactly match the server's fully qualified item ID. Browsing returns a hierarchy, but reading requires a canonical ItemID; an unresolved item returns BadOutOfService rather than BadItemIDUnknown in some Softing builds.
  3. The Softing OPC Toolkit has not completed initialization of the requested data subscription at the moment WinCC sends the first Read call. The server returns O/S until the first internal poll cycle succeeds.
  4. WinCC's OPC XML channel has not yet completed the asynchronous item activation when the HMI requests the first value; the local OPC proxy returns O/S as a placeholder.
  5. DCOM/Authentication issues are present. While XML DA uses HTTP and is unaffected by DCOM, the WinCC OPC service may inherit the user's authentication profile; an unauthenticated context can force the proxy to mark items O/S.

The most common root cause in the field, observed on Softing-based gateway appliances, is #2 combined with #3: the browsed ItemID returned to WinCC Explorer is a hierarchical display name, but the underlying fully qualified path required by Read differs (typically by a leading ns=1;s= style prefix or by an array index notation).

5. WinCC 7 SP1 vs. SP3 OPC Behavior

Siemens publishes the SIMATIC WinCC compatibility matrix that documents the OPC behavior between SP1 and SP3. The relevant facts for OPC XML DA:

  • WinCC 7.0 SP1: ships with the original OPC XML DA channel. Browsing of remote HTTP-hosted XML DA servers is supported, but the implementation only issues synchronous Browse calls. Some servers (including Softing OPC Toolkit builds prior to 4.10) reject the synchronous browse and return HTTP 500.
  • WinCC 7.0 SP3: ships an updated OPC XML DA channel that issues GetStatus prior to Browse and falls back to asynchronous browsing. This makes the browse of Softing-based servers succeed where SP1 fails.
  • Quality propagation: identical between SP1 and SP3 for XML DA. The server's quality byte is returned unchanged.

Therefore the inability to browse the server on SP1 is a transport-level fix that arrived in SP3, not a configuration difference. Both versions, however, will exhibit the same quality code 1C behavior once items are imported.

6. Step-by-Step Troubleshooting Procedure

6.1 Prerequisites

  • WinCC 7.0 SP3 or later installed, with the WinCC OPC Channel option licensed.
  • Administrator account on the WinCC station with rights to configure DCOM and the Windows Firewall.
  • Network access from the WinCC station to the OPC XML DA server port (default TCP 8082).
  • Softing OPC Toolkit diagnostics tool (Softing OPC Toolbox Demo Client or opcxml.exe) for cross-check.

6.2 Procedure

  1. Verify the server endpoint from a browser. Navigate to http://<server>:8082/DA. The Softing server returns a WSDL or an XML status document. A 200 OK response confirms the HTTP/SOAP transport.

  2. Cross-check with OPC Scout V10 8.0. Add the same endpoint as an OPC XML DA 1.0 server. Subscribe to one item, confirm it returns a numeric value with quality Good (0xC0). This proves the server itself is producing valid data when queried correctly.

  3. Add the OPC XML DA server in WinCC Explorer. In Tag Management, right-click OPC → Add New Driver → OPC. Under OPC Groups, select System Parameters and enter the HTTP URL. Confirm that browsing now lists the tag hierarchy.

  4. Enable server-side diagnostics on the Softing box. On the Webmaster box, activate the Softing OPC Toolkit trace (registry key HKLM\SOFTWARE\Softing\OPCToolkit\TraceLevel = 3). Restart the OPC service. Each Read from WinCC will be logged with the exact ItemID string and the returned quality.

  5. Capture the ItemID used by WinCC. With the trace active, force a runtime start and let WinCC read once. The Softing log will show the ItemID it received. Compare it to the ItemID that OPC Scout used successfully.

  6. Correct the ItemID path. If the ItemIDs differ (typical case: WinCC sends the hierarchical display path while Scout sends the canonical fully qualified path), two remediation paths exist:
    • Change the Softing server configuration to expose flat ItemIDs matching the hierarchical names.
    • Use a WinCC script (VBS or C) that re-resolves the ItemID via a synchronous Browse with BrowseFilter = OPC_BROWSEFILTER_ALL, then writes the canonical path back into the tag's ItemID property.

  7. Verify the user's OPC access rights. On the WinCC station, run dcomcnfg.exe. Under Component Services → Computers → My Computer → DCOM Config, locate the OPC Proxy entries. Confirm Everyone or the WinCC user account has local and remote access. DCOM is not used by XML DA but the OPC proxy service still authenticates.

  8. Disable Windows Firewall on the WinCC side temporarily to rule out loopback restrictions; XML DA uses outgoing TCP 8082 but Windows Firewall on some hardened images blocks high ports.

  9. Check the OPC XML channel's update rate. WinCC's OPC XML channel defaults to 1 s. If the Softing server's GetStatus response time exceeds this, the channel can mark the group O/S. Increase the update rate to 5 s in the WinCC OPC group properties.

  10. Restart the WinCC OPC service: net stop "S7OpcConnectX" && net start "S7OpcConnectX" Then re-trigger the runtime. The 1C quality should resolve to Good (0xC0).

7. Softing OPC Toolkit Specific Items

When the OPC XML DA server is implemented on Softing's OPC Toolkit, the following Softing-side items directly influence the 1C quality on the WinCC side:

Setting Location Effect on Quality Code 1C
ServerState OPCToolkit service registration If RUNNING=0, all items return BadOutOfService
ItemValidationMode TkConfiguration.xml If set to Strict, unimported items return O/S
CacheTime OPCToolkit configuration Below 500 ms can starve the cache and produce O/S
EnableAsyncRead TkConfiguration.xml Must be true for WinCC OPC XML channel
ItemPathPrefix TkConfiguration.xml Empty string avoids ItemID mismatch

Verify these in the Softing Webmaster configuration before concluding that WinCC is the source of the fault.

8. Verification

After applying the corrective step, verify the resolution with the following sequence:

  1. Start WinCC Runtime and open the Graphics Designer picture containing the imported tags.
  2. Right-click the tag in Tag Management → Properties and confirm the Quality Code column now shows 0xC0 (Good) instead of 0x1C (BadOutOfService).
  3. In the Softing trace log, confirm the most recent Read for each ItemID returned Good and a non-zero numeric payload.
  4. Run a 30-minute soak test with the tag update rate at 1 s. Confirm that intermittent O/S flags do not reappear.
  5. Validate the OPC XML DA session through a second independent client (OPC Scout V10) reading the same items concurrently to prove the server side is healthy.

9. Alternative: Migrating to OPC UA on Modern WinCC

For new projects, Siemens provides the WinCC OPC UA Server in TIA Portal V20 (WinCC Runtime Professional). The OPC UA server is configured in the runtime settings and in the configuration file OPCUASERVERWINCCPRO.XML. Refer to the official Siemens documentation for the runtime settings panel: Configure WinCC OPC UA Server (RT Professional).

OPC UA is binary, encrypted, and does not use HTTP/SOAP. Quality code semantics in OPC UA are richer (status codes are 32-bit), but BadOutOfService still maps to a recognizable flag. Migrating from WinCC V7 to WinCC Runtime Professional V20 eliminates the entire XML DA channel layer and resolves quality code 1C issues arising from SOAP transport anomalies.

10. Diagnostic Matrix

Symptom Likely Root Cause Fix Location
Cannot browse server on SP1 XML DA channel transport fix absent Upgrade to SP3 or later
Browse OK, runtime quality 1C ItemID mismatch Softing TkConfiguration.xml
Browse OK, runtime quality 1C, intermittent Subscription not initialized Increase cache time, restart OPC service
Quality 1C on all tags, OPC Scout OK User authentication on OPC proxy dcomcnfg.exe access permissions
Quality 1C only on numeric tags Data type mismatch (Double vs Float) WinCC tag datatype
Quality 1C after WinCC restart, recovers after minutes OPCUASERVERWINCCPRO startup delay Use WinCC script to defer first read

11. Field Commissioning Checklist

  • Confirm the OPC XML DA URL responds with HTTP 200 from the WinCC station.
  • Confirm OPC Scout V10 returns Good (0xC0) on the same ItemIDs.
  • Confirm Softing OPC Toolkit server state is RUNNING.
  • Confirm ItemIDs match exactly between Scout and WinCC.
  • Confirm DCOM access for the WinCC user.
  • Confirm the WinCC OPC XML channel update rate is ≥ 1 s.
  • Confirm the WinCC Runtime license includes the OPC option.
  • Run a 30-minute soak test; confirm 0xC0 stays stable.

12. Safety and Operational Notes

Caution: Quality code 1C on a critical process tag (e.g., inverter DC voltage) must not be silently coerced to 0 in the WinCC picture. Use a WinCC script that detects Bad/OutOfService and displays an explicit alarm color so the operator is aware that the displayed value is invalid.
Reminder: XML DA transmits data in clear-text SOAP. Use XML DA only inside trusted networks. For untrusted network segments, prefer OPC UA with signed and encrypted endpoints.

FAQ

What does OPC quality code 1C mean in WinCC 7?

Quality code 0x1C decodes to Bad / OutOfService per OPC Data Access 3.0. It indicates the server has not finished evaluating the item or the item is in OutOfService mode. WinCC displays the value as 0 and disables dependent tags until the quality returns to 0xC0 (Good).

Why does OPC Scout show valid values while WinCC shows quality 1C?

OPC Scout V10 issues a fully qualified ItemID in its Read calls. WinCC's OPC XML channel sometimes forwards the browsed hierarchical name, which the Softing OPC Toolkit may not resolve and therefore marks as OutOfService. The fix is to either expose flat ItemIDs on the Softing server or re-resolve the ItemID in WinCC before reading.

Is there a difference between WinCC 7 SP1 and SP3 for OPC XML DA?

Yes. SP3 includes an updated OPC XML DA channel that issues GetStatus before Browse and supports asynchronous Browse. SP1 can fail to browse Softing-based XML DA servers entirely. Quality propagation is identical between SP1 and SP3.

Can I use the Test Server button for an OPC XML DA server?

No. The Test Server button in WinCC Explorer only operates against in-process OPC DA servers (COM/DCOM). For OPC XML DA 1.0 servers, use a third-party client such as OPC Scout V10 or the Softing OPC Toolbox Demo Client to verify the server independently.

How do I migrate from WinCC 7 OPC XML DA to OPC UA?

Migrate the SCADA project to WinCC Runtime Professional V20 in TIA Portal. The WinCC OPC UA Server is configured in the runtime settings and in OPCUASERVERWINCCPRO.XML. See the official Siemens documentation at Configure WinCC OPC UA Server (RT Professional) for the runtime configuration procedure.

Back to blog