Troubleshooting WinCC V7.4 Alarm Logging Not Displaying OPC Tag

David Krause13 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 Statement

A WinCC V7.4 SP1 (or later) project uses the OPC channel driver in WinCC Tag Management to subscribe to tags from an RSLinx Enterprise / RSLinx Classic OPC Server (Rockwell Automation / Allen-Bradley). Each tag is bound to a data table location in a Logix controller (ControlLogix, CompactLogix, GuardLogix, Micro800, or PLC-5/SLC 500 through bridging). The connection is healthy, the WinCC tag value updates live in the tag table (Tag Management → variable list), and the engineer can force the bit to 1 in RSLogix 5000 / Studio 5000 Logix Designer and see the value change in the WinCC tag.

The fault condition is that the same tag, when configured as the trigger tag (message tag) for a WinCC alarm message, never produces a visible event in the runtime AlarmControl (Alarm OCX) on the WinCC Runtime / WinCC RT Professional screen. No row, no color change, no archive entry. A "value=1" at the OPC item does not generate a "Came In" state transition in the Alarm Logging subsystem.

This article documents the full diagnostic and recovery procedure for the OPC-tag-triggered alarm path in WinCC V7.4, with specific attention to the AlarmControl selections, message tag / status tag model, and the OPC DA 2.0 / 3.0 subscription semantics used by the RSLinx bridge.

2. WinCC V7.4 Alarm Logging Architecture

WinCC V7.4 alarm logging is composed of four cooperating subsystems. A failure in any one of them will result in a silent alarm:

  1. WinCC Tag Management (OPC channel) – owns the OPC DA subscription and the in-process tag mirror.
  2. Alarm Logging editor / runtime component – owns message configuration, the message tag/state machine, and the archive.
  3. Graphics Runtime / AlarmControl OCX – owns the HMI view, the column layout, and the active selection (filter).
  4. User Administrator / Authorization – gates which operators can see or acknowledge which message classes.

The data path is: RSLinx OPC Server → WinCC OPC channel (opcda.dll) → WinCC tag mirror → Alarm Logging message tag → Alarm Logging event buffer → AlarmControl row → archive segment. The OPC tag is only the trigger; Alarm Logging performs its own state machine independent of the OPC item. The fact that the WinCC tag value updates in the variable list does not prove that Alarm Logging is observing the same variable.

Reference: WinCC V7.4 SP1 Help / Manual – Alarm Logging, WinCC V7.4 System Manual – Communication, and the modern equivalent in Alarm Logging in WinCC RT Professional (TIA Portal V20).

3. OPC Channel Configuration Against RSLinx

WinCC communicates with RSLinx through the standard OPC DA interface (DA 2.0 / 3.0). Verify the channel under Tag Management → [your OPC channel] → System Parameters and the connection under [your connection] → Properties:

Parameter Required value (RSLinx bridge) Symptom if wrong
OPC Server name (ProgID) RSLinx OPC Server (Classic) or RSLinx Enterprise OPC Server Channel starts, no items, no error
Local / remote Localhost for Classic; remote endpoint URL for Enterprise Channel down, red X in Tag Management
Update rate (ms) 250 – 1000 typical; minimum 100 Missed edges, slow ack clearing
Item name format Matches RSLinx topic, e.g. [CLX_PROG]MAIN.ALARM_BIT Bad Quality on the tag, alarm never triggers
Tag datatype Binary Tag, 1 bit Cannot be selected as message bit

For Logix controllers, the Item name passed to RSLinx must include the program scope or controller scope path. A typical valid item: [CLX01]Program:MainProgram.ALARM_BIT. Without the program scope prefix, RSLinx returns Bad Quality and Alarm Logging discards the message tag without logging an error.

Quality check: open Tag Management → [tag] → Properties and confirm that the "Quality" indicator reads Good (green) and the "Last Update" timestamp moves when the controller value toggles. If the timestamp is frozen, fix the OPC connection before continuing.

4. Message Tag vs. Status Tag

