Resolving Jump-Back Navigation and Faceplate Recall Errors for Custom APL Faceplates in SIMATIC PCS 7 WinCC
In SIMATIC PCS 7 Advanced Process Library (APL) WinCC runtime, faceplate navigation history and jump-back behavior ('Return to previous view') are controlled by the internal WinCC tag .#blocktype generated during OS compilation and evaluated by the standard C-script @OpenFaceplate. When a customized faceplate is cloned and renamed without updating the underlying block type mapping, jumping to an auxiliary faceplate and clicking the return button causes WinCC to read the original function block name from .#blocktype (derived from the FB header in CFC), erroneously reopening the standard APL faceplate. To resolve this, engineers must configure custom faceplate views via @pg_<CustomType>_view.pdl naming conventions and override the type-resolution C-script or implement block type aliases in the faceplate configuration files.
Table of Contents
- Mechanics of Faceplate Calling and Jump-Back Navigation in APL
- Root Cause Analysis of the
.#blocktypeRecall Anomaly - Correct Workflow for Customizing APL Faceplates and Block Icons
- Script Modification and Faceplate View Registration
- Comparison of Faceplate Customization Techniques
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Mechanics of Faceplate Calling and Jump-Back Navigation in APL
The SIMATIC PCS 7 APL runtime utilizes a sophisticated, centralized faceplate architecture managed by system PDL pictures such as @OpenFaceplate.pdl, @pg_<Type>_standard.pdl, and @pg_<Type>_view.pdl. When an operator clicks a block icon (e.g., MotL or VlvL), the event triggers a standard C-action (PCS7_OpenInputFaceplate or OpenFaceplate). This action reads the block instance tag name and dynamically assembles the faceplate container.
APL supports multi-level navigation: an operator can open a primary motor faceplate, click a button to inspect an interlock block (Intlk02) or an associated motor drive (SimoCode), and subsequently click the 'Back' / 'Return' arrow in the faceplate header. The faceplate manager maintains a navigation stack in memory, storing the tag prefix and the block type of each visited faceplate to permit instant recall.
Root Cause Analysis of the .#blocktype Recall Anomaly
When an automation engineer creates a customized faceplate—such as altering corporate color palettes, adding specialized animation scripts, or modifying button layouts—they typically rename the picture files (e.g., @pg_CustomMotL_standard.pdl) to prevent their changes from being overwritten during future PCS 7 software updates. However, this creates a desynchronization during jump-back navigation:
- OS Compiler Tag Generation: During OS compilation, the AS-OS engineering tool inspects the CFC instance and generates an internal structure tag:
<TagPrefix>.#blocktype. The string value inside this tag is hard-coded to the official Function Block name defined in the AS (e.g.,FB1850/MotL). - Know-How Protection: Because standard APL blocks are know-how protected, the engineer cannot simply rename the FB header in the controller without losing official Siemens library support.
- Stack Return Evaluation: When the operator clicks 'Back', the jump-back routine evaluates the parent's
.#blocktypetag rather than remembering the customized screen name. FindingMotL, the navigation manager calls@pg_MotL_standard.pdl(the standard Siemens screen) instead of@pg_CustomMotL_standard.pdl.
Correct Workflow for Customizing APL Faceplates and Block Icons
To implement customized faceplate aesthetics and animations without breaking navigation history, follow the standard Siemens recommended approach:
- Retain Standard File Names via Local Project Folder: If the modification only affects appearance and behavior for the entire plant, do not rename the PDL files. Copy
@pg_MotL_standard.pdland@pg_MotL_view.pdlfromOS/GraCSinto your project directory and modify them locally. In PCS 7 WinCC, local project files take precedence over system template libraries. - Custom Block Icon Variant via
typeParameter: In@@PCS7TypicalsAPLV8.pdl(orAPLV9), create a duplicate of the block icon with a unique variant index (e.g.,type = @MotL/2). This changes the visual icon on process screens while keeping the native block type mapping intact. - Custom Block Type Registration in CFC: If a distinct faceplate is strictly required for only specific instances, use an APL block type extension wrapper or register the custom faceplate name in the
BlockTypeproperty of the block icon.
Script Modification and Faceplate View Registration
If customized and standard faceplates must coexist for the same underlying FB type, modify the faceplate calling script logic:
- Inspect
@OpenFaceplate.pdl: In Graphics Designer, open the faceplate header picture. Locate the C-script attached to the 'Return' / 'Jump Back' navigation button (typically insideAPL_NavigateorAPL_Back). - Implement Type Alias Lookup: Insert a string conditional check in the C-action before calling
@OpenFaceplate:
char szTagPrefix[128];
char szBlockType[64];
// Retrieve the tag prefix of the previous faceplate
GetPropChar(lpszPictureName, lpszObjectName, "TagPrefix", szTagPrefix);
GetTagChar(strcat(szTagPrefix, ".#blocktype"), szBlockType);
// Check if this instance requires the custom faceplate alias
if (strcmp(szBlockType, "MotL") == 0 && IsCustomFaceplateInstance(szTagPrefix))
{
strcpy(szBlockType, "CustomMotL");
}
OpenFaceplate(szTagPrefix, szBlockType);
- Define Instance Filter: Implement
IsCustomFaceplateInstance()by reading an internal user attribute or checking an auxiliary tag attribute to route custom instances to the custom PDL.
Comparison of Faceplate Customization Techniques
The following table compares different strategies for modifying APL faceplates and their impacts on runtime navigation and maintenance:
GraCS)@MotL/2)Verification
Verify proper faceplate jump-back behavior in WinCC Runtime:
1. In WinCC Runtime, click the custom block icon on the process screen; confirm that @pg_CustomMotL_standard.pdl opens with custom styling and animations.
2. From the custom faceplate, click the Interlock button (e.g., to open an Intlk02 faceplate); confirm that the interlock faceplate opens and the navigation stack updates.
3. Click the 'Return' / 'Jump Back' arrow in the interlock faceplate header; confirm that WinCC returns to @pg_CustomMotL_standard.pdl rather than opening the default @pg_MotL_standard.pdl.
4. Verify that standard (non-customized) motor block icons across other process graphics continue to open the default APL faceplate without regression.
Limitations and Operational Precautions
Never alter files directly in the global Siemens installation directory (<Path>\Siemens\WinCC\aplib). Always copy system PDL files or scripts into the local project's GraCS or Library folder before editing. Modifying standard navigation scripts (@OpenFaceplate.pdl) affects all faceplates across the entire project; test navigation thoroughly across all analog, motor, and interlock faceplates in a simulation environment before rolling out to production runtime servers.
Engineer FAQ
Where does the WinCC tag .#blocktype come from?
It is automatically created by the OS Compiler during compilation. The compiler creates <TagPrefix>.#blocktype as an internal 8-bit text tag containing the exact name of the Function Block (e.g., MotL, VlvAnL) defined in the AS CFC chart.
Why shouldn't I just rename the SCL function block to match my custom faceplate?
APL library blocks are proprietary and know-how protected. Modifying or renaming standard FB headers breaks APL driver generation, disables automated delta compilation, and voids Siemens technical support entitlements.
Can I preserve custom faceplate modifications across PCS 7 version upgrades?
To preserve modifications, store all custom PDLs and scripts in dedicated project subfolders and maintain a detailed changelog. When upgrading PCS 7, compare your customized PDL with the newly released Siemens PDL using WinCC Cross-Reference or screen comparison tools to merge newly introduced system features.
Technical References
- SIMATIC Process Control System PCS 7 Advanced Process Library (APL) Manual
- SIMATIC Process Control System PCS 7 OS Process Control System Manual
- WinCC V7 Scripting: VBS, ANSI-C, VBA Manual
Related Articles
- Configuring Block Icon Preserved Properties and @@PCS7Typicals.cfg in SIMATIC PCS 7 APL
- Configuring Single-Speed Motor Block MotS (FB1910) and Resolving Motor Feedback Errors in SIMATIC PCS 7 APL
- Resolving Automatic Block Icon Tag Name Generation Failures in SIMATIC PCS 7 OS Compilation
Related Tags
- APL
- Faceplates
- WinCC Graphics
- C-Script
- HMI Navigation