Resolving PCS7 'Entire Program Download' Forced Mode Issues
When the SIMATIC PCS7 engineering station (ES) displays the "Entire program downloaded to CPU" option in the S7 download dialog instead of the preferred "Download changes only" (delta) option, the engineering framework has detected that the offline project is no longer in a known-consistent state relative to the connected target CPU. Delta downloads in PCS7 are only permitted when the engineering system can guarantee that the resulting runtime program will be bit-equivalent to the offline build for the regions not being modified. Any structural change that invalidates that guarantee forces a complete reload of all load objects to the target CPU's Load memory (MMC/CF) and, in many cases, a CPU STOP transition. This article enumerates the exact conditions that switch PCS7 into forced full-download mode, provides a diagnostic workflow to identify the active trigger, and documents the remediation steps that restore delta-download capability.
1. Problem Definition and Operational Impact
The download dialog in STEP 7 / PCS7 (accessible via PLC > Download or Target system > Download) evaluates the time stamp of the offline project, the structural difference between the offline and online program, and the operating mode of the target CPU. Three possible download paths are offered:
| Option in S7 Download Dialog | CPU Mode Required | Typical Trigger | Production Risk |
|---|---|---|---|
| Download changes only (delta) | RUN-P (preferred) or STOP | Block code edit, FB/FC/OB body change, no interface modification, time stamp match | Low — short CPU STOP for OB1x reassembly only |
| Download entire program to target device | STOP mandatory | Interface change, type replacement, DB/FC compression, archive restore, time stamp mismatch | High — extended STOP, full reload of work memory |
| Download to file / download to test CPU | Offline operation | Preserve comparison stamp for later delta transfer | None — does not touch online CPU |
The "entire program download" path is intentionally conservative. PCS7 does not attempt partial reconstruction of the S7 user program when consistency cannot be proven. The five canonical triggers are described in the following sections.
2. Trigger A — Block Interface Modification
The most common trigger in active engineering projects is a modification to the interface of a function block (FB), function (FC), or system block that has already been instantiated and downloaded to the CPU. Interface elements include:
- IN (input) parameters — added, removed, renamed, or re-typed
- IN/OUT (input/output) parameters — added, removed, renamed, or re-typed
- STAT (static) variables inside an FB — added, removed, or re-typed
- OUT (output) parameters — added, removed, renamed, or re-typed
- TEMP variable renumbering (does not generally force full download but should be reviewed)
When any of the above elements change, the Instance DB (iDB) generated for the FB becomes structurally incompatible with the new FB version. PCS7 cannot safely map the new interface onto the existing instance data in work memory, so the engineering system forces a full program download and the CPU must be in STOP for the duration. Plant operators must be informed because all controlled outputs will freeze at their last value or fall to configured safe-state values depending on the output module's reaction to CPU STOP.
2.1 Diagnosing Interface Changes
- In the SIMATIC Manager, right-click the modified FB and select Object Properties > Version to view the time stamp.
- Open Options > Compare Blocks (online/offline) to display the version difference.
- Inspect the Interface column in the compare report. A status of Interface changed confirms Trigger A.
- If only Code is flagged, delta download remains possible.
3. Trigger B — Used Block Type Version Replacement
When a block type that is currently used (instantiated, called, or referenced in another block) is replaced by a new version containing structural changes, the system cannot guarantee that the calling context remains valid. Structural changes include:
- Addition or removal of I/O points on a channel block (e.g., CTRL_PID, MOT_SPEED, VALVE_ANA)
- Modifications to message configuration (MSG_LOCK, ACK behaviour, message class)
- Changes to instance-specific initial values that affect memory layout
- Replacement of a PCS7 APL (Advanced Process Library) block by a different type or a newer major version
For a comprehensive understanding of block versioning semantics, refer to the Siemens Industry Online Support documentation set for PCS7 Engineering System.
3.1 Avoiding Trigger B on Hot-Fixes
APL hot-fix packages distributed by Siemens are usually code-only updates and do not modify the FB interface. Verify the release notes for each hot-fix — specifically the Interface compatibility field — before applying to a live system. A non-compatible hot-fix will force a full download and CPU STOP.
4. Trigger C — DB and FC Number Compression
PCS7 offers an optional DB/FC number compression feature located at Options > Settings > Compile/Download. When the option "Compress DBs and FCs" is enabled, the compiler reassigns DB and FC numbers into a contiguous range during the next compile cycle. The new numbering sequence is not identical to the previously downloaded numbering, so PCS7 treats the program as structurally different and forces a full download.
4.1 Diagnostic Check
- Open Options > Settings > Compile/Download on the ES.
- Inspect the "Compress" checkbox state.
- Compare the offline Cross References (Ctrl+Alt+F7) of the program to the last archive or backup. A non-contiguous DB range (gaps in 1..n) is normal; a renumbered range indicates compression occurred.
5. Trigger D — Time Stamp Mismatch From "Download to Test CPU"
The "Download to test CPU" feature (selectable in the S7 download dialog) is intentionally designed to retain the original comparison stamp so that the same delta can later be applied to the production CPU. However, a plain download of a modified program to any other S7 CPU without this option selected updates the comparison stamp in the offline project. The subsequent attempt to apply the same change to the original target CPU fails the time stamp check and forces a full download.
5.1 Resolution Path
- If the program must be re-tested on an alternative CPU, always use Target system > Download to Test CPU rather than a standard download.
- If a plain download has already been performed, the only clean remediation is to re-compile the offline project and accept a full program download to the production CPU.
- Restoring the project from the last archive taken before the test-CPU download restores the original comparison stamp — provided the archive is the exact pre-test version.
6. Trigger E — Program Restored From Archive
If a project is restored from an archive that is not the exact program that was last downloaded to the target CPU, the time stamp on the offline program no longer matches the time stamp on the online CPU. PCS7 will refuse a delta download and offer only the full program path. Typical scenarios:
- Backup restored after hardware failure on the engineering station
- Project synchronisation between two ES stations (master and hot-standby)
- Import of a project XML from a different plant that is similar but not identical
- Partial check-in/check-out from a version-control system (e.g., SVN integration in Teamcenter) that retrieves a different revision
For multi-ES architectures, refer to the official PCS7 Engineering System Configuration Manual on the Siemens support portal for the project synchronisation model and time-stamp propagation rules.
7. CPU Operating Mode Requirements Summary
| CPU Series | Delta Download Mode | Full Program Download Mode | Notes |
|---|---|---|---|
| AS 410 (CPU 410-5H) | RUN-P supported | STOP mandatory | Full download time scales with program size, typically 30 s to 5 min |
| AS 410E (CPU 410E) | RUN-P supported | STOP mandatory | Larger work memory than AS 410; plan extended STOP |
| AS 400 (CPU 414 / 416) | RUN-P supported | STOP mandatory | Legacy series, still in service at many sites |
| AS 300 (CPU 315 / 317) | RUN-P supported | STOP mandatory | Common in smaller PCS7 installations |
| Soft PLC (WinLC RTX) | RUN-P supported | STOP mandatory | Restart sequence includes service-mode reinitialisation |
Regardless of the AS series, the engineering station reads the CPU's online operator panel via the Online & Diagnostics view and prevents delta download if any of the conditions in Sections 2–6 are true. The check is performed at the moment the user clicks the download toolbar icon; it is not cached from compile time.
8. Diagnostic Workflow — Step-By-Step
Use the following ordered procedure to isolate the active trigger when the S7 download dialog defaults to "Entire program downloaded to CPU".
- Open the project on the ES that last successfully performed a delta download to the target CPU. Verify you are editing the correct station (master or stand-by) if your site uses redundant ES.
- Compile only the changed chart via Chart > Compile > Chart. Inspect the Compile log for any interface warnings, e.g., "FB interface has changed since last download".
- Run online/offline compare: Options > Compare Blocks. Examine the difference column for any of the markers: Type difference, Interface different, Block number different.
- Check the compile/download settings: Options > Settings > Compile/Download. Confirm whether DB/FC compression is enabled and whether the S7 target setting matches the physical CPU order number.
- Check the time stamp of the offline S7 program vs. the time stamp reported by the CPU in PLC > Online & Diagnostics > Time Stamps. Mismatch indicates Triggers D or E.
- Check for archive-restore indications: Project > Archived / Restored view (where available) and version control metadata.
- Apply the targeted remediation from Sections 2–6 corresponding to the identified trigger.
- Re-attempt the download and verify that the dialog now offers "Download changes only".
9. Resolution Procedure — Restoring Delta-Download Capability
Once the active trigger is identified, apply the appropriate fix:
9.1 Interface-Change Recovery
- Roll back the FB interface modification if the change was unintentional.
- If the interface change is required, schedule a CPU STOP maintenance window.
- Place the CPU in STOP, perform the full download, restart, and verify all instances.
- After the next delta download cycle, confirm the instance DBs are regenerated correctly via PLC > Monitor/Modify.
9.2 Block-Type Replacement Recovery
- Revert the block type to the previously downloaded version (use Options > Compare Blocks to identify the prior version signature).
- Compile and confirm the dialog returns to "Download changes only".
- If a newer block type is mandatory, schedule a maintenance window for a full download.
9.3 DB/FC Compression Recovery
- Open Options > Settings > Compile/Download.
- Disable the Compress option.
- Compile the entire program (not just changed charts).
- Retry the download. The dialog should now offer "Download changes only" because the numbering sequence is preserved.
9.4 Time-Stamp Mismatch Recovery
- Confirm whether the test CPU download was performed with the Download to test CPU checkbox selected. If yes, the comparison stamp is preserved and delta download is unaffected.
- If a plain download was performed, restore the project from the last archive taken before the test download.
- If no archive is available, the only option is to accept a full program download to restore alignment.
9.5 Archive-Restore Recovery
- Restore the exact archive that was used to perform the most recent online download to the target CPU. Engineer station archives typically include the S7 program sub-folder that contains the comparison stamp metadata.
- Compile and verify the time stamp alignment in PLC > Online & Diagnostics.
- Re-attempt the download.
10. "Download to Test CPU" Option — Detailed Behaviour
The "Download to test CPU" feature is a special mode that performs a full or delta download of the program to a temporary test CPU for offline validation, while preserving the comparison stamp in the offline project. Specifically:
- Download identifier: retained — engineering system records the original CPU's identifier as the canonical target.
- Comparison stamp: retained — the time stamp of the offline S7 program is not updated.
- Consequence: The same delta change can subsequently be applied to the production CPU with "Download changes only".
This option should be used as standard practice when validation requires testing on a real CPU (e.g., a spare AS 410 on the test bench). It is also the recommended workflow when a vendor hot-fix needs to be regression-tested before being applied to the live plant.
11. Prevention and Best Practices
- Lock the ES during live operation. Use PCS7 user-rights administration to restrict block modifications to a single nominated engineer or a maintenance window workflow.
- Disable DB/FC compression on operational projects. Section 4 details the procedure.
- Avoid test-CPU downloads during peak production. Schedule them in planned maintenance windows to prevent accidental stamp corruption.
- Archive the project immediately after each successful online download. This creates a recovery point aligned with the actual CPU state.
- Use the Download to test CPU checkbox for all validation downloads to test hardware.
- Adopt a structured change management workflow aligned with IEC 62443 change-control principles: formal request, impact analysis, approval, download, verification, sign-off.
- Verify all FB interface edits in a development AS before propagating to production. PCS7 supports parallel AS configuration in the multi-project view.
- Check S7 target device assignment before each download: PLC > Object Properties > Target System. A mis-assigned target can produce download dialog options that appear inconsistent with the actual physical rack.
12. Verification Checklist Post-Resolution
After applying any of the resolutions in Section 9, run the following checks to confirm delta-download capability has been restored and the system is healthy:
- Open the S7 download dialog and confirm the Download changes only option is selectable.
- Cancel the download (do not actually trigger it) and verify the option persists.
- Open Online & Diagnostics > Time Stamps and confirm offline and online time stamps are identical.
- Run Options > Check Block Consistency on the S7 program. Result should report zero errors.
- Compile the entire program (not only modified charts) to ensure all dependent blocks are up to date.
- Re-run Options > Compare Blocks between offline and online. Result should be No difference if the project is in steady state.
- Check the OS (operator system) for any channel-block consistency warnings, particularly in the SFC (Sequential Function Chart) instances and the S7 program Charts folder.
- Document the change in the plant's PCS7 change log with the time stamp, the engineer responsible, the trigger resolved, and the version-control revision ID.
13. Troubleshooting Matrix
| Symptom | Most Likely Trigger | First Diagnostic Step | Resolution |
|---|---|---|---|
| Dialog defaults to full download after FB body edit only | A — interface was unintentionally modified | Compare Blocks > Interface column | Revert interface or schedule full download window |
| Dialog defaults to full download after APL hot-fix | B — block type replacement with structural change | Check hot-fix release notes for interface impact | Revert to prior block version, or accept full download |
| Dialog defaults to full download after first compile in a new project | C — DB/FC compression enabled | Options > Settings > Compile/Download > Compress | Disable compression, recompile |
| Dialog defaults to full download after testing on a spare AS | D — plain download to test CPU (not the test-CPU option) | Verify which download checkbox was used | Restore project from archive taken before test download |
| Dialog defaults to full download after ES hardware replacement | E — project restored from older archive | Check project history and time stamps | Restore the correct archive that matches the live CPU state |
| Dialog options are greyed out entirely | CPU is in wrong mode or no online connection | Online & Diagnostics > Operating Mode | Establish online connection; place CPU in STOP for full download |
| Download fails during execution with SF LED on CPU | Work memory exceeded or stack overflow | Diagnostic buffer > Event | Reduce program size or upgrade CPU; refer to S7-400 system manual |
14. Related Standards and References
Engineering procedures that govern PCS7 change control should be aligned with:
- IEC 61131-3 — Programmable controllers, part 3: programming languages. Defines the FB, FC, DB, OB, and instance semantics that drive interface-impact analysis.
- IEC 62443 — Industrial communication networks, network and system security. Provides the change-management framework that should wrap any PCS7 modification in a regulated plant.
- ISA-95 / IEC 62264 — Enterprise-control system integration. Relevant for plant historians that consume tag data potentially affected by structural PCS7 changes.
For the official PCS7 documentation set, including the Engineering System manual, the Operator System manual, and the APL block reference, consult the Siemens PCS7 documentation portal. The SFC manual and the S7 programming reference are bundled in the standard PCS7 installation media and are also accessible from the SIMATIC Manager's Help > Manuals menu.
15. Glossary
| Term | Definition |
|---|---|
| APL | Advanced Process Library — the standard library of PCS7 function blocks for I/O, control, and motor/valve management |
| AS | Automation Station — the SIMATIC S7 CPU that runs the PCS7 user program |
| CPU STOP | Operating mode in which the CPU does not execute the user program; outputs follow configured safe-state |
| Comparison stamp | Identifier stored in the offline S7 program that matches the last successfully downloaded program to a specific CPU |
| Delta download | Download of only the changed blocks (FB, FC, OB, DB) to the target CPU, typically possible in RUN-P |
| ES | Engineering Station — the SIMATIC PCS7 programming and configuration workstation |
| Instance DB | Data block generated for a specific FB call, containing the static and IN/OUT parameter values |
| OS | Operator System — the SIMATIC PCS7 HMI runtime that provides faceplates, alarms, and trends |
| SFC | Sequential Function Chart — graphical step/transition language used for batch and sequential control in PCS7 |
FAQ
Why does PCS7 force a full program download after I only changed FB code and not the interface?
It should not. A code-only FB modification keeps the Instance DB structure intact and the engineering station should offer "Download changes only". If the dialog still defaults to full download, run Options > Compare Blocks and check for hidden interface changes (renamed parameter, changed data type) or for DB/FC compression. Also confirm the offline project is the same one that produced the last successful online download — a project restored from a non-matching archive produces a time stamp mismatch.
Must the CPU be in STOP for a full program download in PCS7?
Yes. The CPU must be in STOP for the entire program download path because the work memory and load memory are fully rewritten. STOP transitions for AS 410 / AS 410E typically take 30 s to several minutes depending on program size. Plan the maintenance window accordingly and notify plant operators so that actuator safe-states are accounted for.
What is the difference between "Download to test CPU" and a plain download to a test AS?
"Download to test CPU" preserves the download identifier and comparison stamp in the offline project so that the same delta can later be applied to the production CPU. A plain download to any CPU updates the comparison stamp, breaking delta-download alignment with the production CPU and forcing a full download the next time the production CPU is targeted.
How can I tell if my project has been restored from a mismatched archive?
Open PLC > Online & Diagnostics > Time Stamps and compare the offline S7 program time stamp to the online CPU time stamp. Any difference indicates the offline project is not the version last downloaded. Restore the correct archive (typically the one taken immediately after the most recent successful download) to recover delta-download capability.
Does DB/FC compression cause runtime issues or only download-time issues?
Only download-time issues. Compression only renumbers the DB and FC addresses; the compiled code remains functionally equivalent. However, because the numbering sequence changes, the comparison stamp no longer matches and the next download must be a full program download. Disable compression on operational projects to avoid this unnecessary STOP window.