Resolving Intermittent MonDiL and ALARM_8P Message Reporting Failures in S7-400 Controllers
In SIMATIC PCS 7, intermittent failures where MonDiL (FB1848) monitoring alarms stop reporting to WinCC and require a full AS compile and download to recover are caused by message event ID (MsgEvId) desynchronization or controller communication buffer exhaustion. During repetitive online delta compilations, the unique cryptographic Event IDs assigned to internal ALARM_8P (SFB35) instances can become orphaned or collision-locked in WinCC Alarm Logging. Furthermore, exceeding the S7-400 CPU maximum message quota (MAX_TICK parameter in cyclic OBs) causes the AS to drop alarm telegrams. To permanently resolve this, perform a synchronized full AS/OS compilation with message number re-assignment and tune CPU message buffer allocation.
Table of Contents
- Executive Summary
- Architecture and Fundamental Mechanics
- Step-by-Step Implementation Procedure
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Executive Summary
Process control engineers occasionally encounter a baffling failure mode in operating S7-400 / CPU 410 systems: digital monitoring blocks (MonDiL) detect active field trips online in CFC, yet WinCC Alarm Logging fails to generate alarm rows or sound audible horns. The only temporary remedy discovered by site personnel is executing a full AS compile and download, which halts operations and disrupts plant availability. This issue stems from message identifier desynchronization between the Step 7 message server and WinCC Alarm Logging during cumulative delta downloads, compounded by S7-400 message queue saturation. This guide details the internal mechanics of ALARM_8P message delivery and provides permanent configuration solutions.
Architecture and Fundamental Mechanics
The PCS 7 alarm delivery architecture relies on event-driven telegram handshakes between the controller and WinCC:
1. ALARM_8P (SFB35) Mechanics in MonDiL:
Every MonDiL instance incorporates an embedded ALARM_8P system function block. When a digital input trips (In.Value = 0 while healthy is 1), ALARM_8P packages the event, attaches a high-resolution millisecond timestamp from the CPU real-time clock, assigns its 32-bit MsgEvId (Message Event ID), and enqueues the telegram into the CPU message buffer.
2. Root Cause A: Event ID Desynchronization (Delta Compiles):
During online delta compilations, if blocks are moved across charts, re-instantiated, or edited while WinCC is active, the cross-reference mapping between the AS block's MsgEvId and WinCC Alarm Logging's message table can diverge. When the AS fires an alarm telegram containing the old MsgEvId, WinCC discards the unknown message ID, resulting in silent alarm loss.
3. Root Cause B: S7-400 Message Queue Overload (MAX_TICK):
The S7-400 operating system allocates a finite cyclic communication budget for alarm processing (MAX_TICK). In plant areas with severe alarm avalanches or poorly configured cyclic interrupt tasks, the message send queue fills to capacity. Subsequent ALARM_8P calls return error code STATUS = 16#0014 (message buffer overflow), permanently suppressing alarms until the queue clears or the CPU is restarted.
Step-by-Step Implementation Procedure
-
Inspect ALARM_8P Status Online in CFC:
a. Open the affected CFC chart in CFC Test Mode.
b. Inspect theMonDiLinstance block: locate internal outputs or open the instance DB in STEP 7.
c. Monitor theErrorandStatusoutputs of the embeddedALARM_8P(orMsgErr/MsgStaton the block).
d. IfStatus = 16#0014, communication buffer overflow is confirmed.
e. IfStatus = 16#0000but WinCC displays nothing, Event ID desynchronization is confirmed. -
Reconcile Message Numbers in SIMATIC Manager:
a. In SIMATIC Manager, select the AS project.
b. OpenOptions -> Assign / Reassign Message Numbers....
c. Check for duplicate or conflicting message numbers across all project charts.
d. If duplicates exist, execute a message number reorganization under project maintenance. -
Configure S7-400 CPU Communication Resources in HW Config:
a. Open HW Config for the S7-400 / CPU 410 controller.
b. Double-click the CPU to open Object Properties.
c. Under the 'Cycle/Clock Memory' tab, increase the 'Scan cycle load from communication (%)' from the default 20% to30%or40%.
d. Under the 'Diagnostics/Clock' tab, ensure time synchronization is healthy.
e. Save and compile HW Config. -
Perform Synchronized Full Compilation and Re-indexing:
a. Close WinCC Explorer on the Engineering Station.
b. In SIMATIC Manager, right-click the Charts folder ->Compile -> Entire Program.
c. In the OS object, right-click ->Compile -> Entire OS.
d. In the compilation wizard, select 'With explicit addressing' and ensure 'Alarm Logging' is fully re-indexed.
e. Download the compiled baseline to the AS and OS during a scheduled maintenance turnaround.
Verification
- In CFC test mode, simulate a trip on the
MonDiLblock (In = 0). - Monitor the block: confirm
MsgStatreports success (16#0000) andOuttransitions to active alarm state. - In WinCC Alarm Control, confirm that the alarm row appears immediately with accurate plant hierarchy location, millisecond timestamp, and message text.
- Reset the trip condition: confirm that the alarm transitions to 'Cleared' and logs departure cleanly in the historical alarm archive.
Limitations and Operational Precautions
Executing a full AS program download resets dynamic block memories and may require placing the controller in STOP mode if block structural interfaces have changed. Always schedule full compilations during planned shutdowns.
Engineer FAQ
Why did a full compile and download temporarily fix the missing alarms?
A full compile re-synchronizes the 32-bit MsgEvId tags in the AS with the WinCC Alarm Logging database tables, repairing broken pointer mappings created during multiple delta compiles.
What does ALARM_8P status 16#0014 mean?
It indicates that the controller's internal communication message buffer is full and cannot accept additional alarm telegrams.
How can I increase the CPU communication buffer for alarms?
In HW Config, open CPU Properties and increase the 'Scan cycle load from communication' parameter (e.g., from 20% to 30%).
Can moving a MonDiL block to another CFC chart break alarms?
Yes. Moving blocks across charts can alter instance DB assignments, requiring an OS compile to update WinCC message routing.
What log file records message creation errors during OS compilation?
The TRANSFER.LOG file located in the OS project directory records any duplicate or unresolved message IDs.
Technical References
- SIMATIC PCS 7 Advanced Process Library (APL) Function Manual - MonDiL
- SIMATIC S7-400 System Software for S7-300/400 System and Standard Functions (SFB35)
- SIMATIC PCS 7 Engineering System Compendium Part A
Related Articles
- Programmatic Alarm Acknowledgment in PCS 7: AckLi vs Horn vs Global Script Architectures
- Resolving PCS 7 OS Compile Error (302:309) After Multiproject Retrieval and Station Renaming
- Troubleshooting Grayed-Out 'Changes Only' Option in SIMATIC PCS 7 WinCC OS Download
Related Tags
- MonDiL
- ALARM_8P
- Alarm Logging
- S7-400
- MsgEvId
- Delta Compile