Updating PCS7 Block Types in 24/7 Plants: TCiR Guide

David Krause15 min read
HMI ProgrammingSiemensTroubleshooting
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

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:

  1. Will the full download cause the SFC instances to lose their current step / state?
  2. Will BATCH recipes be re-initialized or just paused?
  3. 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.

Important: Only 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.

CPU 417-4H / CPU 416 limitation: TCiR is not supported on CPU 41x series. The H-CPU must be a CPU 410-5H. CPU 410 SMART and CPU 410E also do not support TCiR.

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:

  1. Open the Master Data Library project in SIMATIC Manager.
  2. Open the SCL source of the FB in the library's SCL folder and make the edit (add the new VAR_INPUT declarations).
  3. Compile the SCL source to generate the new FB type inside the library Blocks container.
  4. In the Component View, right-click the new FB → Options → Charts → Update Block Types.
  5. The dialog lists all AS projects that reference the block. Select the target AS and click Check.
  6. 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.
  7. 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.
Library discipline: Maintaining a single SCL source for every user FB inside the master library is what makes TCiR a single-click operation. Bypassing the library (editing in the Blocks folder) is technically possible but bypasses the type-update engine and is the most common reason engineers end up needing a full download.

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:

  1. Open the CFC chart that contains an instance of the FB.
  2. Right-click on the block → Block Type → Update Block Type (or via menu Options → Charts → Update Block Types).
  3. 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.
  4. 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:

  1. In SCL, change the FB number assignment (Properties → Block number) to a free number, e.g. move FB1080 to FB1180.
  2. Recompile the SCL source. The new FB and a new instance DB family are created with empty initial values.
  3. In the CFC chart, delete the old instance of the block. This only removes the chart-level reference, not the compiled FB type.
  4. 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.
  5. 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.
  6. 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.
  7. After confirming the new instance behaves identically, you can remove the old FB type and its instance DBs during the next planned outage.
Practical limit: The renumbering trick is workable up to roughly 50–100 instances. For FBs with 200+ instances across many CFCs, the manual reconnection cost outweighs the risk of a scheduled micro-outage. A reconciliation script (export/import CFC connections) is possible but is custom work and must be tested off-line first.

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.

  1. 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).
  2. 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.
  3. Confirm the readback. The engineering system overwrites the offline OCM initial values with the live values from the running AS.
  4. After the readback, save and compile the CFCs, then perform the full download.
  5. 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.
Readback limitation: Readback only restores values for blocks that are compiled and downloaded after the readback. If you skip a chart in step 2, its values are not preserved. The readback file is bound to the specific CFC compile set; modifying any block after readback invalidates the readback for that block.

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

  1. 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.
  2. Verify PCS 7 version: must be V8.1 or later. Open SIMATIC Manager → Help → About. V5.5, V6.x, V7.x cannot use TCiR.
  3. 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.
  4. Compile the SCL source inside the library. Verify the new FB time stamp in the Blocks container.
  5. Right-click the FB in the library → Options → Charts → Update Block Types. Run the impact check first; do not confirm yet.
  6. Read the impact summary: "Type Update in Run possible" or "AS STOP required".
  7. 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.
  8. 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

  1. In SIMATIC Manager, open the CFC chart containing the updated block. The block header should reflect the new FB number and time stamp.
  2. Right-click the block → Block Consistency Check. The check must return "OK".
  3. 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.
  4. Open the CPU online → Monitor & Modify the relevant DB and confirm the new input accepts a written value.
  5. Run a controlled step on the SFC (single step in MANUAL) to verify the chart still transitions correctly with the new block type loaded.
  6. 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.

Back to blog