WinCC Alarm Logging treats every alarm as a state machine on a structured tag called the message tag. The message tag is conceptually a 32-bit field where each bit represents one alarm within a message number. This is not the same as a regular WinCC process tag.

Concept Purpose WinCC type Configured under
Message tag (Bit message tag) Carries the alarm state; the bit position selects the message Unsigned 32-bit or signed 16-bit Alarm Logging → Messages → Properties → Tag trigger
Status tag (optional) Carries additional state: Ack, Came In/Out, Gone Unsigned 32-bit, bit-packed Alarm Logging → Message class → Status tag
Process tag (OPC) Carrier value supplied by RSLinx Binary Tag or Word Tag Management → OPC channel

Two common mistakes break this path:

  1. The engineer selects a process tag directly as the message trigger. WinCC will accept the binding, but Alarm Logging expects a Word/DWord tag that holds the message state; binding to a Boolean tag prevents the message from ever reaching the "Came In" state.
  2. The engineer uses an OPC tag but never configures a Status tag on the message class. Without a status tag, the message is generated but never updates "Acknowledged" or "Came In/Out" transitions correctly, and many AlarmControl layouts will not display a row.
For boolean / single-bit alarms driven directly from a discrete PLC output the recommended pattern is a Word message tag with the offending bit mapped to a message number, and a separate Status tag on the message class. Do not bind a 1-bit Boolean directly to the message trigger when working with classic bit messages.

5. Root Cause Matrix

# Root cause How to confirm Fix
1 AlarmControl selection / fixed selection hides the row Graphics Designer → AlarmControl properties → Message lists → Selections / Fixed Selections Delete the selection or rebuild without filter
2 Message tag is a 1-bit Boolean, not a Word/DWord Tag Management → tag datatype Change datatype to Binary Tag 16/32 bit or create a Word shadow tag
3 Trigger bit position wrong (mismatched message number) Alarm Logging → Messages → Properties → Trigger Set Trigger → Bit → correct bit position
4 Message class has no Status tag Alarm Logging → Message Classes → Properties Assign a Status tag (WinCC internal or process tag)
5 OPC item quality is Bad (RSLinx topic/Item name error) Tag Management → tag → Quality indicator Fix item name to match RSLinx topic; verify controller path
6 OPC update rate too slow to catch the edge Tag timestamp does not update Lower update rate to ≤ 500 ms; confirm subscription
7 AlarmControl is showing only "Acknowledged" or "Hidden" status Column configuration of the control Add / move the State column to the front of the column set
8 Operator authorization hides the message class User Administrator → Authorizations Grant the operator the alarm-class-level authorization
9 Archive full and write blocked, runtime row not displayed Alarm Logging → Archives Resize the archive segment or enable ring buffer
10 Graphics Runtime not started; only Configuration is running Taskbar icon / process list Start WinCC Runtime, not just WinCC Explorer

6. Step-by-Step Resolution Procedure

6.1 Prerequisites

  • WinCC V7.4 SP1 with installed options: WinCC Alarm Logging, WinCC OPC.
  • RSLinx Classic / RSLinx Enterprise running, configured with an active topic pointing to the Logix controller.
  • Project in WinCC Explorer; Graphical Designer and Alarm Logging editors accessible.
  • Local administrator rights on the engineering station.

6.2 Verify the OPC tag updates in Tag Management

  1. Open WinCC Explorer → Tag Management.
  2. Right-click the OPC tag → Properties; check Quality = Good and Last Update timestamp.
  3. Force the bit to 1 in Logix Designer / RSLogix 5000.
  4. Confirm the WinCC value toggles 0 → 1. If it does not, the fault is in OPC, not Alarm Logging.

6.3 Configure the message tag as Word/DWord, not Boolean

  1. Add a new tag of type Binary Tag, 16 or 32 bit, internal or process (mirrored from OPC).
  2. If the project requires a per-alarm discrete OPC input, write the boolean into a DWord shadow tag using a Global Script action: SetTagDWord("MsgTag", 1 << 0); when the OPC boolean goes high.

