Updating PCS7 Block Types in 24/7 Plants: TCiR Guide
Modifying a user-created function block (FB) written in SCL inside a SIMATIC PCS 7 project almost always changes the block type's interface (FB header, instance signature, or default values). When that happens, the Automation Station (AS) cannot simply patch the new type into a running CPU. This article explains why, what the impact is on SFC instances, BATCH recipes, and the OS, and which procedures allow an update without taking the plant out of production. The focus is on the Type Change in Run (TCiR) capability introduced with PCS 7 V8.1 on the SIMATIC CPU 410-5H process automation controller (firmware ≥ V8.1), plus the workarounds available when TCiR cannot be used.
1. Problem Statement
You are maintaining a SIMATIC PCS 7 plant that runs 24/7. You edited a project-specific FB written in SCL, added a few new VAR_INPUT signals, recompiled, and now the engineering system reports that the only legal download path is a full download in STOP. Concurrently it asks you to recompile the Operator Station (OS). Three concerns follow:
- Will the full download cause the SFC instances to lose their current step / state?
- Will BATCH recipes be re-initialized or just paused?
- Will the control modules drop out of AUTO and revert to MANUAL with default parameters?
All three are real risks that must be mitigated before a hot plant is touched.
2. Why an Interface Change Forces a Full Download
When an FB is instantiated in a CFC chart, the AS stores the type's interface signature (number of inputs, name, type, initial value) as part of the compiled block. Adding even one new input changes that signature, so the SCL compiler generates a new FB with a new time stamp. The CPU cannot overlay the new type onto the existing instances without a controlled re-initialization sequence, which is what the engineering system is trying to prevent by demanding a STOP download. The same logic applies to removing, renaming, or reordering VAR_INPUT / VAR_OUTPUT / VAR_IN_OUT / STAT declarations. Changes to VAR_TEMP alone do not change the interface signature and can be downloaded in RUN.
VAR_TEMP changes are guaranteed to be safe for a download-in-RUN. Every VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT, and STAT modification alters the block interface.3. Effect of a Full Download on SFC, BATCH, and Control Modules
When you execute a full download (STOP → RUN) on a CPU that has SFC charts running:
- The CPU performs a warm restart via OB100.
- All SFC instances transition to IDLE. Active steps, transitions, and sequencer state are discarded.
- All control modules revert to their configured startup state, which by default is MANUAL with the operator's last OCM values restored only if a read-back has been performed beforehand.
- All BATCH unit allocations, batch IDs in process, and recipe phase states on the AS side are cleared. BATCH does not transparently resume; the master recipe must be re-started by the operator from the BATCH Control Center.
- The OS, after recompile and download, will show the plant in its initial picture; the last OS server does not retain historical operator actions over the re-compile boundary.
For a 24/7 process (refinery, power, pharmaceutical, water), this is unacceptable. Every planning decision below exists to avoid this exact scenario.
4. TCiR - Type Change in Run
Type Change in Run (TCiR) is the only Siemens-supported method that updates a block type in a live PCS 7 plant without a STOP transition. It is enabled by a combination of AS hardware and engineering software:
| Requirement | Minimum Version | Notes |
|---|---|---|
| AS hardware | SIMATIC CPU 410-5H | Process automation controller, firmware ≥ V8.1 |
| PCS 7 engineering | V8.1 (or later) | TCiR is not available in V5.5 / V6.x / V7.x |
| Firmware of CPU 410-5H | V8.1.x or newer | Check via SIMATIC Manager → PLC → Diagnostics → Module Information |
| Block type origin | Master Data Library or user library | Direct project FB edits may still be blocked |
| Interface change scope | Add/remove/reorder signals; default values only with V8.2+ | See Section 5 for excluded changes |
When the prerequisites are met, the engineering system automatically detects TCiR eligibility. The user does not need to toggle a flag; the system performs a structural pre-check on the new FB before the download dialog opens.
5. TCiR Excluded Changes
Even with TCiR enabled, the following modifications still force a full download:
- PCS 7 V8.1 only: changing the default value of an existing input/output on the block interface. Resolved in V8.2+ for the most common cases.
- Changing a message-related variable (MSG_LOCK, ACK_STATE, MSG_EVID, MS, etc.) or the message configuration itself.
- Renaming, reordering, or changing the data type of any interface signal in a way that breaks the structural layout.
- Replacing the block body such that the new FB can no longer be initialized from the existing instance DB layout.
If your SCL edit added new inputs but did not change any default value, did not alter message configuration, and did not touch an existing input's name/type/order, the change is a candidate for TCiR.
6. Recommended Workflow: Master Library Update
The Siemens-blessed path for any PCS 7 block type update is the Master Data Library. Never edit a block in the live project Blocks folder and try to push it back. The procedure:
- Open the Master Data Library project in SIMATIC Manager.
- Open the SCL source of the FB in the library's SCL folder and make the edit (add the new
VAR_INPUTdeclarations). - Compile the SCL source to generate the new FB type inside the library Blocks container.
- In the Component View, right-click the new FB → Options → Charts → Update Block Types.
- The dialog lists all AS projects that reference the block. Select the target AS and click Check.
- The system reports whether the change can be performed in RUN (TCiR), or whether AS STOP and OS recompile are required. Read the impact summary before confirming.
- If TCiR is feasible, confirm. The download runs in RUN, the new type is overlaid, instance DBs are extended automatically, and the OS compile impact is reported but typically not required for purely additive interface changes that do not affect operator dialogs.
7. Direct Blocks Folder Update (Discouraged)
If the FB has already been edited inside the live project Blocks folder, you can still trigger a type update from the CFC editor:
- Open the CFC chart that contains an instance of the FB.
- Right-click on the block → Block Type → Update Block Type (or via menu Options → Charts → Update Block Types).
- The system displays the familiar red warning dialog. Below the warning there is a small check-box Type Update in Run (TCiR). The check-box is enabled only if the CPU 410-5H and PCS 7 version requirements are satisfied.
- Tick the box and proceed. The system will refuse and force a STOP download if the type change is not TCiR-compatible.
This path works, but the block is already in the project; rolling back is impossible without a backup. Always start from the master library.
8. Workaround: New FB Number (FB Renumbering Trick)
When TCiR is not available (older CPU, older PCS 7, or the change is in the excluded list) but you still need to keep the plant running, the field-proven workaround is to create the new block under a fresh FB number and instance-DB range, then reconnect the CFC chart to the new block:
- In SCL, change the FB number assignment (Properties → Block number) to a free number, e.g. move FB1080 to FB1180.
- Recompile the SCL source. The new FB and a new instance DB family are created with empty initial values.
- In the CFC chart, delete the old instance of the block. This only removes the chart-level reference, not the compiled FB type.
- Insert the new FB (new number) from the library / Blocks folder into the same chart position. The new instance starts with default values but the connections are empty.
- Reconnect every input and output that was wired to the old block. For blocks with dozens of signals, use the cross-reference list (Ctrl+Alt+F) to identify every chart that references the old FB.
- Compile the chart and download the changes in RUN. The download is now a pure delta because the interface of the existing code (the old FB) is unchanged.
- After confirming the new instance behaves identically, you can remove the old FB type and its instance DBs during the next planned outage.
9. OCM Readback - Saving Operator Values Before a Full Download
If a full download is unavoidable, OCM (Operator Control & Monitoring) readback is the only way to preserve the current operating parameters, setpoints, and tuning values. Without readback, every MOT_SPEED, SP, SP_HLM, SP_LLM, VENT_TIM, MONITOR_TIME, and similar operator-tunable parameter will be reset to its default.
- In SIMATIC Manager, open the AS project, right-click the AS → Target System → Read Back OCM Variables (or via CFC menu Options → Read Back OCM).
- Select the scope: all charts, or only the charts you intend to download. Always include all charts that will be re-downloaded, otherwise the readback will not match.
- Confirm the readback. The engineering system overwrites the offline OCM initial values with the live values from the running AS.
- After the readback, save and compile the CFCs, then perform the full download.
- After the warm restart (OB100), the control modules will boot into MANUAL but with the same operating parameters the operator had on the screen before the outage.
10. OS Recompile and WinCC Impact
Any block type change that adds or renames operator-relevant signals triggers an OS recompile. The OS recompile does the following:
- Regenerates the WinCC tag list and the picture tree.
- Re-links faceplates to the new tag names if any tag changed.
- Requires a download of the OS server project and an OS client activation.
- Loss of the OS Runtime archive state for the time the OS is being reloaded; archives resume on the new tag structure.
For purely additive inputs (e.g. a maintenance-only VAR_INPUT that is not exposed to the operator), the OS recompile is usually a no-op in terms of faceplate structure, but the engineering system still flags it as required. Coordinate the OS recompile with the next available OS maintenance window even if the impact is minimal.
11. Pre-Update Risk Matrix
| Change | TCiR? | OS recompile? | Plant impact |
|---|---|---|---|
Add new VAR_INPUT only |
Yes (V8.1+) | Usually no | Zero production impact |
Add new VAR_OUTPUT
|
Yes (V8.1+) | Yes, if output is in OCM scope | OS download in maintenance window |
| Change default value of existing input (V8.1) | No | Yes | Full download, OCM readback required |
| Change default value of existing input (V8.2+) | Yes | Yes | OS download in maintenance window |
| Change message configuration / MS / ACK_STATE | No | Yes | Full download, OCM readback required |
| Rename or reorder an existing signal | No | Yes | Full download, OCM readback required |
Edit only VAR_TEMP or block body logic |
Yes (in RUN) | No | Delta download, no plant impact |
12. Pre-Update Checklist
- Verify CPU type: must be CPU 410-5H with firmware ≥ V8.1. Open HW Config → CPU properties → Diagnostics. If you have CPU 41x, TCiR is unavailable — use the FB renumbering trick or schedule an outage.
- Verify PCS 7 version: must be V8.1 or later. Open SIMATIC Manager → Help → About. V5.5, V6.x, V7.x cannot use TCiR.
- Move the SCL source of the modified FB to the Master Data Library if it is not already there. Edit it there, not in the project.
- Compile the SCL source inside the library. Verify the new FB time stamp in the Blocks container.
- Right-click the FB in the library → Options → Charts → Update Block Types. Run the impact check first; do not confirm yet.
- Read the impact summary: "Type Update in Run possible" or "AS STOP required".
- If TCiR is possible, schedule the download during a low-risk moment, ensure the OS server is online, and confirm the operator can acknowledge any short tag-quality flips.
- If TCiR is not possible, perform the OCM readback first, then schedule a full download with the operator on standby to put the plant back into AUTO once the warm restart completes.
13. Verification After Update
- In SIMATIC Manager, open the CFC chart containing the updated block. The block header should reflect the new FB number and time stamp.
- Right-click the block → Block Consistency Check. The check must return "OK".
- Open the faceplate for the block on the OS (or in WinCC Runtime). Confirm the new input is visible (if it is exposed to the operator) and the existing values match the pre-update state.
- Open the CPU online → Monitor & Modify the relevant DB and confirm the new input accepts a written value.
- Run a controlled step on the SFC (single step in MANUAL) to verify the chart still transitions correctly with the new block type loaded.
- For BATCH, re-allocate a unit and start a small test recipe (e.g. CIP) to confirm the recipe phase calls hit the new block type without "Wrong block type" or "Instance not found" errors.
14. Common Errors and Fixes
| Symptom | Cause | Fix |
|---|---|---|
| Download dialog forces STOP, no TCiR check-box | CPU 41x, or PCS 7 < V8.1 | Upgrade AS to CPU 410-5H and PCS 7 to V8.1+, or use FB renumbering workaround |
| TCiR check-box greyed out | Change is in excluded list (message var, default value, rename) | Revert excluded change, or accept full download with OCM readback |
| OS compile reports "Tag already exists" | Same FB updated in only one of two AS projects | Update the block in all AS projects simultaneously, then recompile OS |
| After full download, SFCs in IDLE, control modules in MANUAL with default values | OCM readback was not performed | Restore last-known-good OCM values manually or replay from the OS long-term archive |
| BATCH recipe stuck in "Starting" | Unit allocation lost during warm restart | Operator must re-allocate the unit and resume the recipe; BATCH cannot transparently continue across a full download |
15. PCS 7 Version and Firmware Reference
For exact version/firmware compatibility consult the official Siemens release notes and readme files for the installed PCS 7 version. As of this writing the relevant releases are PCS 7 V8.1, V8.2, V9.0, V9.0 SP1, V9.1, and V9.1 SP1, each accompanied by matching CPU 410-5H firmware packages distributed via the SIMATIC PCS 7 software updates. Always cross-check the "What's new" document and the read-me of the latest HF (Hotfix) on the Siemens Industry Online Support portal before performing the update on a production system.
16. Field-Proven Caveats
- Do not mix TCiR with simultaneous CFC chart downloads; do them in separate steps and verify after each.
- Do not run TCiR while BATCH is actively executing a recipe. Wait for the current recipe phase to finish or pause the unit cleanly.
- For H-systems (CPU 410-5H redundant pair), confirm both CPUs are in RUN and synchronized before TCiR. A failover mid-TCiR is not supported.
- Never edit the SCL source in the project Blocks folder. Always edit in the Master Data Library to keep the type-update engine functional.
- Document the change in the project log (CFC → Chart → Properties → Comment) with the new FB time stamp and the engineering change request ID.
17. FAQ
What hardware is required to use TCiR in PCS 7?
TCiR is only available on the SIMATIC CPU 410-5H process automation controller with firmware V8.1 or newer. CPU 417-4H, CPU 416, and the CPU 410 SMART/E variants do not support TCiR. Confirm the firmware under HW Config → CPU → Module Information before planning a live update.
Which PCS 7 version first introduced TCiR?
PCS 7 V8.1 introduced TCiR. Earlier versions (V5.5, V6.x, V7.x) cannot perform a type change in RUN and always require a STOP download. TCS V8.2 expanded TCiR to cover default-value changes on existing interface signals.
Do I lose SFC and BATCH state if I perform a full download?
Yes. A full download triggers a warm restart (OB100). All SFC instances go to IDLE, control modules revert to MANUAL, and BATCH unit allocations are cleared. Recipes cannot transparently resume. To preserve operator parameters, run the OCM readback in the engineering system before the download.
Can I edit a block directly in the project Blocks folder and still use TCiR?
Technically yes, but it is not recommended. The CFC editor will offer a TCiR check-box in the "Update Block Type" dialog if the prerequisites are met. The cleaner, Siemens-blessed workflow is to maintain the SCL source inside the Master Data Library and run Options → Charts → Update Block Types from there, which also reports the impact (RUN vs STOP) before any download is initiated.
What is the FB renumbering trick and when should I use it?
If TCiR is not available because the change is excluded (message variable, rename) or because the AS hardware does not support TCiR, create the new block under a different FB number, replace the instances in the CFC charts, reconnect the signals, and download the change in RUN. The download is a delta because the existing type is unchanged. The trick is practical up to roughly 50–100 instances; for larger fan-outs, schedule a planned micro-outage with OCM readback instead.
Does changing only VAR_TEMP require a STOP?
No. Modifications confined to the VAR_TEMP declaration area or to the block body (without interface changes) can be downloaded in RUN on virtually any SIMATIC S7/CPU 410 controller. The engineering system will offer a delta download without the STOP warning.