Recovering Lost CFC Blocks and Resolving '(No Position)' Margin Interconnections in SIMATIC PCS 7
A CFC block becomes invisible with margin references displaying '(Keine Position)' / '(No Position)' when its layout coordinates are shifted beyond visible sheet boundaries. Recover or remove the block by opening the Run Sequence editor (Ctrl + F9), locating the block in its cyclic organization block (e.g., OB35), and deleting or editing it there. Alternatively, delete the orphan margin connection and execute project reorganization.
Table of Contents
- Symptom Description and Graphical Corruption
- CFC Database Architecture and Layout Coordinates
- Step-by-Step Block Recovery and Cleanup Procedure
- CFC Error Recovery and Diagnostic Methods
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Symptom Description and Graphical Corruption
During CFC (Continuous Function Chart) engineering in SIMATIC PCS 7, engineers occasionally encounter a scenario where a block accidentally vanishes from the chart editing plane:
* While repositioning or dragging a block between chart sheets, the mouse cursor moves outside the valid sheet grid or snaps to an invalid coordinate offset.
* The block disappears completely from all six visible sheets of the CFC chart.
* However, other blocks in the chart (or partner charts) that connect to the missing block display a sheet margin pointer (Randleistensprung) showing:
ChartName/BlockName (Keine Position) (in German) or (No position) (in English).
* Double-clicking the margin pointer does not navigate anywhere because the target coordinate cannot be resolved by the graphical renderer.
* The engineer can neither click, move, nor delete the missing block from the standard chart view.
CFC Database Architecture and Layout Coordinates
To understand how an invisible block continues to execute, consider the dual-layer architecture of SIMATIC CFC:
-
Logical Execution Layer (Run Sequence):
* When a block is placed into a CFC chart, it is instantiated in the target CPU's data block space and registered inside the cyclic execution task list (e.g. OB35, OB32).
* The execution order, runtime group, and interconnections exist strictly as relational records inside the S7 chart database (CHART.DB). The block continues to be executed cyclically by the CPU regardless of its graphical placement. -
Graphical Rendering Layer (Sheet Coordinate Grid):
* Each CFC chart has a fixed coordinate grid composed of sheets (typically 6 sheets arranged in 2 rows by 3 columns).
* A block's graphical position is defined by integer coordinate pairs:SheetNumber,X_Coordinate,Y_Coordinate.
* If a drag-and-drop anomaly, mouse driver jump, or resolution scaling glitch writes an out-of-bounds coordinate (e.g.Sheet = 0,Sheet = 255, or negative coordinates), the graphical user interface fails to draw the object inside any visible sheet frame. -
Margin Pointer Synchronization:
* The sheet margin interconnections continuously query the target block's location. When the location resolves outside the valid sheet boundaries, the margin subsystem outputs the text string(No position)/(Keine Position)as a placeholder for the missing graphical anchor.
Step-by-Step Block Recovery and Cleanup Procedure
Method 1: Locate and Manage via the Run Sequence Editor (Recommended)
- In the open CFC editor, press Ctrl + F9 or click the Run Sequence icon (showing hierarchical OB folders).
- The left pane displays the CPU organization blocks (OB100, OB1, OB30 to OB38).
- Expand the cyclic interrupt OB where the chart is assigned (typically OB35).
- Locate the runtime group corresponding to your CFC chart name.
- In the runtime group list, find the missing block by its instance name.
- To Delete the Lost Block:
* Select the block in the Run Sequence window and press the Delete key.
* Confirm deletion. CFC will delete the block instance and automatically remove all associated interconnections and margin pointers. - To Inspect Block Parameters:
* Right-click the block in the Run Sequence window and select Object Properties.... Here you can inspect parameters or change I/O settings.
Method 2: Adjust Zoom and Sheet Layout Overview
- In the CFC editor menu, select View > Overview (or zoom out to the minimum zoom level, e.g. 25%).
- Inspect the peripheral grey margins outside the 6 standard white sheet frames.
- If the block is visible in the border margin, drag it back onto Sheet 1, 2, or 3.
Method 3: Severing Margin Interconnections Manually
- On the surviving block whose pin connects to the lost block, locate the sheet margin reference showing
(No position). - Right-click the margin connection line or text and select Delete Interconnection.
- Repeat for all input/output pins connected to the corrupted block.
- If the block is no longer needed, compile the chart folder to ensure database cleanup.
Method 4: Database Reorganization and Consistency Check
- In SIMATIC Manager, close all CFC and SFC editors.
- Select the Chart folder, then choose Options > CFC > Check Consistency.
- In SIMATIC Manager, execute File > Save As....
- Check the box With Reorganization (Slow) and specify a new project name.
- Reorganization rebuilds internal database pointers, purging orphaned graphical records.
CFC Error Recovery and Diagnostic Methods
| Recovery Method | Target Action | When to Use | Advantages | Operational Risk |
|---|---|---|---|---|---|
| Run Sequence Editor (Ctrl + F9) | Locate & delete lost block | Block cannot be seen anywhere on sheets | Bypasses graphical rendering engine entirely | Deleting removes all block parameter settings |
| View > Overview / Zoom Out | Drag block back to valid sheet | Block pushed just outside sheet boundary | Recovers block without re-engineering | Block may be beyond viewport boundaries |
| Delete Margin Interconnection | Disconnect pins from ghost block | Interconnections need clearing before deletion | Restores clean margin appearance | Leaves unused block consuming CPU memory |
| Save As with Reorganization | Database purge and pointer rebuild | Pervasive coordinate corruption or crash | Cleans orphaned records across entire project | Requires closing all editors; takes several minutes |
Verification
- Open the CFC chart where the missing block was situated.
- Verify that the sheet margins no longer display
(No position)or(Keine Position). - Open the Run Sequence window (
Ctrl + F9); verify that no orphaned or duplicate instances exist. - Execute Chart > Check Consistency; confirm zero errors and zero warnings are reported.
- Execute PLC > Compile > Changes only; verify compilation finishes successfully with 0 errors.
Limitations and Operational Precautions
- Online CPU Download Warning: If you delete the missing block while the automation system is in RUN, downloading changes will remove the block from the CPU. Ensure the block is not actively controlling physical equipment before deleting.
- Avoid Hex Editing Project Files: Never attempt to edit S7 database files (
*.DB,*.DBF) using external database tools. Direct file edits cause irreparable project corruption. - Multi-User Editing Collisions: Graphical coordinate corruption frequently occurs when multiple engineering stations edit the same CFC chart concurrently over network shares. Always adhere to single-user check-out workflows.
Engineer FAQ
Will an invisible block with '(No position)' still execute in the CPU?
Yes. The CPU executes machine code compiled from the runtime sequence, completely independent of CFC graphical coordinates. The block will continue processing inputs and driving outputs until deleted or downloaded.
Why does CFC let blocks be dragged outside the sheet boundaries?
During complex chart re-layouts, CFC allows blocks to be temporarily parked in margins while moving other elements. If dropped beyond valid coordinate limits or during screen resolution changes, coordinates can exceed render limits.
How do I avoid losing blocks when moving them between different sheets?
Instead of dragging blocks across multi-sheet boundaries, use the Cut (Ctrl + X) and Paste (Ctrl + V) commands: select the block, cut it, navigate to the target sheet, and paste it directly onto the desired grid location.
Technical References
- SIMATIC Process Control System PCS 7 CFC for S7 (V8.1) Programming and Operating Manual
- SIMATIC Process Control System PCS 7 Engineering System Compendium Part A
- Siemens Industry Online Support: Handling CFC Chart Inconsistencies (SIOS Entry ID 109780813)
- STEP 7 V5.5 Database Reorganization and Integrity Guidelines
Related Articles
- Troubleshooting Broken Textual Interconnections in SIMATIC PCS 7 CFC
- CFC Chart Compilation Errors: Capacity Limits and DB Allocation
- Best Practices for S7 Project Reorganization and Database Health
Related Tags
- CFC
- Keine Position
- No Position
- Run Sequence
- PCS 7 Engineering
- STEP 7