Resolving 'Drag and Drop Not Possible' for FC and FB Blocks in SIMATIC PCS 7 CFC
In SIMATIC PCS 7 CFC Editor, the inability to drag and drop a Function (FC) or Function Block (FB) from the block catalog onto a chart sheet—indicated by a prohibited circle-slash cursor—occurs when the block lacks a defined symbolic name in the Symbol Table, contains unsupported input/output parameter types, has not been imported into the project's offline Blocks folder or Master Data Library, or violates CFC execution group rules. The CFC compiler strictly requires all blocks to possess unique symbolic names and fully resolved block headers. To resolve this, assign a valid symbol in the Symbol Table, import the block into the Master Data Library, and insert it onto the chart.
Table of Contents
- CFC Block Insertion Architecture and Strict Type Validation
- Root Causes of Prohibited Drag-and-Drop Actions
- Remediation Procedure - Assigning Symbols and Library Integration
- Block Type Requirements and Insertion Rules Matrix
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
CFC Block Insertion Architecture and Strict Type Validation
Continuous Function Chart (CFC) is an object-oriented graphical engineering tool:
* Symbol Table Requirement: In standard STEP 7 ladder logic, blocks can be called by raw numbers (e.g. CALL FC10). In PCS 7 CFC, raw numeric calls are prohibited. Every FC and FB must be registered in the Symbol Table with a symbolic name (e.g. FC10 -> SCALE_VAL).
* Header and Interface Checking: When an engineer drags a block from the catalog, the CFC editor reads the compiled block header. If the block was compiled without system attributes or contains unsupported parameter types (such as POINTER or ANY), the editor disallows insertion to protect chart integrity.
Root Causes of Prohibited Drag-and-Drop Actions
Specific conditions prevent dragging blocks onto CFC charts:
1. Missing Symbol Table Entry: If an FC was copied into the Blocks folder from an external library without adding its symbol to Symbols, CFC cannot resolve its technological identity and displays the prohibited cursor.
2. Missing System Attributes: Standard STEP 7 functions lacking the { S7_tasklist := 'OB100' } or technological header attributes cannot be scheduled automatically into cyclic organization blocks.
3. Protected or Incompatible Library Blocks: Attempting to drag an FC from an external library that has not been copied into the Multiproject's Master Data Library first.
4. Restricted Sheet Partition: Dragging a block into an area reserved for inter-chart signal margins or outside sheet boundaries.
Remediation Procedure - Assigning Symbols and Library Integration
Follow this procedure to enable drag-and-drop block placement in CFC:
[Phase 1: Assign Block Symbol in the Symbol Table]
│ • In SIMATIC Manager: Open the AS S7 Program folder -> Double-click "Symbols"
│ • Add an entry for the block:
│ - Symbol: "MyCustomFC"
│ - Address: "FC 10"
│ - Data Type: "FC 10"
│ • Save and close the Symbol Table
│
[Phase 2: Import Block into Master Data Library]
│ • Open: Master Data Library -> "Blocks" folder
│ • Copy FC 10 from the source library into the Master Data Library Blocks folder
│ • Copy FC 10 from Master Data Library into the AS S7 Program "Blocks" folder
│
[Phase 3: Refresh Block Types in CFC Editor]
│ • Open the target CFC chart
│ • Select menu: Options -> "Block Types..."
│ • Select your Master Data Library as source -> Select "MyCustomFC"
│ • Click "-->" to import the block type into the chart folder
│ • Close dialog -> In CFC Catalog, navigate to: "Blocks" -> Drag FC onto sheet!
Block Type Requirements and Insertion Rules Matrix
Compare requirements for inserting different block categories into CFC:
Verification
To confirm that the block inserts properly:
1. Open the CFC chart; expand the block catalog pane on the left.
2. Select the block from the Blocks tab; drag it onto Sheet 1.
3. Confirm that the block drops cleanly onto the grid, displaying its block header, execution sequence number, and I/O pins.
4. Double-click the block header; verify that the symbol name and comment display accurately.
5. Execute Chart -> Compile -> Changes Only; verify that compilation succeeds without interface errors.
Limitations and Operational Precautions
Functions (FCs) in CFC do not possess persistent instance memory. Never use an FC for state-based logic (such as motor start/stop latches or accumulators) that requires remembering values between execution scans. All state-retaining logic must be implemented inside Function Blocks (FBs) with dedicated instance Data Blocks.
Engineer FAQ
Why does CFC require a symbol when standard STEP 7 LAD does not?
CFC is an automated system generator that uses symbolic names to generate instance DBs, chart cross-references, module drivers, and WinCC OS tags.
Can an FC have IN_OUT parameters in CFC?
Yes, but the IN_OUT parameter must be connected to a persistent data block variable or block output to ensure valid memory addressing across cyclic scans.
What does 'Block Types -> Clean Up' do in CFC?
It purges block types from the chart folder that are no longer used on any CFC chart, reducing CPU memory allocation.
Why is the block grayed out in the catalog?
The block was modified in the source editor, altering its interface time stamp. Run Options -> Block Types -> New Version to update the chart catalog.
Technical References
- SIMATIC Process Control System PCS 7 CFC for S7 Manual - A5E36188448-AA
- SIMATIC STEP 7 V5.5 Programming with STEP 7 Manual - A5E00706901-01
- Siemens Industry Online Support (SIOS) Entry ID 109780813 - CFC Drag and Drop Restrictions
Related Articles
- Developing Custom SCL Function Blocks with Multi-Instance Timers (TIMER_P) in SIMATIC PCS 7
- Handling Pointer and ANY Data Types in SIMATIC PCS 7 CFC - SCL Encapsulation and Interconnection Rules
- Creating and Configuring a Master Data Library Manually in SIMATIC PCS 7 Multiprojects
Related Tags
- CFC Drag and Drop
- Symbol Table
- Block Types
- Master Data Library
- Function FC