Resolving Jump-Back Navigation and Faceplate Recall Errors for Custom APL Faceplates in SIMATIC PCS 7 WinCC

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

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:

  1. 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).
  2. 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.
  3. Stack Return Evaluation: When the operator clicks 'Back', the jump-back routine evaluates the parent's .#blocktype tag rather than remembering the customized screen name. Finding MotL, 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:

  1. 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.pdl and @pg_MotL_view.pdl from OS/GraCS into your project directory and modify them locally. In PCS 7 WinCC, local project files take precedence over system template libraries.
  2. Custom Block Icon Variant via type Parameter: In @@PCS7TypicalsAPLV8.pdl (or APLV9), 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.
  3. 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 BlockType property 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:

  1. Inspect @OpenFaceplate.pdl: In Graphics Designer, open the faceplate header picture. Locate the C-script attached to the 'Return' / 'Jump Back' navigation button (typically inside APL_Navigate or APL_Back).
  2. 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);
  1. 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:

Customization StrategyNavigation Stack IntegrityUpgradability During PCS 7 MigrationsEngineering EffortLocal File Override (Same Name in GraCS)100% Intact (Standard jump-back works seamlessly)High Risk: Updates may overwrite modified PDLsLow (Direct edits to PDL)Block Icon Variant (@MotL/2)100% Intact (Standard faceplate retained)Safe: Typicals file preserved via project copyMinimal (Icon edits only)Renamed Custom PDL with C-Script AliasIntact if script routing is maintainedModerate: Custom C-scripts must be reconciledHigh (Requires C-script edits)Renaming Underlying SCL/FBBreaks Jump-Back (Unless FB header renamed)Dangerous: Violates APL library consistencySevere (Loses Siemens support)

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

Related Articles

Related Tags

  • APL
  • Faceplates
  • WinCC Graphics
  • C-Script
  • HMI Navigation
6 respuestas