Problem Overview: PCS 7 v9.0 Picture Size Reverts After OS Compile
Engineers running SIMATIC PCS 7 V9.0 SP2 with Update Collection 03 (UC03) — as well as V9.0 SP3 with UC01/UC02/UC03, V9.0 SP3 UC06, and V9.1 SP2 UC08 — frequently report that custom picture geometry set inside WinCC Graphic Designer is overwritten on the next OS compile. The two observable picture populations are:
- Group 1 pictures — geometry matches the dimensions defined in the OS Project Editor. These pictures always resize to the project editor's configured canvas.
- Group 2 pictures — geometry was modified manually via Graphic Designer → Object Properties → Geometry (width, height, X, Y) for a particular client display or a non-standard panel resolution. These pictures are forced back to the OS Project Editor size after every OS compile.
Because the OS compile cycle in PCS 7 regenerates the runtime database (*.pdl and the GraCS folder contents under the OS server's project path), any out-of-band geometry that the engineering tool did not write back to the master project database is lost. The issue is not a WinCC runtime bug; it is a project distribution and master-data handling constraint that the OS Compile OS executes by design.
Affected Versions and Update Collections
The behavior is documented in the official Siemens PCS 7 readme files for the following versions:
| PCS 7 Version | Update Collection | OS Compile Behavior |
|---|---|---|
| V9.0 SP2 | UC03 | OS Server geometry overrides manual Object Properties changes |
| V9.0 SP3 | UC01 / UC02 / UC03 / UC06 | Same behavior; resolved by ES-side workflow only |
| V9.1 SP2 | UC08 | Same workflow applies; no new compile flag added |
For the canonical version notes consult the PCS 7 V9.0 SP3 UC06 Readme (Online) and the PCS 7 V9.1 SP2 UC08 Readme (Online). The readme files list operating-system prerequisites, the WinCC/WebUX V7.4 process picture support, and the supported upgrade matrix that the compile sequence must respect.
Root Cause Analysis
PCS 7 separates the engineering environment (ES) from the runtime environment (OS Server / OS Client). During an OS compile, the WinCC Explorer on the OS Server rebuilds the runtime database from the master project data that is downloaded from the ES. The OS Compile OS has two relevant settings under OS Project Editor → Picture → Monitor resolution:
- Default monitor resolution — controls the canvas of all process pictures generated automatically from the SFC, S7 Graph, and CFC chart topology.
- Window size attributes — the runtime width/height of any picture opened in the OS Client.
When a distributed setup (ES and OS Server on different PCs) is used, the runtime copies of the picture files on the OS Server are tagged as "downloaded from ES." The OS Compile OS re-applies the OS Project Editor settings to those copies and discards geometry attributes that the OS Server received only via direct manipulation in Graphic Designer. This is the mechanism behind the lost Group 2 dimensions.
Why the ES Path Is the Source of Truth
The master PDL files live on the ES under <ProjectName>_<OSName>\GraCS\. Each picture is referenced by a database row in CCAlgRtData.fm9 / CCRTData.fm9 and by the file header inside the PDL. The OS compile:
- Reads the picture list from the ES master.
- Generates or regenerates PDLs using the OS Project Editor canvas.
- Deploys the PDLs to the OS Server's
GraCSfolder. - Rebuilds the runtime database (
RTData.dbf,PDT.dbf) on the OS Server.
Any geometry attribute not written into the ES master is lost in step 3. The fix is therefore to edit the picture on the ES, not on the OS Server runtime instance.
Prerequisites for the Resolution
- Engineering Station with PCS 7 V9.0 SP2 UC03 (or matching version per the table above) installed.
- OS Server with the same major version and at minimum the same Update Collection.
- Administrator rights on both stations and a writable shared project path.
- WinCC Explorer and the OS Project Editor available on the ES.
- Read access to the Siemens readme PDFs to confirm the Update Collection level: PCS 7 V9.0 SP3 UC06, PCS 7 V9.1 SP2 UC08.
Resolution Workflow Step by Step
Step 1 — Edit the Picture on the Engineering Station
- Open the PCS 7 project on the Engineering Station (ES), not the OS Server.
- Start WinCC Explorer and select the OS whose pictures need the custom geometry.
- Open the affected picture in the Graphics Designer.
- Open Object Properties → Geometry and set the custom
Width,Height,Position X, andPosition Yvalues for Group 2 pictures. - Save the picture. The change is now committed to the ES master PDL.
Step 2 — Trigger a Full OS Compile on the Engineering Station
- In WinCC Explorer, right-click the OS and select OS Compile OS.
- In the Compile dialog, choose Scope: Entire OS (not "Changes only"). This forces a regeneration of the runtime database and the picture database.
- Verify that the Use the OS Project Editor settings option is enabled for Group 1 pictures only, and that the picture selection retains the custom geometry defined in Step 1 for Group 2 pictures.
- Click Compile and wait for the
OSL.dbfandGraCSfolder to regenerate.
Step 3 — Download the OS to the OS Server
- From the ES, initiate OS Download → Complete download to the OS Server. A delta download will not regenerate the picture database.
- Confirm the download with the operator station's authorization dialog.
- Wait for the OS Server runtime to restart and the
PDL<random>.dbfcache to be rebuilt.
Step 4 — Open the Project on the OS Server for Final Geometry Check
- On the OS Server, open the project in the Graphics Designer (read-only is acceptable for verification).
- Confirm that Group 2 pictures retain the custom geometry set in Step 1.
- If the geometry is still wrong, the OS Server project has not been replaced — repeat the Complete download from the ES.
Workaround: Multiple OS Clients With Per-Client Picture Geometry
When a project has multiple OS Clients with different physical monitor sizes (for example, a 1920×1080 control room display and a 1366×768 panel PC), the OS Client Reference mechanism forces all referenced clients to share the same picture. The workaround is to remove the OS Client Reference and create independent OS Clients, each with its own picture set.
| Approach | Configuration | Compile Behavior |
|---|---|---|
| OS Client Reference (default) | One master OS Client, other clients reference it | All clients forced to master's geometry; Group 2 changes lost |
| Independent OS Client per display | Each OS Client is a separate object in the project tree | Each client keeps its own Group 1 / Group 2 geometry after compile |
| WinCC Script geometry swap | C / VBS action in the picture's Open Picture event | Runtime changes geometry based on HMIRuntime.Environment.ComputerName or screen size |
Script-Based Geometry Lock (Optional)
When the hardware mix is fixed and only the picture canvas needs to be adjusted per client, attach a C script to the picture's Open Picture event. The script reads the runtime environment and sets the window geometry on first open:
#include "apdefap.h"
void OnOpenPicture(char* lpszPictureName)
{
// Resolve target monitor and set canvas geometry
long lScreenW = 0, lScreenH = 0;
lScreenW = GetScreenWidth();
lScreenH = GetScreenHeight();
// 1920x1080 control room
if (lScreenW >= 1920) {
SetPictureWidth(lpszPictureName, 1920);
SetPictureHeight(lpszPictureName, 1080);
}
// 1366x768 panel PC
else if (lScreenW >= 1366) {
SetPictureWidth(lpszPictureName, 1366);
SetPictureHeight(lpszPictureName, 768);
}
// Fallback to OS Project Editor default
return;
}
This approach keeps the master picture size at the OS Project Editor default (Group 1 behavior) and applies per-client geometry at runtime, eliminating the manual resizing step in Graphic Designer and surviving any subsequent OS compile.
Configuration Reference: OS Project Editor and Graphics Designer Settings
| Setting Path | Parameter | Effect on Compile |
|---|---|---|
| OS Project Editor → Picture → Monitor resolution | Width, Height | Defines Group 1 canvas; reset on every OS compile |
| OS Project Editor → Picture → Window attributes | Start position, Maximize | Applies to all pictures unless overridden in PDL |
| Graphics Designer → Object Properties → Geometry → Width / Height | Per-picture runtime dimension | Persists only if the ES master is the source of the change |
| Graphics Designer → Object Properties → Geometry → Position X / Y | Per-picture runtime position | Persists only if the ES master is the source of the change |
| OS Compile OS → Scope → Entire OS | Compile flag | Required when picture database must be regenerated |
| OS Download → Complete download | Download flag | Required to overwrite OS Server picture database |
Verification Procedure
- From the ES, open the OS Project Editor and note the configured canvas size (for example, 1920×1080).
- Open the affected picture in Graphics Designer on the ES and confirm the Geometry → Width / Height values match the desired custom size.
- Initiate a Complete download to the OS Server.
- On the OS Server runtime, open the picture from the OS Client. Verify the geometry matches the custom size set in step 2.
- Perform a second OS Compile OS → Entire OS cycle. Re-verify that the picture geometry is unchanged after the second compile.
- Capture screenshots of the picture on the target OS Client and store them in the change-control record.
Troubleshooting Matrix
| Symptom | Likely Cause | Corrective Action |
|---|---|---|
| Group 2 picture resets after compile | Geometry was edited on the OS Server, not the ES | Re-apply geometry on the ES, then Entire OS compile and Complete download |
| OS Server ignores ES geometry | Delta download only, picture database not regenerated | Use Complete download from the ES |
| Different clients show different sizes | OS Client Reference pointing to a master client with different geometry | Remove the reference and create independent OS Clients per display |
| Picture cache shows old geometry after compile | OS Server runtime cache PDT.dbf not refreshed |
Restart WinCC runtime on the OS Server; check PDL<random>.dbf timestamps |
| WebUX client shows default geometry | WebUX uses OS Project Editor canvas only | Set the WebUX canvas to the largest target resolution in the OS Project Editor |
| Picture size differs between engineering and runtime | Project version mismatch (e.g., ES on V9.0 SP3, OS Server on V9.0 SP2) | Align major, service pack, and Update Collection levels on ES and OS Server |
Best Practices to Prevent Recurrence
- Always edit pictures on the Engineering Station, not the OS Server, to keep the master and the runtime synchronized.
- Run OS Compile OS → Entire OS after any OS Project Editor canvas change; use incremental compile only when the canvas is unchanged.
- Use a single physical resolution per OS Client class to avoid per-client geometry drift. If multiple resolutions are required, use independent OS Clients or a runtime geometry script.
- Document the OS Project Editor resolution in the project's Functional Specification and update the change-control record whenever the resolution changes.
- Before promoting a project to a new Update Collection, review the latest readme file: PCS 7 V9.0 SP3 UC06 or PCS 7 V9.1 SP2 UC08.
- Maintain a backup of the ES master
GraCSfolder before and after every OS Compile OS cycle.
FAQ
Why does my PCS 7 v9.0 picture resize after every OS compile?
The OS compile regenerates the runtime picture database from the Engineering Station master. If the picture was resized on the OS Server runtime, the change is lost. Open the picture on the ES, set the geometry in Object Properties → Geometry, save, then run OS Compile OS → Entire OS and Complete download.
How do I keep two different picture sizes in the same PCS 7 project?
Do not use OS Client Reference for clients that need a different geometry. Create a separate OS Client for each target resolution, and either edit the picture geometry in the ES master for that client or attach a C / VBS script to the picture's Open Picture event to set width and height at runtime based on the screen size.
Does the "Changes only" OS compile preserve picture geometry?
No. When the OS Project Editor canvas differs from the picture's stored dimensions, the incremental compile does not regenerate the picture database. Use Scope: Entire OS the first time the geometry is corrected, then revert to incremental compile for subsequent cycles.
What Update Collection resolves the picture-reset issue?
No Update Collection adds a new compile flag for this case. The behavior is by design across V9.0 SP2 UC03, V9.0 SP3 UC06, and V9.1 SP2 UC08. The fix is the ES-side edit + Entire OS compile + Complete download workflow. Verify the installed Update Collection against the official PCS 7 V9.0 SP3 UC06 Readme and PCS 7 V9.1 SP2 UC08 Readme.
Can I use a WinCC script to lock picture size across recompiles?
Yes. Attach a C or VBS action to the picture's Open Picture event and call SetPictureWidth / SetPictureHeight (or the equivalent VBS properties) using values derived from GetScreenWidth / GetScreenHeight. The OS compile will not overwrite the master geometry, and the runtime adjustment is applied every time the picture opens.