Problem Details
A WinCC Graphics Designer runtime screen contains multiple dynamic objects (bar graphs, additional I/O fields, status displays). All of them refresh at the configured acquisition cycle. A single I/O Field, configured as a Smart Object and bound to a tag delivered from a separate PC through an OPC DA/UA server, behaves differently: the displayed value freezes at the moment the picture is opened and only changes when the operator manually switches to a sibling project window and returns. Every other variable on the same screen continues to update normally. The freeze is reproducible on every picture change and disappears only after the forced screen toggle.
Environment Snapshot
| Component | Configuration in reported case |
|---|---|
| Engineering | WinCC 7.5 SP2 / Graphics Designer |
| Runtime | WinCC Runtime multi-project (Destillat, Vorlagebehaelter, ...) |
| Failing object | I/O Field Smart Object, output only |
| Data source | External PC via OPC DA server (WinCC OPC, SIMATIC NET OPC, or 3rd-party) |
| Tag type | External / OPC tag, mapped to internal WinCC variable |
| Companion logic | Two C / VB / VBS scripts applied on top of incoming raw data for unit conversion and offset correction |
| Observed update interval | ~5 s lag on first refresh after screen switch, then static |
Root Cause Analysis
The I/O Field is a passive display element; it does not poll the tag itself. Its visible value is repainted whenever Graphics Designer receives a value change event on the bound tag. Three independent paths feed that event. Any of them can short-circuit the cycle while leaving siblings healthy.
Most Common Triggers (Ranked)
- Tag configured "On change" but the OPC source only publishes cyclically and never re-asserts the same value. WinCC discards identical successive values, so the screen never receives an update event.
- Acquisition cycle too long for the displayed variable. Default 2 s for a measurement that updates every 5 s will appear stuck.
- Two scripts chained on top of incoming data writing a constant or computing from an uninitialized variable, freezing the internal tag.
- OPC subscription timed out on the external server side (typical after 30-60 s of no consumer interaction). WinCC must re-establish; until then no events arrive.
- Picture change without picture-object re-initialization. The Smart Object caches its old value.
- Wrong tag binding inside the Smart Object (faceplate instance bound to the wrong property tag, not the runtime tag).
Diagnostic Procedure
- Open WinCC Explorer, right-click the affected tag, choose Properties. Record the configured Acquisition cycle and Update mode.
- In the tag's Limits/Reporting tab, verify whether Archive and Output are enabled. Archive events are independent of screen events.
- Use WinCC Tag Simulator or write a forced value into the OPC source and observe whether the I/O Field reacts at all.
- Open Graphics Designer > Tools > Cross Reference on the Smart Object to confirm it is referencing the intended tag name (case-sensitive).
- Activate the project with Global Script Runtime Diagnostics enabled (C:\Program Files (x86)\Siemens\Automation\WinCC\diagnose). Inspect the log for the affected tag.
- Switch the tag's acquisition cycle to
500 msas a controlled test. If the I/O Field now updates, root cause is OPC publication cadence or "On change" mismatch. - Disable the two on-top scripts temporarily. If the I/O Field updates, one of the scripts is overwriting the tag.
Solution: Configuring Correct Cyclic Refresh
1. Set the Tag to a Deterministic Cycle
Open the tag in WinCC Explorer (or TIA Portal WinCC Professional), navigate to Properties > Update, and set:
| Property | Recommended for external OPC tags | Notes |
|---|---|---|
| Acquisition cycle | 1 s or 500 ms | Match the source update rate |
| Update | On change only if OPC guarantees re-publish | Safer to use cyclic |
| Scaling | Apply on the tag, not in the Smart Object | Prevents double conversion |
| Limits | Disable if unused | Limits trigger additional events that can mask the real value event |
2. Force the I/O Field to Repaint on Timer
When the OPC server cannot be reconfigured, drive the display from a short-period trigger using a small VBS action attached to the picture. The action re-reads the tag and writes it back to the Smart Object property, forcing repaint:
' Triggered by a 250 ms picture timer
Sub OnTimeTrigger(ByVal Item)
Dim sTagName
sTagName = "Destillat_RawValue"
Dim oValue
oValue = HMIRuntime.Tags(sTagName).Read
' Apply corrections
Dim dCorrected
dCorrected = CDbl(oValue) * 0.95 + 1.27
' Write back to the I/O Field property tag
HMIRuntime.Tags("Destillat_DisplayValue").Write dCorrected
End Sub
Destillat_DisplayValue, an internal WinCC tag whose acquisition is 500 ms cyclic. The action overwrites the tag every 250 ms, ensuring the Graphics Designer always sees a fresh event. The OPC source is read once per cycle, not per repaint, keeping OPC DA server load low.
3. Configure the Picture Timer
- In Graphics Designer, select the picture background.
- Open Properties > Events > Miscellaneous > Timer.
- Set trigger to
250 ms(minimum supported in WinCC 7.x; TIA WinCC Professional supports 100 ms). - Bind the timer event to the VBS action above.
- Save, compile, and activate runtime.
4. Validate the OPC Subscription
Confirm the OPC server is actually publishing. From any client (e.g., OPC Scout V10, shipped with SIMATIC NET):
- Connect to
OPC.SimaticNET.1or the vendor DA server. - Add the affected tag.
- Watch the Value column with Active subscription.
- If values stay constant even when the source changes, the OPC server is the bottleneck. Restart the OPC server or enable its cyclic publish.
Verification
After applying the corrected acquisition cycle and picture timer, perform these verification steps before declaring the fault closed.
| Check | Method | Pass criterion |
|---|---|---|
| Tag acquisition log | WinCC Tag Logging, online table | New entry at every cycle, no gaps |
| Picture refresh | Stop on a value, change the source | I/O Field updates within 1 cycle |
| Cross-reference | Graphics Designer > Tools > Cross Reference | Tag name matches the runtime binding |
| CPU / RAM | Task Manager on HMI panel | PictureTimer action < 5% CPU |
| OPC server health | OPC Scout subscription | Continuous stream, no reconnects |
| Smart Object compile | Regenerate the faceplate instance | No "Tag not found" warnings |
Quick Acceptance Test
- Open picture Destillat. I/O Field must show the current process value within 1 s.
- Force the source value to increment by 1 every 500 ms. I/O Field must follow in real time.
- Switch to Vorlagebehaelter for 60 s, then back. I/O Field must update without operator interaction.
- Reboot the runtime PC. After restart, I/O Field must reach steady display within 2 cycles without manual picture toggle.
Troubleshooting Matrix
| Symptom | Likely cause | Fix |
|---|---|---|
| Single tag stale, siblings fresh | Tag "On change" + OPC does not re-publish identical value | Switch tag acquisition to cyclic |
| Tag stale after picture switch | Picture not regenerated, Smart Object cached | Re-instantiate or use a trigger timer |
| Tag stale after 30-60 s idle | OPC subscription timed out on server side | Enable keep-alive on OPC server; reduce subscription cycle |
| Tag always shows 0 | Script overwrites with empty / uninitialized variable | Wrap script in If IsNumeric(oValue) Then
|
| Tag shows raw value, not corrected | Two scripts both writing, second wins | Consolidate logic into a single function |
| Tag updates, I/O Field does not | Smart Object property bound to wrong tag | Recreate the Smart Object with correct tag |
| Tag flicker between two values | OPC DA group and WinCC tag both writing | Disable one writer |
| Value correct on first load, then jumps | Initial value caching by Graphics Designer | Set Picture > Properties > Initial value refresh = Yes |
| Slow on every screen open | Database archive query on tag start | Disable archive on display-only tag |
| Stale only on WinCC Runtime Multi-VGA / Multi-Client | Server project uses passive tag, client has no subscription | Enable client-side tag subscription in WinCC Client configuration |
Platform-Specific Notes
WinCC 7.x (Classic)
- Minimum picture timer in Graphics Designer:
250 ms. - Cyclic tag acquisition options: 250 ms, 500 ms, 1 s, 2 s, 5 s, 10 s, 1 min, 5 min, 10 min, 1 h, user-defined.
- Smart Objects regenerate their values on picture-open by default; verify Picture > Properties > General > Monitor renaming is disabled if you do not want picture-name based rebinding.
- Use WinCC Information System path Working with WinCC > Configuring Tags > Tag Properties for the canonical property list.
WinCC Professional / TIA Portal (V16-V19)
- I/O Field configured under HMI Tags > Properties > Update.
- Picture timer minimum:
100 ms. - For OPC UA, configure Connection > Acquisition cycle at the HMI tag level, not at the connection.
- Smart Object is realized as a Faceplate instance. Verify the faceplate interface property is bound to the correct runtime tag, not the configuration tag.
WinCC Unified (PC and Panel)
- Unified uses JavaScript instead of VBS. The equivalent pattern:
// Triggered by a 250 ms picture timer
let raw = Tags("Destillat_RawValue").Read();
let corrected = raw * 0.95 + 1.27;
Tags("Destillat_DisplayValue").Write(corrected);
- For OPC UA subscriptions, confirm PublishingInterval on the server endpoint matches the HMI tag cycle, otherwise sampling misses are common.
Performance and Safety Considerations
- Keep one picture timer per picture, not per object. Subscribe every dependent object inside that timer.
- Apply scaling on the tag once, not in multiple scripts. Scaled tags eliminate a class of round-off bugs and reduce the work the timer has to do.
- For high-frequency updates (> 10 Hz), use WinCC Trend or Online Table Control with the underlying Tag Logging archive; do not hammer I/O Fields at that rate.
- If the value is safety-relevant, never rely on display-only refresh for the operator's situational awareness; add an Acknowledgement or Color change cross-check that follows the tag value independently of the picture timer.
Related Configuration Checks
- Computer properties > Graphics Runtime: ensure Update cycle is enabled and set to a value matching the most demanding tag.
- Computer properties > Tag Management: under the OPC channel, verify the group's Update rate is not set to On demand.
- User Administrator: confirm the runtime user has Tag read rights; restricted rights can silently suppress updates.
- Redundancy: if running WinCC Redundancy, verify both servers have equal subscription state; failover can re-create stale tags.
- Performance tags: open WinCC > Diagnosis > Performance and verify Tag cycle time is < 80% of the configured cycle. Otherwise events are being dropped.
FAQ
Why does my WinCC I/O Field only update after switching projects?
The tag is most likely configured for "On change" while the OPC source publishes only when the value actually changes, and WinCC discards identical successive values. Switching projects forces a full picture regeneration, which re-reads the tag. Set the tag's acquisition cycle to a fixed cyclic value (e.g., 500 ms or 1 s) to force regular repaints.
How do I force an I/O Field to refresh every cycle from an external OPC tag?
Bind the I/O Field to an internal WinCC tag with a deterministic acquisition cycle (250 ms-1 s). Drive that internal tag from a VBS or JavaScript picture timer that reads the OPC source, applies corrections, and writes the internal tag. This decouples OPC subscription cadence from display refresh cadence.
What is the minimum picture timer in WinCC 7.x Graphics Designer?
250 ms in WinCC 7.x. WinCC Professional (TIA Portal) supports 100 ms. WinCC Unified supports 100 ms as well. Going below the platform minimum is silently rejected at runtime and can lock the picture.
Does "On change" mean the value will repaint when the source updates?
No. WinCC raises a value-change event only when the new value differs from the cached value. If the OPC server re-publishes the identical value (common with cyclic publishing on stable process variables), WinCC discards the event and the I/O Field stays frozen. Use a cyclic acquisition or add a heartbeat bit to guarantee events.
How do I confirm whether the OPC server is the bottleneck?
Use SIMATIC NET's OPC Scout V10 or the vendor's OPC DA test client to subscribe to the affected tag with "Active" subscription. If the test client receives continuous updates but WinCC does not, the issue is in WinCC's tag configuration or the picture refresh path. If the test client also shows stale data, the OPC server's publish cycle is the cause.