6.4 Bind the message trigger in Alarm Logging

  1. Open Alarm Logging → Messages.
  2. Open the message that should fire; on the Properties dialog choose the Tag trigger tab.
  3. Select the Word/DWord message tag, then click Bit and enter the bit position (0–31) of the alarm.
  4. Save and close. Repeat for every alarm mapped to the same message tag.

6.5 Assign a Status tag to the message class

  1. Open Alarm Logging → Message Classes.
  2. Right-click the class (e.g. Error, Warning) → Properties.
  3. Set the Status tag to an internal WinCC DWord or to a process tag available to OPC.
  4. Save the project.

6.6 Clear selections on the AlarmControl

  1. Open Graphics Designer and select the AlarmControl on the screen.
  2. Right-click → Properties → tab Message lists.
  3. Click Selections → delete every selection entry. Click Fixed Selections → delete every entry. These are runtime and design-time filters; a single residual filter will silently hide the message class.
  4. Confirm the message-number range covers the new message: click Selections → New, choose Selection by message number, and explicitly include the new message number as a sanity check. Once it is visible, delete the test selection.

6.7 Check the column set on AlarmControl

  1. Same Properties dialog → tab Columns.
  2. Ensure the columns Date, Time, State (Came In / Came In / Acknowledged), Message text, and Message number are present and ordered with State visible.
  3. If the screen is read-only, use the right-mouse context menu in runtime to add the State column back.

6.8 Verify operator authorization

  1. Open User Administrator.
  2. Locate the operator group that has access to the alarm screen.
  3. Confirm the group has the Alarm Logging – operation authorization level (number depends on the project; default ranges 1–1000). A blank or wrong level hides message classes at runtime.

6.9 Save, compile, restart WinCC Runtime

  1. Select File → Save in WinCC Explorer.
  2. Use Tools → Compile / Check Consistency; the consistency check will flag missing status tags and orphan message tags.
  3. Close the runtime, then start it again. Alarm Logging does not re-read selections while the runtime is live.

7. AlarmControl Display Properties and Selections

The single most common cause of "alarm value=1 but not displayed" is an active selection on the AlarmControl. A selection is a runtime filter that suppresses rows whose date, state, class, priority, or message number is outside the filter.

  • Selection – set by the operator at runtime, persistent in the project until cleared.
  • Fixed Selection – locked at design time; cannot be changed by the operator.

Both are accessible from Graphics Designer → AlarmControl properties → Message lists. Removing every line in both dialogs is the equivalent of a factory reset for the visible message set. After clearing, the AlarmControl shows all messages present in the runtime buffer. Verify with a known triggered alarm before re-applying any project-level filter.

Caution: Do not confuse selections with message classes. Deleting a message class removes the alarm from the Alarm Logging engine entirely; clearing a selection only affects the view.

8. Diagnostic Tools and Verification

Tool Use Path / command
WinCC Tag Management – Tag diagnostics Show quality, last update, last value Right-click tag → Properties
Alarm Logging – GfxDiagnostics Inspect message tag, status tag, class Alarm Logging → Tools → GfxDiagnostics
WinCC Channel Diagnosis OPC channel state, item count Start → SIMATIC → WinCC → Tools → Channel Diagnosis
Alarm Logging – Statistics Count of Came In, Came Out, Ack events Alarm Logging runtime toolbar → Statistics
Alarm Logging – Output Live dump of every event Alarm Logging runtime toolbar → List
Apdiag / S7 Diagnose For S7 paths – not relevant here n/a

To verify the path end-to-end, force a bit to 1 in Logix Designer, then in the Alarm Logging runtime click Output. A row must appear within one update cycle (≤ 1 s at 1000 ms update rate). If the row appears in the Output list but not on the AlarmControl on the screen, the AlarmControl is being filtered – apply Section 7. If the row does not appear in Output either, the message tag is not seeing the bit transition – re-apply Section 4.

9. RSLinx OPC Server Connectivity

