Overview
Siemens PCS 7 Advanced Process Library (APL) faceplates are operator-controlled display objects rendered on the WinCC Operator Station (OS). Multi-instance faceplates allow a single composite operator display to reference several Operator Control & Monitoring (OCM) blocks at once, so that one faceplate pop-up aggregates the parameters and limits of multiple field-related blocks (for example, a coupled motor and its associated interlock, permissive, and feedback blocks).
The architecture differs in two important ways from custom WinCC graphics:
- Block Icons are strictly single-instance. A given block icon can only be associated with a single block; there is no concept of multi-instance block icons in the APL.
- Faceplates can be multi-instance provided the OCM blocks all reside on the same CFC chart and share a common naming root with an underscore-prefixed suffix for the secondary blocks.
This article documents the field-proven implementation rules from the APL Style Guide and the PCS 7 Program Instructions for Blocks manual, and provides the procedural steps, parameter syntax, and verification checks needed to wire a multi-instance faceplate that connects cleanly to the underlying CFC blocks.
Prerequisites
Before attempting a multi-instance faceplate build, the engineering station (ES) and operator station (OS) must be configured to a known-good baseline.
| Item | Requirement | Notes |
|---|---|---|
| PCS 7 version | V8.0 SP1 or higher; V9.0 / V9.1 recommended for current APL revision | Earlier V7.x SP versions use a slightly different OCM block icon interface |
| APL revision | APL Library installed and compiled into the master data library | Check via SIMATIC Manager > Options > APL Library Info |
| WinCC Explorer | OS project with Graphics Designer and Global Script runtime active | Required for faceplate display |
| CFC chart structure | All participating OCM blocks placed in the same CFC | Cross-chart faceplate references will fail at OS compile |
| Block type selection | Use APL blocks (MotL, VlvL, AnL, DigMon, etc.) or chart-in-chart instances that expose standard OCM I/Os | Driver blocks without OCM I/Os cannot be faceplate-tagged |
| Operator authorizations | Process controlling area assigned in the OS user administration | Authorizations affect which faceplate commands are visible |
Block Icons vs. Faceplates — Architectural Boundary
Understanding the boundary between block icons and faceplates is the single most common source of confusion in multi-instance work.
Block Icons — Single-Instance Only
When a block icon is generated, three paths exist that each write the tag-prefix relationship into the icon's tag connections:
- Automatic generation during an OS compile via the Create/Update Block Icons option.
- Manual execution of the Graphics Designer Dynamic Wizard with a tag entered into the wizard dialog.
- Manual placement of a block icon from the APL WinCC library where the wizard was run on a connected tag.
Each of these paths tags the icon with the associated block instance name only. When the dynamic wizard encounters a tag, it strips every prefix in front of the structure delimiter dot and replaces the resulting prefix with the block tagname. Concretely, if the user supplies the string Plant.Unit1.Motor1.Input1 to the wizard and the block tagname is Plant.Unit1.Motor1, the icon's connection writes Plant.Unit1.Motor1.Input1 — only the dot suffix is preserved.
If the wizard is launched with no tag selected or entered, it strips the prefix away from everything in front of the structure delimiter dot. This is why a wizard-driven block icon cannot simultaneously resolve multiple block instances.
Faceplates — Multi-Instance Capable
Faceplates do not enforce the single-instance rule because their connections are not bound to a single block icon prefix. Instead, every variable connection inside a faceplate is a relative path that the OS runtime resolves against the instance prefix passed when the faceplate is opened. Provided all referenced OCM blocks are visible in the same CFC and follow the underscore-suffix naming convention, the runtime can resolve them at faceplate open time.
Naming Convention for Multi-Instance Faceplates
The APL Style Guide defines the naming rule that makes multi-instance resolution work: the secondary OCM block instance names must begin with the base block instance name and carry a unique underscore-suffixed identifier.
Base Block Name
The base block is the OCM block that owns the standard faceplate parameters. Its instance name is what the user enters as the tag root when the block icon is wired (for example Motor on the CFC chart).
Secondary Block Names
Each additional OCM block on the same CFC that the faceplate should aggregate must follow the rule:
<BaseBlockName>_<UniqueSuffix>
For example, given a base MotL block instance named Motor, secondary blocks might be:
| Function | Block type | Instance name |
|---|---|---|
| Base motor control | MotL | Motor |
| Motor permissive | Intlk08 | Motor_Perm |
| Local field feedback | DigMon | Motor_Fbk |
| Maintenance override | MotSpdCL | Motor_Ovrd |
Motor_Fbk on the same CFC will compile but the OS will resolve them ambiguously. Validate with the CFC compile report before triggering an OS compile.Parameter Tagging Syntax
Inside the multi-instance faceplate, every variable connection uses a relative path that the OS runtime resolves against the base block's instance prefix.
Base Block Parameters
Parameters sourced from the base block are tagged with the standard leading-dot notation:
.Parameter
Examples:
-
.SP_EXT— external setpoint on the MotL block -
.PV— process value -
.LMN— manipulated value / output -
.MSG_LOCK— message lock state -
.MO_PV— motor process value for the standard faceplate
Secondary Block Parameters
Parameters sourced from a secondary OCM block use the suffix and underscore followed by a dot and the parameter name:
_<Suffix>.Parameter
Using the example suffix Widget referenced in the field report:
-
_Widget.PV— process value from secondary blockMotor_Widget -
_Widget.SP_INT— internal setpoint from secondary block -
_Perm.QCTL— permissive output fromMotor_Perm -
_Fbk.VAL— feedback value fromMotor_Fbk
The runtime resolution order is:
- Take the base block's full instance tagname (for example
Plant.Unit1.Motor). - For each connection, append the leading dot or underscore suffix segment plus the parameter name.
- Resolve to
Plant.Unit1.Motor.PVfor a base parameter orPlant.Unit1.Motor_Widget.PVfor a secondary parameter.
Step-by-Step Implementation
Follow this sequence to wire a working multi-instance faceplate.
1. Plan the CFC Chart Structure
- Open the target CFC chart in SIMATIC Manager / PCS 7 Engineering.
- Place the base OCM block (MotL, VlvL, AnL, DigMon, MotSpdCL, PIDConL, etc.) on the chart and assign its instance name (for example
Motor). - Place every secondary OCM block that the faceplate must reference on the same chart.
- Apply the underscore-suffix naming rule to each secondary block (for example
Motor_Perm,Motor_Fbk). - Wire the inter-block signals (permissives, interlocks, feedback) on the chart in the normal PCS 7 manner.
2. Compile the CFC and Resolve Warnings
- Run Charts > Compile on the CFC chart.
- Review the compile log for "Block instance name already exists" or "Duplicate suffix" warnings.
- Verify in the S7 Program that the instance DBs are generated with the correct hierarchical names (for example DB1003 =
Motor_Widget).
3. Trigger an OS Compile
- In SIMATIC Manager, open the OS and select OS > Compile OS.
- Enable the Create/Update Block Icons option.
- Confirm that the wizard reports
Motoras the base prefix and listsMotor_Perm,Motor_Fbkas related instances (the OS compile treats them as siblings of the base block). - Allow the OS compile to complete and check the OS compile log for any unresolved tag references.
4. Open or Create the Multi-Instance Faceplate
- Open WinCC Explorer and launch the Graphics Designer.
- Open the APL faceplate template that matches the base block type (for example the MotL faceplate
@MOTL_DEFAULT.PDLor its custom variant). - Duplicate the faceplate and rename it with the project naming convention (for example
Motor_Multi.PDL).
5. Wire Secondary Block Connections
- Identify the additional I/O fields, status indicators, or command buttons that should display data from secondary blocks.
- Open the property dialog for the target object (right-click > Properties > Output/Input).
- Replace the default tag (typically
.PV) with the suffixed form (for example_Widget.PV). - For each secondary block reference, confirm that the suffix exactly matches the secondary instance name (case-sensitive on most OS builds).
6. Configure the Faceplate Trigger
- On the process picture, the block icon calls the faceplate by passing the base block instance name as the tag prefix.
- If you have built a custom faceplate (not the standard APL one), open the block icon's Properties > Events > Mouse Click and configure the Open Faceplate action with the base instance name.
- Do not run the block-icon dynamic tagging wizard against the custom faceplate; configure the connections manually per the suffix syntax.
Verification
After wiring, run the following checks before declaring the faceplate operational.
| Check | Procedure | Expected result |
|---|---|---|
| Base block parameter resolution | Open the faceplate on the running OS, observe any .PV field |
Shows process value updating in real time |
| Secondary block parameter resolution | Force a value on a secondary block DB and observe _Widget.PV on the faceplate |
Updates within one OS picture cycle (~1 s default) |
| Suffix uniqueness | Export OS tag list, filter on Motor_
|
Each suffix appears exactly once |
| Wizard contamination | Grep the faceplate PDL XML for residual block prefixes | No entries such as Plant.Unit1.Motor_ hard-coded |
| Cross-chart references | WinCC Tag Simulator trace each secondary connection | No Tag not found diagnostics in WinCC Channel Diagnosis |
| Operator authorization | Log in as a user without the controlling area | Command buttons gray out, status values still display |
| Compile log | Re-run OS compile with verbose output | Zero unresolved tag warnings related to the faceplate |
Troubleshooting Matrix
| Symptom | Likely cause | Corrective action |
|---|---|---|
Secondary parameter shows #### or -- on OS |
Suffix does not match any secondary block instance name | Verify suffix spelling (case-sensitive) against the CFC chart; recompile OS |
| Faceplate opens but no parameters populate | Block icon wizard was run on a custom faceplate and replaced the prefix | Re-open the PDL, restore _<Suffix>. notation, do not re-run the wizard |
| Connection tag shows red X in Graphics Designer | Cross-chart reference — secondary block on a different CFC | Move secondary block to the same CFC as the base, or split into a separate faceplate per chart |
| OS compile reports duplicate instance | Two secondary blocks share the same suffix | Rename one suffix; rerun CFC and OS compile |
| Faceplate updates lag by several seconds | OS picture cycle set too long or secondary tags routed through slow OPC path | Reduce picture cycle to 1 s; verify S7 connection is on the default high-priority channel |
| Block icon double-displays secondary parameters | Wizard tagged a block icon against a multi-block object | Replace the custom object with a true faceplate and configure the open action with the base instance |
| Authority check fails intermittently | Area-of-operation assignment differs between base and secondary blocks | Open the OS user administration and confirm both blocks share the area ID |
| Faceplate compiles in ES but won't open in runtime | PDL not transferred to the OS server via OS Project Duplicator / downloading | Re-download the OS project; verify PDL timestamp on the OS server |
Differences from PCS 7 Standard Library (Pre-APL)
Engineers migrating from the classic PCS 7 Standard Library faceplates should note the following behavioral changes:
- The classic "Multi-Instance" checkbox that appears on standard library faceplates does not exist on APL faceplates; the multi-instance capability is instead achieved through the suffix naming rule.
- The classic block-icon single-instance rule was enforced at faceplate generation; in APL it is enforced at the wizard/compile stage, which means a misconfigured custom faceplate will not fail until runtime tag resolution.
- The classic
@-prefixed internal tag style is replaced by the leading-dot notation; mixing the two styles within one faceplate is unsupported.
Best Practices and Field Tips
- One faceplate per base block type. Avoid creating a new faceplate per asset instance. Define the multi-instance faceplate once and let the OS runtime resolve the suffix per call.
-
Suffix dictionary. Maintain a controlled vocabulary of suffixes (for example
_Perm,_Intlk,_Fbk,_Ovrd) to keep the faceplate logic predictable across the plant. - Limit suffix count. Empirical observation shows that more than five secondary blocks per faceplate degrades the operator's situational awareness. Group related OCM functions into auxiliary faceplates if the count grows.
-
Avoid overlapping suffixes. If
Motor_Widget1exists, do not also createMotor_Widget12— the underscore-delimited runtime parser may mis-parse trailing characters in some PCS 7 SP revisions. - Keep all OCM blocks on the same CFC. Cross-chart faceplate references fail at OS compile time and are not always surfaced with a clear diagnostic.
- Use the OS compile report. Always read the os_compile.log for "unresolved faceplate connections" warnings before commissioning a new faceplate.
- Lock the wizard. After manually wiring the suffix references, set the faceplate property BlockIconWizard to disabled so that a future wizard run does not strip your suffixes.
Edge Cases and Migration Considerations
Mixing APL and Classic Blocks
If the base block is a classic PCS 7 block (for example an older MOT_SPEED from the Standard Library) but a secondary block is APL, the faceplate suffix mechanism still works because the OS runtime resolves suffixes against the instance DB symbol regardless of the block's library origin. The reverse — APL base with classic secondary — is also valid but the parameter name must match the classic block's I/O naming.
Chart-in-Chart (CIC) Instances
When OCM blocks are encapsulated inside a chart-in-chart block type, the instance name visible at the OS layer becomes the chart instance name. Apply the suffix rule to the inner blocks only if the chart is being broken out, otherwise the chart-in-chart instance itself is the base.
Type-Based vs. Instance-Based Faceplates
APL faceplates are type-based: the same PDL serves every instance of a given block type. The multi-instance suffix mechanism is instance-based only at the parameter-connection level. Do not attempt to fork the faceplate per instance — the OS would treat each fork as a new type and you would lose the type-based memory and copy protection of the runtime.
Acceptance Checklist
Before signing off the multi-instance faceplate for production, confirm each item:
- All secondary OCM blocks reside on the same CFC as the base block.
- Every secondary block instance name follows the
<Base>_<Suffix>rule. - Every secondary suffix is unique within the chart.
- Every faceplate secondary connection uses the
_<Suffix>.Parametersyntax (no hard-coded prefixes). - No block-icon wizard has been run against a multi-instance custom faceplate.
- OS compile reports zero unresolved tag references for the faceplate.
- Operator authorization for the controlling area matches across all secondary blocks.
- Verification table checks all pass on the running OS.
Why does my block icon show only the base block's parameters?
Block icons in the APL are strictly single-instance. The Graphics Designer Dynamic Wizard strips every prefix in front of the structure delimiter dot and replaces it with the block tagname, so a single icon cannot resolve multiple block instances. Use a multi-instance faceplate with underscore-suffixed secondary blocks instead.
What is the correct parameter syntax for secondary blocks inside a multi-instance faceplate?
Use the leading-underscore form _<Suffix>.Parameter for secondary OCM blocks (for example _Widget.PV) and the leading-dot form .Parameter for the base block (for example .PV). The OS runtime resolves both against the base block's full instance tagname.
Why are my multi-instance faceplate connections failing at runtime when they compile cleanly?
The most common causes are secondary blocks placed on a different CFC than the base block, suffix names that do not match any instance exactly (the match is case-sensitive), or a block-icon wizard that was run against the custom faceplate and stripped the suffixes. Move all OCM blocks onto the same CFC, fix the suffix spelling, and disable the wizard before commissioning.
Can I combine an APL faceplate with a non-APL base block?
Yes. The suffix resolution mechanism is independent of the block library origin; the OS runtime resolves suffixes against the instance DB symbol. Confirm that the I/O parameter names on the non-APL base block match the leading-dot notation used by the faceplate, and that all secondary APL blocks follow the underscore-suffix rule.
How many secondary blocks can a single multi-instance faceplate aggregate?
The architecture imposes no hard limit, but operator usability degrades beyond about five secondary blocks. Keep suffix counts modest, maintain a controlled suffix vocabulary (for example _Perm, _Intlk, _Fbk), and split into auxiliary faceplates if the count grows.