How to Trigger Global Popup Windows Across All WinCC OS Clients in SIMATIC PCS 7
To display a global popup window on all connected WinCC OS Clients based on a server-side tag change, execute a client-side Global Action triggered by the monitored tag rather than attempting to launch GUI windows from a server script. In PCS 7 distributed architecture, C and VBS scripts execute locally on the computer hosting the script runtime; server scripts have no graphical window context on client stations. By leveraging pre-allocated picture windows (@TOP01 to @TOP20) inside the standard client picture @1001.pdl via the standard C function SSMOpenTopField, popups appear reliably on all client screens.
Table of Contents
- Client-Server Script Execution Architecture
- The Split Screen Manager @1001.pdl TopField Infrastructure
- Step-by-Step Implementation Procedure
- Comparison of Popup Triggering Techniques
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Client-Server Script Execution Architecture
In a distributed SIMATIC PCS 7 control system comprising an OS Server (or redundant server pair) and multiple OS Clients, engineers frequently need to display a high-priority operational popup window (such as an emergency evacuation notice, site-wide permit alert, or safety interlock confirmation) across every operator monitor simultaneously.
A common pitfall is creating a Global Script on the OS Server that monitors an internal server tag and calls a GUI display function (e.g., SSMOpenTopField or SetVisible). While the internal tag updates properly and the script executes on the server, no popup appears on the client monitors.
Why Server Scripts Cannot Display Client Popups
- Local Script Context: WinCC C-Script (
Pass-CS) and VBScript engines run locally within the operating system process space of the computer executing them. A script running insideCCProjectMgr.exeon the OS Server executes in the server's session; it has zero access to the desktop GUI threads of remote client computers. - Client Workspace Separation: Client workstations run their own local WinCC runtime instances displaying process pictures loaded from the server's published project. Therefore, GUI manipulation commands must execute within the client's local script engine.
The Split Screen Manager @1001.pdl TopField Infrastructure
PCS 7 provides an integrated mechanism for managing operator popups without modifying base system templates or individual process pictures.
Architecture of @1001.pdl
When OS Project Editor runs, it creates the fundamental runtime screen container: @1001.pdl (or @1001_1920.pdl depending on resolution). Within @1001.pdl, the system embeds 20 pre-configured, invisible Picture Windows named:
* @TOP01 through @TOP20
These picture windows are reserved by the PCS 7 Split Screen Manager (SSM) for dynamic system dialogs, operator input messages, and custom top-level popups.
The SSMOpenTopField Function
The PCS 7 standard C-library provides the function:
BOOL SSMOpenTopField(int nIndex, char* lpszPicture);
nIndex: The target TopField window index (typically 11 through 20 are available for custom user dialogs, while 1 through 10 are used by standard faceplates and alarm dialogs).lpszPicture: The name of the picture file to display (e.g.,ServerName::AlertPopup.pdlorAlertPopup.pdl).
Because these windows reside inside @1001.pdl, opening them displays the popup on top of any active process picture currently viewed by the operator without requiring picture-specific edits.
Step-by-Step Implementation Procedure
Follow this procedure to configure server-triggered client popups cleanly:
Step 1: Create the Server-Side Trigger Tag
- In WinCC Explorer on the OS Server (or ES), open Tag Management.
- Create an Internal Tag (or AS binary tag) named
Trigger_GlobalPopupwith data type Binary Tag. - Ensure the tag is configured as Project-wide update (or computer-local if testing on a single node).
- If using a redundant OS Server, verify the tag is created in the synchronized tag database.
Step 2: Create the Popup Process Picture
- In Graphics Designer, create a new picture named
GlobalNotice.pdl(e.g., 500x300 pixels). - Add the required alert text, acknowledgment buttons, or dynamic status indicators.
- Configure an 'Acknowledge' button with a script to close the window:
c // C-Script on Close Button SetVisible("@1001", "@TOP11", FALSE); - Save
GlobalNotice.pdlinto the server'sGraCSdirectory. - In client-server configurations, reference the picture using the server package prefix (e.g.,
OS_SERVER_NAME::GlobalNotice.pdl) or copyGlobalNotice.pdlto the client's localGraCSdirectory.
Step 3: Implement the Client-Side Global Action
- Open the WinCC project on the OS Client (or in the Client project template on ES).
- Open Global Script -> C-Editor (or VBS-Editor).
- Create a new Global Action with a Tag Trigger attached to
OS_SERVER_NAME::Trigger_GlobalPopup:
* Trigger Cycle: Upon Change. - Enter the following execution script:
c #include "apdefap.h" void OnPropertyChanged(char* lpszPropertyName) { BOOL bState = GetTagBit("OS_SERVER_NAME::Trigger_GlobalPopup"); if (bState) { // Open popup in pre-allocated TopField window 11 SSMOpenTopField(11, "OS_SERVER_NAME::GlobalNotice.pdl"); } else { // Close popup when tag resets SetVisible("@1001", "@TOP11", FALSE); } } - Save the action as
ClientPopupTrigger.pas. - In WinCC Explorer -> Computer Properties -> Startup tab, ensure that Global Script Runtime is checked on the OS Client.
Comparison of Popup Triggering Techniques
The following table compares different architectural methods for displaying global alerts across WinCC clients:
@1001.pdl TopField (SSMOpenTopField)@screen.pdl Picture WindowMessageBox in C ScriptUsing the built-in TopField mechanism preserves upgradeability while ensuring consistent multi-monitor behavior.
Verification
To verify that the popup triggers across all client stations:
1. Open WinCC Runtime on two or more OS Clients.
2. Navigate to different process screens on each client (e.g., Area 1 overview on Client 1, Trends on Client 2).
3. From the Engineering Station or OS Server, set Trigger_GlobalPopup to 1 using WinCC Tag Simulator or a CFC test chart.
4. Verify that GlobalNotice.pdl appears simultaneously on all client monitors centered within TopField 11.
5. Click the close button or reset Trigger_GlobalPopup to 0, and confirm the popup closes immediately on all stations.
Limitations and Operational Precautions
- Never use Windows
MessageBoxorMsgBox: Calling blocking system message boxes in automatic scripts freezes the single-threaded WinCC script execution engine until an operator clicks OK. On unattended stations, this halts all background script execution. - Server Prefix Requirement: Always qualify the picture and tag names with the server package prefix (
SERVER::Picture.pdl) on clients unless files are explicitly duplicated locally. - OS Project Editor Preservation: Never edit
@1001.pdldirectly to add custom picture windows; use the existing@TOP01to@TOP20objects to prevent changes from being erased during project editor regeneration. - TopField indexes 1 to 10 are frequently utilized by standard APL faceplates; use indexes 11 to 20 for custom engineering alerts to prevent display collisions.
Engineer FAQ
Can I trigger a sound alert along with the popup on all clients?
Yes. In the client-side Global Action, call the WinCC multimedia function PlaySound("C:\\Sound\\Alarm.wav", NULL, 1) concurrently with SSMOpenTopField.
What happens if an operator navigates to another picture while the popup is open?
Because TopField windows reside in @1001.pdl, the popup remains visible floating above the workspace even when the operator selects different process pictures in the picture tree.
How do I automatically reset the trigger tag after displaying the popup?
Do not reset the tag inside the client script, or multiple clients will race to clear it. Instead, use a pulse timer block (TIMER_P) in the AS or a delayed server script to reset the trigger tag after a fixed duration.
Technical References
- SIMATIC PCS 7 Operator Station Split Screen Manager Reference Manual
- SIMATIC WinCC V7 Scripting: C and VBS Reference Manual
- Siemens Industry Online Support: Using SSMOpenTopField in PCS 7 Environments
Related Articles
- How to Open APL Technological Faceplates from Standard WinCC Screen Buttons Using APL Scripts
- How to Configure a WinCC Reference OS Single Station Sharing the Same Plant Hierarchy in PCS 7
- How to Prevent Unwanted Scroll Bars and Fix Picture Dimension Mismatches in PCS 7 WinCC Runtime
Related Tags
- WinCC_Scripting
- OS_Client
- SSMOpenTopField
- Split_Screen_Manager
- C_Script