PCS7 Measuring Point Browser: Adding Custom APL Blocks via XML

David Krause10 min read
HMI / SCADASiemensTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

The PCS 7 Measuring Point Browser is a WinCC faceplate tool that aggregates the runtime status of process tags (block states, modes, faults, and operator prompts) into a single tabular view. Out of the box, the browser is wired to a fixed set of standard Siemens PCS 7 Advanced Process Library (APL) block types. When a project uses project-specific APL-style blocks (custom faceplates following the 100% APL design rule) or relies on standard APL blocks that are not pre-mapped (for example Intlk2, Intlk8, or interlock composites), the browser will silently skip them.

This article documents the XML-based extension path for the Measuring Point Browser, located in the WinCC Options/SSM directory. The mechanism is the same path Siemens uses internally to ship PCS7_TagStates_APL.xml, and it can be extended with a user-defined XML file that registers additional block types and their status bits.

Scope: The XML-based extension applies to the WinCC side of PCS 7 (faceplate / status display). It does not modify the AS-side block FB source. Existing CFC/SFC logic and S7 program structure remain untouched.

Prerequisites

Item Requirement
PCS 7 version V8.0 SPx or later; the SSM XML schema is stable from V8.0 through V9.x. Verify with the installed Help menu About entry.
WinCC edition PCS 7 WinCC (not generic WinCC flexible / TIA WinCC). The Measuring Point Browser is shipped with the PCS 7 OS option set.
User rights Local administrator on the WinCC station when editing XML files under Program Files (x86).
Block style Custom block must be 100% APL style (use APL_Style = TRUE on the block icon) so the standard status bit conventions apply.
Block version APL library version must be the same revision on the ES and the OS to avoid bitmap/icon mismatches.
Backup Snapshot of %ProgramFiles(x86)%\SIEMENS\WinCC\Options\SSM before editing.

How the Measuring Point Browser Resolves Block Types

At OS runtime, the Measuring Point Browser enumerates the configured tag/measured-variable references and, for each one, attempts to read the block type and current status bits. The mapping from block type → displayable column states is driven entirely by XML files in the SSM folder:

  • PCS7_TagStates_APL.xml – the shipped Siemens definition covering all standard APL block types.
  • PCS7_TagStates_<Name>.xml – any number of additional files following the same schema. The suffix is user-chosen.

Each XML file is loaded in alphabetic order after the shipped APL file, and a block type is matched against the union of all <Types> entries. This is the public extension point and is the only supported way to add custom or supplementary block types.

File Location and Naming

The configuration files reside in the WinCC Options SSM directory:

C:\Program Files (x86)\SIEMENS\WinCC\Options\SSM

Inside that folder you will find:

  • PCS7_TagStates_APL.xml – shipped, do not overwrite.
  • PCS7_TagStates_<ProjectName>.xml – your custom file. Siemens documents that the suffix after PCS7_TagStates_ is freely selectable; choose a name that reflects the project or the block family (for example PCS7_TagStates_Plant42.xml).
Do not modify the shipped file. Hotfix and upgrade installations can replace PCS7_TagStates_APL.xml silently, which would erase user edits. Always layer your own file on top.

XML Schema – The Two Top-Level Elements

The schema has two top-level child elements. Both must be present even if one of them is empty.

<Columns> – Defining Displayable States

<Columns> defines the available status columns that the browser can render. A column corresponds to a state, not a specific block type. Typical column entries include Manual, Auto, Internal Setpoint, External Setpoint, Operator Prompt, Maintenance, etc.

<Columns>
  <Column Name="Manual"      ID="1"  Icon="@Manual.bmp" />
  <Column Name="Auto"        ID="2"  Icon="@Auto.bmp"   />
  <Column Name="InternalSP"  ID="3"  Icon="@IntSP.bmp"  />
  <Column Name="ExternalSP"  ID="4"  Icon="@ExtSP.bmp"  />
  <Column Name="Operator"    ID="5"  Icon="@OprReq.bmp" />
</Columns>

Each <Column> entry carries:

Attribute Meaning
Name Internal identifier referenced by <Types>.
ID Stable numeric identifier; should not be reused across files.
Icon Path relative to the SSM folder, prefixed with @ (WinCC bitmap convention).
Text (optional) Localized column heading; can be repeated per language ID.

<Types> – Mapping Block Type to Status Bits

<Types> binds a specific block type (FB type name) to the status bits that drive each column. The browser reads the relevant STATUS_... / MODES_... outputs of the block and lights the column when the bit is TRUE.

