Problem: Locating a Custom Block Icon Variant in PCS 7 WinCC
A standard PCS 7 operator picture references a block icon variant, for example OpDi01/100, that does not exist in any of the typicals files shipped with the project. The faceplate is still being rendered on the OS, but the engineer cannot trace it to a @PCS7Typicals*.pdl source. This typically happens when a third-party engineering house copy-pasted a custom block icon from another project and never delivered the supporting .pdl file with the library. The symptom on the OS side is often a faceplate that opens, but the underlying block icon graphic on the plant overview is missing, mismatched, or has a fallback shape from a lower-numbered variant such as OpDi01_01..OpDi01_04.
The root constraint is architectural: PCS 7 does not expose a "search for block icon" function in the WinCC Explorer. Resolution of a block icon is performed at OS compile time by reading the typified picture files in the OS project, in a deterministic order, and by taking the first graphic whose Type attribute matches the block instance. Understanding that mechanism is the only reliable way to recover a missing variant.
@PCS7Typicals*.pdl convention, but the block icon numbering scheme (OpDi01/100) is the CFC block icon suffix and is matched against the Type attribute of the underlying WinCC object inside the typified picture. Do not confuse the CFC block number (instance counter) with the WinCC type attribute.
How PCS 7 Resolves a CFC Block to a Block Icon
When the OS is compiled, the "Generate/Update Block Icons" step iterates the CFC chart and, for every block that carries a block icon, performs the following lookup:
- Read the block icon's
Typeattribute (e.g.,OpDi01_100). - Enumerate all
@PCS7Typicals*.pdlfiles in the OS project directory (default:\GraCS). - Sort the enumerated files in reverse alphabetical order.
- For each file, in that order, scan the placed objects for one whose
Typeproperty equals the requested block icon name. - Use the first match. All later matches are ignored.
This is why a higher-numbered typicals file (for example @PCS7TypicalsAPLV8_Customer.pdl) can override a base @PCS7TypicalsAPLV8.pdl: the customer file sorts after the base file in reverse alphabetical order, so the customer variant is found first.
| Priority | Filename pattern | Typical owner | Override behavior |
|---|---|---|---|
| 1 (last in alpha, first used) | @PCS7TypicalsZ_*.pdl |
Customer / project-specific | Highest priority; wins over Siemens and integrator files |
| 2 | @PCS7TypicalsY_*.pdl |
Integrator | Overrides Siemens-supplied files unless a Z file matches |
| 3 |
@PCS7TypicalsAPLV9.pdl / @PCS7TypicalsAPLV8.pdl
|
Siemens base library | Baseline; used when no integrator/customer file matches |
| 4 (first in alpha, last used) | @PCS7TypicalsA_*.pdl |
Siemens option packages | Lowest priority among named files |
The Reverse-Alphabetical Search Order Explained
Reverse-alphabetical ordering is a deliberate Siemens design choice so that the integrator or end-customer can layer their own faceplates on top of the Siemens defaults. The naming contract is:
- Use a leading prefix that sorts after
APLin ASCII order to override the Siemens APL defaults. - Examples that work:
@PCS7TypicalsX_Project.pdl,@PCS7TypicalsZ_PlantNorth.pdl,@PCS7Typicals_SiteSpecific.pdl(underscore sorts after letters in ASCII 95 vs 90). - Examples that do not override:
@PCS7TypicalsA_Customer.pdl(sorts before APLV8 in the typicals enumeration when file system collation is case-insensitive on Windows; this is a frequent cause of "my new faceplate is not being picked up" tickets).
When debugging a missing variant, always inspect the filename first, not the contents. A custom faceplate dropped into a file whose name sorts before the Siemens base will silently lose to the Siemens base during the reverse-alpha scan.
Standard PCS 7 Method: Chart Reference Data
Before touching the picture files, identify which CFC instance the OS is rendering. The OS compile log is the authoritative source.
- Open the CFC editor for the affected plant unit (S7 program → Charts).
- Menu Options → Chart Reference Data (also available from the SIMATIC Manager menu bar in older PCS 7 versions).
- In the Reference Data window, switch the view to Block Icons or Block ICONs by Type, depending on the PCS 7 service pack.
- Filter on the block type (e.g.,
CTRL_PID,MOT_SPEED, or your custom block). The result column Block Icon shows theTypestring the OS is asking for, e.g.,OpDi01_100. - Cross-reference the Chart column to find the S7 source chart; the Block column gives the instance number; the Picture column gives the OS process picture where the icon was placed.
Type attribute (the /100 portion of OpDi01/100). If the column is empty for the block instance, the block has no block icon configured at the CFC level, and the OS will fall back to the default standard faceplate.
Process Object View: Locating Block Icon Variants
The Process Object View (POV) is the second canonical search path. It indexes every block instance, its associated picture, and its block icon number.
- Open WinCC Explorer → Process Object View (or from the OS project editor, double-click Process Objects).
- In the filter row, type the block type, e.g.,
OpDi01(the type family; the numeric suffix is the variant). - Right-click the column header and enable Block Icon and Picture columns.
- Sort the result set by Block Icon. Any block instance whose Block Icon column shows
100(or another non-standard number) is a candidate for the missing variant. - The Hierarchy Path column reveals the unit → chart → instance; the Picture column reveals the OS process picture that contains the block icon graphic.
At this point you know what the OS is asking for and where it is rendered, but not where the graphic lives. That requires a direct inspection of the typified picture files.
Browsing the @PCS7Typicals*.pdl Library Files
Open each @PCS7Typicals*.pdl in the OS project's GraCS folder with the WinCC Graphics Designer. Each picture exposes an object list in the upper-right corner of the design surface. That list is the only built-in search facility for the contents of a .pdl.
- Open Graphics Designer.
- File → Open → navigate to
\<OS project>\GraCS→ filter on@PCS7Typicals*.pdl. - Open
@PCS7TypicalsAPLV8.pdl(orAPLV9for V9 projects). - Click the object list toggle (icon at the top-right of the drawing area, looks like a small table). The list shows every placed object with Name, Layer, and Type.
- Sort by Type and look for
OpDi01_100. If present, you have located the source file. If not, close and open the next file in reverse-alpha order.
If the object list is empty or the picture appears blank, the file may have been archived to \GraCS\Archive or moved to a master data library folder outside the OS project. Search the entire engineering station:
dir /s /b @PCS7Typicals*.pdl "%ProgramFiles%\Siemens\Automation\PCS7\"
dir /s /b @PCS7Typicals*.pdl "%USERPROFILE%\Documents\Siemens\"
On a clean PCS 7 V9.0 engineering station, expect to find between 6 and 14 such files, including @PCS7TypicalsAPLV9.pdl, @PCS7TypicalsAPLV8.pdl, @PCS7TypicalsAPL_PCS7V9.pdl, and any project-specific @PCS7TypicalsZ_*.pdl files.
Identifying a Copy-Pasted Block Icon
If the search across every @PCS7Typicals*.pdl comes up empty, the most likely cause is that the original integrator copy-pasted the block icon graphic directly into a process picture (for example Plant_Unit_Overview.pdl) and connected it to the CFC block via the Dynamic Wizard. The graphic is then a local object inside the picture, not a typified object inside a typicals file. Symptoms:
- The block icon renders correctly in the process picture.
- It does not appear in any
@PCS7Typicals*.pdlobject list. - Editing the CFC block's block icon property and re-running Generate/Update Block Icons does not modify the on-screen graphic (because the OS re-runs the reverse-alpha scan, finds nothing, and the existing local object is left untouched).
- The block icon property in the CFC chart references a
Typestring that has no matching object in any typified file (e.g.,OpDi01_100with noOpDi01_100defined anywhere).
To confirm, open the process picture that contains the icon (the Picture column from the Process Object View step) and inspect its object list. Look for an object whose Type is OpDi01_100 and whose name begins with the CFC instance name. If you find it, you have a copy-pasted faceplate.
Recovery Procedure: Recreating the Missing Variant
Once confirmed, choose one of three recovery paths based on the long-term library strategy.
Option A: Promote the pasted icon to a typified file (recommended)
- Open the process picture that contains the pasted icon.
- Cut the icon object (Ctrl+X) and any associated VB / C script actions on the object.
- Open (or create) a project-specific typified file named
@PCS7TypicalsZ_<PlantName>.pdlin\GraCS. - Paste the icon into the new file. Place it on the standard Siemens positioning grid (default origin 0,0).
- Set the object's
Typeproperty toOpDi01_100via the object's properties dialog (right-click → Properties → Miscellaneous → Type). - Save and close.
- Delete the original pasted object from the process picture (otherwise the local copy continues to render and will mask the typified version).
- Recompile the OS (Generate/Update Block Icons → full regeneration).
Option B: Bind to an existing standard variant
- Decide which standard variant the icon should map to (typically
OpDi01_01for a standard digital operator). - Open the CFC chart, select the block, and open its Object Properties → Block Icon dialog.
- Change the block icon
TypefromOpDi01_100to the chosen standard variant. - Apply, save, and recompile the OS.
This option loses any custom graphic but is the lowest-risk path and is the correct choice if the variant number 100 was an arbitrary integrator convention with no functional meaning.
Option C: Ask the original integrator for the source .pdl
If the custom graphic carries important operational meaning (e.g., a 10-state valve where the standard variant only supports 4 states), request the original integrator to deliver the missing @PCS7Typicals*.pdl with the full object definition, including any associated C scripts, status displays, and authorization checks. Import the file into \GraCS, recompile, and verify.
Verification Checklist
After any recovery, run the following checks before sign-off.
| Check | How | Expected |
|---|---|---|
| Typified object exists | Open @PCS7TypicalsZ_*.pdl, view object list, sort by Type |
Object OpDi01_100 present |
| OS compile log clean | Generate/Update Block Icons → review log | No warning: block icon type not found entries |
| Process picture renders correctly | Open the picture in Graphics Designer runtime | Icon visible, states change on block I/O |
| Faceplate opens | Click the icon in runtime | Correct faceplate view appears, not a fallback |
| Cross-project consistency | Compare with the integrator's other projects | Same .pdl file in \GraCS
|
| OS server redundancyRepeat check on standby server if applicable | Identical \GraCS contents after OS compile |
|
| Authorization | Log in as operator, then as engineer | Operator view identical, engineer view shows configuration icons |
Library Hygiene and Preventive Measures
Missing @PCS7Typicals*.pdl files are a symptom of weak library version control. The following practices prevent recurrence.
-
Single source of truth: Maintain a project master
@PCS7TypicalsZ_<Project>.pdlin version control (SVN, TFS, or the PCS 7 version crossover). Never allow ad-hoc copy-paste into process pictures. - Block icon naming convention: Document the reserved variant range (e.g., variants 1–50 Siemens, 51–90 integrator, 91–100 plant-specific) in the project engineering guidelines.
-
OS compile gate: Fail the project build if the OS compile log contains block icon type not found warnings. This is reachable as a return code in
OSCompile.exeautomation. -
Library handover: When an integrator delivers a project, require the full
\GraCSfolder, the master data library export, and a signed-off block icon mapping table. See the SIMATIC PCS 7 OS Configuration Manual for the supported handover artifacts. - WinCC Explorer Backup: Use the WinCC Explorer → Project → Backup function to capture the OS project state before any picture edit. See the WinCC V7.5 / PCS 7 V9.0 Backup and Restore manual.
Cross-References and Related PCS 7 Mechanisms
Understanding the @PCS7Typicals*.pdl mechanism requires familiarity with the surrounding OS compile pipeline.
| Artifact | Location | Role |
|---|---|---|
@PCS7TypicalsAPLV8.pdl / APLV9.pdl
|
\GraCS |
Siemens-supplied standard block icons |
@PCS7TypicalsZ_*.pdl |
\GraCS |
Customer / project-specific block icons (highest priority) |
@Overview.pdl |
\GraCS |
Plant area overview picture |
| OS project database | \<OSProject>\<ServerName>\<ComputerName>\ |
Runtime configuration |
| Chart Reference Data | Generated in CFC editor | Authoritative block icon number per CFC instance |
| Process Object View | WinCC Explorer → Process Objects | Cross-reference of picture ↔ block instance ↔ block icon number |
Troubleshooting Matrix
| Symptom | Likely cause | Fix |
|---|---|---|
| OS compile log: block icon type OpDi01_100 not found | Typified .pdl missing from \GraCS
|
Restore the file or recreate the variant (Option A) |
| Icon appears, but state changes do not propagate | Local pasted object with broken tag connection | Move to typified file, re-bind via Dynamic Wizard |
| Icon renders old Siemens style after integrator update | Integrator file sorts before Siemens APL file in reverse alpha | Rename to a Z-prefixed filename |
| Icon missing only on standby OS server |
\GraCS not synchronized to redundant server |
Run OS redundancy sync or manually copy the file |
| Icon reverts after OS compile | Local pasted object overwritten by typified lookup | Confirm whether the typified version is intended; otherwise promote to a typified file |
| Variant number 100 conflicts with new PCS 7 service pack | Service pack introduced a new standard variant with the same number | Renumber the custom variant (e.g., 100 → 990) and update the CFC block icon property |
Firmware and Version Compatibility
The reverse-alphabetical search order has been consistent since PCS 7 V6.1 and remains in PCS 7 V9.0 SP7 (the most recent V9 service pack at time of writing) and in the V10 release. The naming convention @PCS7Typicals*.pdl and the Generate/Update Block Icons tool are unchanged. The Process Object View has gained columns over the years (most notably the dedicated Block Icon column in V8.2) but the workflow described above applies to all supported versions.
For the exact menu paths and dialogs in your installed service pack, consult the SIMATIC PCS 7 Operator Station (OS) Configuration Manual and the PCS 7 Programming and Operating Manual - CFC for S7. For WinCC Graphics Designer specifics, refer to the WinCC V7.5 SP1 / PCS 7 V9.0 Graphics Designer Manual.
Frequently Asked Questions
Does PCS 7 WinCC have a built-in search for block icons inside PDL files?
No. WinCC Explorer and the Graphics Designer do not expose a "search by block icon name" function across @PCS7Typicals*.pdl files. The recommended workflow is to enumerate the .pdl files in \GraCS, open each in Graphics Designer, and use the per-picture object list (top-right of the design surface) sorted by Type. For project-wide indexing, use Chart Reference Data or the Process Object View, which list which CFC instances reference which Type string, but do not list the containing .pdl.
What is the block icon number 100 in OpDi01/100?
It is the variant suffix of the Type attribute that the CFC block icon property requests from the OS. The OS compile process resolves this string against the objects placed inside the @PCS7Typicals*.pdl files in reverse-alphabetical file order. Variants 1–50 are typically reserved by Siemens APL, higher numbers are integrator or customer additions. The number has no intrinsic meaning beyond the matching Type property on an object inside a typified picture.
Why does my custom faceplate not appear after I added it to a new PDL file?
The most common reason is that the new .pdl filename sorts before the Siemens @PCS7TypicalsAPLV8.pdl (or V9) in reverse alphabetical order, so the Siemens file wins during the lookup. Rename the file so it sorts after the Siemens file, for example @PCS7TypicalsZ_ProjectName.pdl. Also confirm that the object's Type property exactly matches the CFC block icon's Type string, including capitalization and underscores.
How do I move a copy-pasted faceplate into a typified PDL file?
Cut the faceplate object from the process picture in the Graphics Designer, paste it into a new or existing @PCS7TypicalsZ_<Project>.pdl in \GraCS, set the object's Type property to the variant string (e.g., OpDi01_100), save, delete the original pasted object from the process picture, and recompile the OS with Generate/Update Block Icons. Verify in runtime that the icon and faceplate behave identically.
Can I revert OpDi01/100 to a standard OpDi01_01 without losing the faceplate?
Yes, but only if the standard OpDi01_01 already covers the same block (e.g., CTRL_PID). Open the CFC block, change the block icon Type from OpDi01_100 to OpDi01_01, save, and recompile the OS. This binds the block to the Siemens standard faceplate and discards the custom graphic. If the custom graphic carried additional states (e.g., a 10-state valve), this change will lose that information, and the proper fix is to promote the custom graphic to a typified file under a new variant number.