Confirm the RSLinx side of the bridge:

  1. Open RSLinx → DDE/OPC → Topic Configuration and confirm the topic is Active and Polled (or Cyclical).
  2. Open RSLinx → DDE/OPC → OPC Test Client (or any third-party DA browser such as MatrikonOPC Explorer) and browse the topic. The exact item name and quality can be observed in seconds.
  3. Cross-check the item name against the WinCC OPC item name. RSLinx is case-insensitive, but the program-scope path must match exactly.

If the OPC Test Client shows the value flipping 0 → 1 but WinCC does not, the issue is not RSLinx; it is the WinCC OPC channel configuration. Specifically, verify the channel is set to OPC DA and not OPC XML-DA or OPC UA; the RSLinx Classic OPC Server exposes DA 2.0 / 3.0 only.

10. Common Pitfalls and Edge Cases

  • Symbolic vs. direct address: symbolic item names are recommended for ControlLogix; a rename in Logix Designer breaks the OPC item until WinCC is re-pointed.
  • Multiple OPC servers: if two OPC channels are present, WinCC will not load a tag from the second channel while the first is marked "down". Confirm only one channel carries the alarm tag.
  • Redundant server pair: on a redundant WinCC server pair, the standby may hold the message buffer until failover – force the bit on the active server during commissioning.
  • Integer overflow in the message tag: a 16-bit Word cannot hold more than 16 messages; if your bit position is 17, the trigger silently fails.
  • Time zone / DST: the AlarmControl may show the row with a timestamp in a different time zone, which appears to operators as "no row at the current time".
  • Locked screen: if the AlarmControl is inside a process picture with picture-window navigation, the picture may not be loaded, suppressing updates to the visual state.
  • Tag licensing: PowerTags in RSLinx count toward the licensed tag count; if the license is exhausted, the OPC item returns Bad Quality silently.

11. Field-Proven Commissioning Checklist

  1. RSLinx topic active, polled, item name verified in OPC Test Client.
  2. WinCC OPC channel shows Good quality, value updates live.
  3. Message tag is Binary Tag 16/32 bit, mapped to the OPC item or written via Global Script from the OPC boolean.
  4. Message trigger set to correct bit position of the message number.
  5. Message class has a Status tag assigned.
  6. AlarmControl has no Selection and no Fixed Selection covering the message.
  7. AlarmControl column set includes State, Date, Time, Message text, Message number.
  8. Operator authorization includes the message class.
  9. WinCC Runtime (not just Configuration) is running.
  10. Alarm Logging Output window shows the event when the bit is forced.

Following the checklist, the value=1 at the OPC item will produce a visible "Came In" row in the AlarmControl within one OPC update cycle, with a matching archive entry.

FAQ

Why does my WinCC OPC tag show value=1 in Tag Management but no alarm appears in AlarmControl?

The OPC tag is only the carrier. Alarm Logging needs a Word/DWord message tag with the offending bit bound to a message number, a Status tag on the message class, and an AlarmControl on the screen with empty Selections and Fixed Selections. The most frequent single cause is a residual selection filtering the row out of view.

Can a Boolean OPC tag be used directly as a WinCC alarm trigger?

Not for classic bit messages. Create a 16/32-bit Binary Tag, write the boolean into a defined bit position using a Global Script, and bind that Word tag as the message trigger. The bit position (0–31) selects the message number.

How do I clear an active filter on the WinCC AlarmControl?

Open the picture in Graphics Designer, select the AlarmControl, open Properties → tab Message lists, and click Selections and Fixed Selections to delete every entry. Save the project, then restart WinCC Runtime – the filter is read at runtime startup.

My RSLinx item shows Good in the OPC Test Client but Bad in WinCC. Why?

Check the OPC channel type: the RSLinx Classic OPC Server exposes DA 2.0/3.0 only, not XML-DA or UA. Also confirm the item name in WinCC matches the topic-path format used in RSLinx, including program scope for Logix controllers, and that the RSLinx topic is Active and Polled.

Do I need a Status tag on every message class?

Yes, for the message to surface in the AlarmControl with correct State transitions (Came In, Came Out, Acknowledged). Without a Status tag the message event is generated but the row's state column is frozen, and many screen layouts hide rows that have no state update.

Back to blog