<Types>
  <Type FBType="MyCust_Pump" Library="MyLib">
    <Status Column="Manual"     Bit="MODE_MAN"   />
    <Status Column="Auto"       Bit="MODE_AUT"   />
    <Status Column="InternalSP" Bit="SP_INT"     />
    <Status Column="ExternalSP" Bit="SP_EXT"     />
    <Status Column="Operator"   Bit="MSG_REQ_OP" />
  </Type>
</Types>

Key attributes:

Attribute Meaning
FBType Symbolic name of the FB / block type as installed in the master data library.
Library Library name attribute; helps when the same FBType exists in multiple libraries.
Bit (Column scope) The status output of the block that controls the column. Must be a Boolean visible at the block icon interface (e.g. STATUS_MAN, STATUS_AUTO, MSG_LOCK).

Step-by-Step: Adding a Custom APL-Style Block

The procedure below adds a project-specific pump block (MyCust_Pump) to the Measuring Point Browser.

Step 1 – Verify the Block Is 100% APL Style

Open the block in the CFC editor. On the block icon properties confirm:

  • APL_Style = TRUE
  • Standard status outputs are wired: STATUS_MAN, STATUS_AUT, STATUS_OOS, SP_INT, SP_EXT, MSG_REQ_OP, MSG_ERR, MSG_LOCK.
  • Block version is consistent across master data library and project.

Step 2 – Create the Custom XML File

  1. Open Notepad (or any XML editor) as Administrator.
  2. Create a new file with UTF-8 encoding:
<?xml version="1.0" encoding="utf-8"?>
<!-- PCS7_TagStates_Plant42.xml : project extension for Plant 42 -->
<TagStates>
  <Columns>
    <Column Name="Manual"     ID="101" Icon="@Manual.bmp" />
    <Column Name="Auto"       ID="102" Icon="@Auto.bmp"   />
    <Column Name="OutOfService" ID="103" Icon="@OOS.bmp" />
    <Column Name="Operator"   ID="104" Icon="@OprReq.bmp" />
  </Columns>

  <Types>
    <Type FBType="MyCust_Pump" Library="MyLib">
      <Status Column="Manual"        Bit="STATUS_MAN"  />
      <Status Column="Auto"          Bit="STATUS_AUT"  />
      <Status Column="OutOfService"  Bit="STATUS_OOS"  />
      <Status Column="Operator"      Bit="MSG_REQ_OP"  />
    </Type>
  </Types>
</TagStates>
  1. Save the file as PCS7_TagStates_Plant42.xml (UTF-8, no BOM is preferred by WinCC) into:
C:\Program Files (x86)\SIEMENS\WinCC\Options\SSM\

Step 3 – Validate the XML

Open the file in Internet Explorer or Edge (XML view) to ensure it is well-formed. WinCC will not surface parse errors at load time – a malformed file is silently ignored, which is the most common cause of "my custom file doesn't seem to work" reports.

Step 4 – Restart WinCC Explorer and Runtime

Edit the XML in the OS server project as well as in any client project. The Measuring Point Browser loads the SSM files on project activation. After any change you must:

  1. Close the WinCC Explorer on the affected station.
  2. Close WinCC Runtime (stop the OS project).
  3. Reopen WinCC Explorer and re-activate the project.
Client vs Server. The SSM directory is read locally on each OS station. Editing the XML only on the server does not propagate to clients. The procedure must be repeated on every client station that runs the Measuring Point Browser. This is a frequent oversight in distributed OS architectures.

Step 5 – Verify in the Browser

  1. Open a WinCC picture containing the Measuring Point Browser faceplate.
  2. Select the user-defined block instance (for example P42/PUMP_001) in the browser tree.
  3. Confirm the configured columns light up in line with the live status bits of the AS block.

Step-by-Step: Adding Standard APL Blocks That Are Not Mapped by Default

Standard APL blocks such as Intlk2 / Intlk8 are shipped with the APL library but are not part of the Measuring Point Browser's default mapping. The mechanism is the same as for custom blocks: create a project-level XML that references the FB type and binds it to status bits.

  1. Identify the symbolic FB type name (open the block in CFC → right-click → Object properties → Block tab).
  2. Confirm which standard status outputs the interlock block exposes (e.g. BYPASS, BYPASSED, MSG_ACK, MSG_ERR).
  3. Create PCS7_TagStates_<Suffix>.xml as in the previous section, with a <Type FBType="Intlk2"> entry.
  4. Bind each <Status> row to a column that is meaningful for interlock display, e.g. Bypass or Operator Acknowledgement.
  5. Restart WinCC Explorer and Runtime on every OS station.

Reference: Common APL Block Types

