Positioning APL and Classic Faceplates Adjacent to Calling Block Icons in SIMATIC PCS 7

Positioning APL and Classic Faceplates Adjacent to Calling Block Icons in SIMATIC PCS 7

In SIMATIC PCS 7, faceplates open in the upper-left corner of the monitor by default. To position an APL faceplate adjacent to the calling block icon, set the block icon property 'FaceplateDefaultPos' to NO, and configure 'FaceplatePosLeft' and 'FaceplatePosTop' to match the block icon coordinates plus its width. For legacy or migrated PCS 7 v6 block icons using SSMOpenFacePlate, modify the underlying C-action to call SSMRTOpenFaceplate with the block icon's dynamic Left and Top properties while setting the default position boolean flag to FALSE.

Table of Contents

Faceplate Positioning Architecture in SIMATIC PCS 7

In complex process control rooms, minimizing operator mouse travel is a primary ergonomic goal. By default, the SIMATIC PCS 7 Split Screen Manager (SSM) opens operator faceplates at fixed coordinates in the top-left area of the active screen segment. When an operator clicks a motor or valve block icon in the lower-right quadrant, they must move the cursor across multiple widescreen monitors to reach the command buttons.

To open the faceplate immediately next to or directly over the clicked icon, the graphic system provides two mechanisms depending on the block icon library generation:
* APL Block Icons (APL_OpenFaceplate): Feature built-in exposed coordinate properties on the customized object container.
* Classic / Migrated Block Icons (SSMOpenFacePlate): Rely on legacy C-actions that invoke the core Split Screen Manager API function SSMRTOpenFaceplate.

Configuring Dynamic Coordinates in Modern APL Block Icons

Modern APL customized block icons include dedicated attributes under the Miscellaneous property group:

  1. Open the process picture in WinCC Graphics Designer.
  2. Select the APL block icon, open Object Properties, and select Miscellaneous.
  3. Configure the positioning attributes:
    * FaceplateDefaultPos (or defaultPos): Change static value from YES to NO.
    * FaceplatePosLeft (or leftPos): Right-click the dynamic lightbulb, select C-Action, and enter:
    c long lLeft = GetPropWord(lpszPictureName, lpszObjectName, "Left"); long lWidth = GetPropWord(lpszPictureName, lpszObjectName, "Width"); return (lLeft + lWidth + 10); // Opens 10 pixels to the right
    * FaceplatePosTop (or topPos): Assign a dynamic C-Action:
    c return GetPropWord(lpszPictureName, lpszObjectName, "Top");
  4. Save the picture. When clicked in runtime, APL_OpenFaceplate reads these attributes and positions the top-level faceplate window directly adjacent to the icon.

Modifying Legacy SSMOpenFacePlate and SSMRTOpenFaceplate Scripts

For legacy block icons migrated from PCS 7 v6/v7 that lack exposed positioning attributes, modify the C-script attached to the icon's mouse click event:

// Modified legacy call to open faceplate over block icon
char szReturnPath[260];
CMN_ERROR Err;

SSMRTOpenFaceplate(
    SSMGetScreen(lpszPictureName),                         // Screen handle
    szPictureControlField,                                // Control field
    szReturnPath,                                         // Output path
    sizeof(szReturnPath),                                 // Buffer size
    dwStyle,                                              // Window style
    GetPropWord(lpszPictureName, lpszObjectName, "Left"), // Left coordinate
    GetPropWord(lpszPictureName, lpszObjectName, "Top"),  // Top coordinate
    FALSE,                                                // FALSE = do not use default pos
    szNewTagname,                                         // Technological tag
    szFullSymbolPath,                                     // Symbol path
    &Err                                                  // Error structure
);

Listing 1: Modified SSMRTOpenFaceplate invocation passing icon coordinates.

Handling Multi-Monitor Layouts and Window Clipping Boundaries

When positioning faceplates dynamically, engineers must prevent window clipping:

Screen ScenarioPotential Failure ModeMitigating C-Script LogicRight Edge PlacementFaceplate spawns partially off-screen beyond monitor boundary.Check (lLeft + lWidth + FaceplateWidth > MonitorWidth); if true, spawn to the left of the icon.Bottom Edge PlacementBottom command buttons clipped by the Windows taskbar.Check (lTop + FaceplateHeight > MonitorHeight); if true, offset top coordinate upwards.Multi-VGA MonitorsFaceplate crosses monitor split boundary in multi-head setups.Query active screen segment via SSMGetScreen to bound coordinates to active monitor.

Table 1: Window boundary conditions and coordinate clamping rules.

Verification

To confirm dynamic faceplate positioning:

  1. Launch WinCC Runtime on an operator station.
  2. Click a block icon positioned in the center of the screen: confirm that the faceplate opens immediately adjacent to the icon.
  3. Click a block icon positioned near the far right edge of the screen: confirm that the faceplate clamps within monitor boundaries without clipping command buttons.
  4. Open apdiag.exe and monitor output: confirm that no script errors or coordinate out-of-range warnings appear during faceplate instantiation.

Limitations and Operational Precautions

  • Modifying system script templates (SSMOpenFacePlate.fct) directly in the global Siemens library folder will affect all projects on that computer; always save modified scripts in the project's local Library directory.
  • If automatic block icon generation (Create/Update Block Icons) is executed on the OS, default template values in @PCS7Typicals.PDL will overwrite individual picture instances unless configured inside the typicals catalog.
  • Spawning faceplates directly on top of block icons conceals dynamic status indicators; offset coordinates by the block icon width to keep the icon visible.

Engineer FAQ

Can I configure all block icons to open adjacent by default in @PCS7Typicals?

Yes. Open @PCS7Typicals.PDL, select all customized block icon templates, set FaceplateDefaultPos = NO, and configure the dynamic positioning formulas. Future OS compilations will replicate this behavior plant-wide.

What happens if FaceplatePosLeft exceeds the resolution of the screen?

WinCC Split Screen Manager automatically detects off-screen coordinates and relocates the window to the nearest visible monitor quadrant to ensure accessibility.

Can operators still move the faceplate after it opens adjacent to the icon?

Yes. Faceplates remain standard movable WinCC picture windows that operators can drag, pin, or close as desired.

Technical References

Related Articles

Related Tags

  • Faceplate Positioning
  • APL_OpenFaceplate
  • SSMOpenFacePlate
  • Block Icons
  • Graphics Designer
  • Ergonomics
  • PCS 7
6 respuestas