Evaluating Continuous Function Chart (CFC) Architecture - DCS Engineering Advantages vs Classic PLC Programming
Continuous Function Chart (CFC) is a graphical, technological programming environment that forms the foundational engineering paradigm of SIMATIC PCS 7 (while also available as an optional add-on for classic STEP 7). Unlike classic PLC programming languages—such as Ladder Logic (LAD), Function Block Diagram (FBD), or Statement List (STL)—CFC represents automation systems in terms of interconnected plant equipment rather than raw memory bits and registers. When migrating from distributed S7-300 PLCs programmed in FBD to a centralized S7-400 DCS architecture, rewriting the application in CFC is strongly advantageous: it integrates Advanced Process Library (APL) equipment blocks, provides automatic hardware diagnostic generation, automates WinCC HMI tag/alarm engineering via AS-OS compilation, and enforces deterministic cyclic OB execution.
Table of Contents
- The Philosophical Shift: Technological DCS vs Factory Automation PLC
- Key Architectural Capabilities of CFC in SIMATIC PCS 7
- Comparative Evaluation: Rewriting in CFC vs Retaining LAD/FBD/STL
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
The Philosophical Shift: Technological DCS vs Factory Automation PLC
In traditional factory automation (such as standalone SIMATIC S7-300 or S7-1500 controllers), software engineering focuses on sequential rung logic, bit manipulation, and timer/counter handling written in Ladder Logic (LAD), Function Block Diagram (FBD), or Statement List (STL). Programmers manually map physical I/O addresses (I 0.0, Q 0.0) to global memory flags (M 10.0) and data blocks (DB1.DBX0.0).
In Distributed Control Systems (DCS) like SIMATIC PCS 7, software engineering is oriented technologically around plant assets—pumps, control valves, heat exchangers, and distillation columns. Continuous Function Chart (CFC) implements this philosophy by allowing engineers to place high-level function blocks onto a continuous visual canvas and interconnect them via graphical signal lines. CFC abstracts memory allocation entirely: instance data blocks, communication buffers, and execution sequences are managed automatically by the engineering system.
Key Architectural Capabilities of CFC in SIMATIC PCS 7
Deploying CFC within SIMATIC PCS 7 delivers extensive capabilities that do not exist in conventional PLC programming:
- Automated AS-OS Engineering: Every block placed in CFC with the
S7_m_c(Message and Control) attribute automatically generates WinCC tag management structures, historical logging archives, and Alarm Logging messages (Alarm_8P) upon OS compilation. - Advanced Process Library (APL) Integration: Blocks like
MotL(Motor Large),VlvL(Valve Large), andPIDConL(PID Controller) provide pre-engineered interlocks (Permit, Protect, Interlock), operating modes (Manual, Auto, Local), and standardized WinCC faceplates out of the box. - Automatic Driver Generation: Channel drivers (
Pcs7AnIn,Pcs7DiIn) automatically link to ET 200 hardware diagnostics via the PCS 7 Driver Generator, evaluating signal quality codes (IEEE 754 float + Status Byte) without custom logic. - Deterministic Run Sequence Management: CFC blocks are automatically organized into runtime groups executed within fixed cyclic interrupt Organization Blocks (e.g., OB35 at 100ms), guaranteeing exact sampling rates for PID control.
Comparative Evaluation: Rewriting in CFC vs Retaining LAD/FBD/STL
When modernizing multiple legacy S7-300 controllers into a single S7-400 DCS controller, engineering teams must evaluate whether to convert code to CFC or retain classic FBD/LAD:
While copying existing FBD blocks into an S7-400 appears faster initially, it treats a multi-million-dollar DCS controller as an oversized PLC, completely forfeiting the automated HMI integration, alarming standards, and maintenance efficiencies of PCS 7.
Verification
Validate CFC program architecture and compiler integrity using these standard procedures:
- Consistency Verification: In the CFC editor, select
Chart -> Check Consistency -> Entire Program. Verify that all signal interconnections, type definitions, and data types pass without error. - AS-OS Compile Test: In SIMATIC Manager, execute
Compile OS -> Scope: Entire OS. Confirm that WinCC automatically populates tag management and creates corresponding block icons in the target graphics screen. - S7-PLCSIM Simulation: Download the CFC charts into S7-PLCSIM. Test manual/auto mode switching and interlock trips directly from WinCC Runtime to confirm end-to-end functionality.
Limitations and Operational Precautions
When adopting CFC in SIMATIC PCS 7, engineers should keep these operational rules in mind:
- Work Memory Consumption: CFC-compiled programs generate standardized overhead structures that consume more AS work memory than hand-crafted Statement List (STL) code. Ensure the target S7-400 CPU possesses sufficient RAM.
- Cyclic Task Allocation: Never place continuous control blocks or PID loops into the free-wheeling OB1 task. All CFC logic must execute within deterministic cyclic interrupt tasks (OB30 to OB38).
- Master Data Library Discipline: When developing reusable logic, maintain typical blocks inside the Multiproject Master Data Library (MDL) rather than creating fragmented local copies across charts.
Engineer FAQ
Is CFC exclusively used in SIMATIC PCS 7?
No. CFC is also sold as an optional engineering package for classic STEP 7 (standalone automation). However, its full power—including AS-OS compilation, APL faceplate integration, and Driver Generation—is realized exclusively in PCS 7.
Can I call classic LAD or SCL blocks inside a CFC chart?
Yes. Any standard Function Block (FB) or Function (FC) written in SCL, STL, or LAD can be imported into the CFC block catalog and placed onto a chart, provided its input/output parameters comply with standard S7 interface rules.
Why is OB1 discouraged in PCS 7 CFC programming?
OB1 is a background task with variable cycle time. If CPU communication load spikes, OB1 cycle time stretches, making timers, ramp rates, and PID calculations inaccurate. Cyclic interrupt tasks (like OB35) provide fixed execution intervals.
Technical References
- SIMATIC PCS 7 CFC for S7 / M7 Engineering Manual (A5E36173004)
- SIMATIC PCS 7 Getting Started - Part 1 and Part 2 with APL (Entry ID: 109485954)
- Siemens Industry Online Support: 'What are the benefits of CFC in process automation?' (Entry ID: 109755021)
Related Articles
- Resolving CFC Compiler Warning 'Blocks Not Installed in Interrupt OBs' in SIMATIC PCS 7 - OB1 vs Cyclic OB35 Execution.md
- Understanding Chart-Based Runtime Group Management in SIMATIC PCS 7 - Folder Colors and Execution Organization.md
- Best Practices for Duplicating CFC Logic in SIMATIC PCS 7 - Reusable Typical Charts, Master Data Library, and CMTs.md
Related Tags
- CFC Editor
- DCS Architecture
- APL
- AS-OS Engineering
- S7-400
- Getting Started