FBType (symbolic name) Function Typical Status Bits to Map
Mot Motor (bi-directional) STATUS_MAN, STATUS_AUT, STATUS_OOS, MSG_ERR, MSG_REQ_OP
MotSpd Variable-speed drive STATUS_MAN, STATUS_AUT, SP_INT, SP_EXT, MSG_ERR
Vlv Valve (analog or digital) STATUS_MAN, STATUS_AUT, FB_OPEN, FB_CLOSE, MSG_ERR
Pid PID controller STATUS_MAN, STATUS_AUT, SP_INT, SP_EXT, MSG_ERR, MSG_REQ_OP
Intlk2 / Intlk8 2-input / 8-input interlock BYPASS, BYPASSED, MSG_ACK, MSG_ERR
AnIn / AnOu Analog I/O STATUS_MAN, MSG_ERR, QUAL_BAD
DiIn / DiOu Digital I/O STATUS_MAN, MSG_ERR, SIM_ON
Exact symbolic names and status bit names vary between APL library revisions (V8.0 vs V8.1 vs V9.0). Always open the block icon and confirm the actual output names before binding them in XML.

Troubleshooting Matrix

Symptom Likely Cause Corrective Action
Custom block is not listed in the browser XML placed on the OS server only; client has the original SSM folder Copy PCS7_TagStates_<Suffix>.xml to every client station and re-activate the project
Custom block listed but columns never light up Status bit names in the XML do not match the block icon outputs Open the block icon and copy the exact symbolic output names; case-sensitive
Browser opens with an empty list after editing Malformed XML – WinCC silently fails to load Validate the XML in a browser; check for unescaped & or unmatched tags
Icons display as red X placeholders Bitmap path is absolute or the @ prefix is missing Use @Filename.bmp and place the bitmap in the SSM folder, or use the path expected by WinCC picture compilation
Edits visible in test project but not in production XML was copied into the wrong OS project folder, or the project was re-compiled from the ES Place the XML under Program Files (x86)\SIEMENS\WinCC\Options\SSM – this path is independent of the OS project directory
Custom file reverts after PCS 7 hotfix Hotfix installer overwrote PCS7_TagStates_APL.xml Restore the custom file from backup; never edit the shipped file
No error, no result, no log UTF-8 BOM or non-ASCII characters in the XML header Save the file as plain UTF-8 (no BOM); remove any BOM bytes

Field-Proven Best Practices

  • One file per project suffix. Use a suffix that names the project or plant (Plant42, UnitA). Avoid generic names such as Custom; they collide when multiple integrators contribute to the same OS.
  • Version control the XML. Treat it as source code: store it in the project's revision control with the same discipline as CFC/SFC sources.
  • Document the bit mapping. For each <Status> row, add an XML comment naming the block output and its semantic meaning. Future maintenance will depend on it.
  • Re-validate after APL upgrades. When the project migrates to a new APL revision, the status output names can change. Re-open each <Type> and verify bit names are still valid.
  • Test on a single OS client first. Roll out the XML to one client, exercise the browser, and only then distribute to the rest of the fleet. This makes it trivial to bisect a regression.

Related Configuration Surfaces

The Measuring Point Browser is only one of several status-aggregation tools in PCS 7. Related extension points include:

  • Block icon configuration – @PCS7TypicalsAPLLib.pdl and per-project faceplate PDLs in the OS project.
  • SFC visualization – chart-based status displays that use their own XML set, located in ...\SFC subfolders.
  • Alarm logging – message classes and priorities configured in WinCC Explorer, independent of the SSM XML.

Keeping the SSM XML confined to the status mapping responsibility avoids accidental coupling with faceplate PDLs and message classes.

FAQ

Where is the Measuring Point Browser XML configuration stored?

Under C:\Program Files (x86)\SIEMENS\WinCC\Options\SSM. The shipped file is PCS7_TagStates_APL.xml; user extensions follow the pattern PCS7_TagStates_<Suffix>.xml.

Do I need to restart WinCC after editing the SSM XML?

Yes. Close both the WinCC Explorer and WinCC Runtime, then reopen and re-activate the OS project. The browser loads the SSM files on project activation and does not hot-reload.

Does editing the XML on the OS server propagate to clients?

No. The SSM folder is read locally on every WinCC station. Copy the custom XML to each client station and re-activate the client OS project.

Can a custom block be displayed without 100% APL style?

No. The Measuring Point Browser relies on the standard APL status outputs (e.g. STATUS_MAN, STATUS_AUT, MSG_ERR). Custom blocks must follow the APL interface contract or the bits cannot be bound.

Why does the custom XML appear to do nothing with no error message?

WinCC silently ignores malformed XML and any file it cannot parse. Validate the file in a web browser, save it as plain UTF-8 (no BOM), and confirm the FBType and Bit names match the actual block icon outputs exactly (case-sensitive).

Back to blog