Resolving CFC Download Error Block Already Exists in the CPU (FC3220, DB10237)
The Continuous Function Chart (CFC) download error 'Block already exists in the CPU. Block was not downloaded' (e.g., for FC3220 or DB10237) occurs when offline chart compilation creates blocks whose numbers conflict with orphaned blocks resident in the online CPU. This condition arises after aborted download changes, manual block copying in SIMATIC Manager, or desynchronized instance DB allocations. In RUN mode, engineers can resolve the error by inspecting online blocks, identifying orphaned DBs and FCs not referenced in offline Chart Reference Data, and deleting them from the online CPU container. Executing a block type cleanup in CFC followed by a changes-only compile and download restores synchronized online execution.
Table of Contents
- CFC Block Allocation and Download Mechanics
- Root Causes of Block Existence Conflicts
- Remediation Procedure Without Controller STOP
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
CFC Block Allocation and Download Mechanics
In SIMATIC PCS 7, Continuous Function Chart (CFC) dynamically manages the generation, numbering, and interconnection of internal function blocks (FB), functions (FC), and instance data blocks (DB). Unlike classic STEP 7 where programmers assign block numbers manually, CFC assigns numbers from reserved ranges (e.g., FC 60 to FC 1400, DB 1 to DB 16383).
When an engineer downloads changes, CFC compares the offline chart reference data against the online CPU's active block directory. If the online CPU already contains a block with the target number that the offline compiler believes it is creating for the first time, the download engine halts immediately to prevent overwriting active memory.
Root Causes of Block Existence Conflicts
The conflict typically stems from three operational scenarios:
PIDConL or Pcs7DiOu) was deleted in CFC, but changes were not downloaded before adding new blocks.Remediation Procedure Without Controller STOP
When the plant is operating and a full controller download (CPU STOP) is strictly prohibited, perform this procedure:
Step 1: Audit Offline vs Online Chart Reference Data
- In the CFC Editor, select
Options->Chart Reference Data(Ctrl + Shift + R). - Navigate to the Block Types and PO Count for Instance DB views.
- Check whether the conflicting block (e.g.,
DB10237orFC3220) is listed as active or marked asDeleted.
Step 2: Clean Up Block Types in Offline Charts
- In CFC, select
Options->Block Types.... - Click the Clean Up button: this clears unused block type registrations from the chart container.
Step 3: Remove Orphaned Blocks from Online CPU
- In SIMATIC Manager, select the AS station and click the Online window icon (accessible via toolbar).
- Open the online Blocks folder.
- Locate the specific conflicting DB or FC reported in the error log.
- Verify that this block is truly orphaned (i.e., not linked to any active offline CFC chart).
- Delete the orphaned block from the online CPU container.
Step 4: Recompile and Download Changes
- In CFC, initiate
Compile-> select Changes only. - Initiate
Download-> select Changes only: the download completes successfully.
Verification
To verify that the block download error is fully resolved:
- Confirm that the CFC 'Download Changes' dialog finishes with progress bar reaching 100% and displays
Download completed successfully. - Check the CPU Diagnostic Buffer (
Ctrl + D): verify zero block mismatch or memory management errors. - Open the newly added block (e.g.,
Pcs7DiOuorCMP_R) in CFC and switch to Online Test mode (eyeglasses icon). - Verify that output values dynamically update and that signal quality codes indicate good status (
16#80). - Open Chart Reference Data again: confirm zero orphaned or deleted instance DBs.
Limitations and Operational Precautions
Operational boundaries when managing online blocks:
- Extreme Caution Deleting Online Blocks: Never delete an online DB or FC without verifying its instance relationship in Chart Reference Data. Deleting an active block will crash the CPU (
OB121programming error or CPU STOP). - Full Download Fallback: If extensive corruption occurs across hundreds of instance DBs, schedule a planned maintenance window to execute a full download (
Download Entire Program). - WinCC Faceplate Independence: Deleting or creating faceplates in WinCC Graphics Designer does not affect PLC block existence in the AS.
Engineer FAQ
Can deleting a block from CFC cause block already exists errors later?
Yes. If a block is deleted from a chart, the compiler marks its instance DB for deletion. If you cancel the download changes mid-stream, the DB remains in the controller while offline CFC assumes the number is available.
Does downloading from SIMATIC Manager cause this error?
Yes. Downloading blocks directly from the SIMATIC Manager Blocks folder bypasses CFC's change tracking table, leading to immediate number collision during subsequent CFC downloads.
How can I test the fix safely in S7-PLCSIM?
Load your project into S7-PLCSIM, reproduce the error by canceling a download changes, delete the un-tracked online DB from PLCSIM's block folder, and re-run download changes.
What does CFC Block Type Clean Up do?
It scans all charts in the project, removes block types that are no longer instantiated, and reclaims reserved system function numbers.
Technical References
- Siemens SIMATIC PCS 7 CFC for S7 Programming Manual (A5E39140302)
- Siemens SIMATIC S7-400 CPU 410-5H System Manual (A5E02148107)
- Siemens Industry Online Support Entry ID 109748901: Handling Block Number Conflicts during CFC Download
Related Articles
- Resolving 'Error Writing New Run Sequence in OB Task (254 -61013)' in CFC
- Resolving CFC Compiler Crash 'Runtime Error - S7JS7CAX.EXE Abnormal Program Termination'
- Modifying CP 443-1 Time Synchronization Mode and Download in RUN (CiR) Restrictions
Related Tags
- CFC-Download
- Block-Already-Exists
- FC3220
- DB-Conflict
- Download-Changes
- Chart-Reference-Data