How to Implement Multi-Valve Timing Sequences Using PCS 7 SFC Instead of Cascaded CFC Timers
Cascading individual CFC timer blocks (such as TimerP in mode 0 and mode 4) to control multi-stage valve sequences creates brittle logic prone to race conditions, initialization failures, and unmanageable troubleshooting. The industry-standard approach in SIMATIC PCS 7 is using Sequential Function Charts (SFC). SFC natively organizes multi-valve sequences into distinct sequential or parallel steps, executes configurable minimum step delays (T_MIN) for timed operations such as two-hour soaks, validates valve open/close feedback in transitions, provides built-in operator visualization in WinCC Runtime, and cleanly handles emergency holds and restarts following power interruptions.
Table of Contents
- Drawbacks of Cascaded CFC Timer Networks for Sequential Valve Control
- Architecture of PCS 7 Sequential Function Charts (SFC)
- Configuring Timed Steps and Parallel Valve Operations in SFC
- Controlling Bi-Directional Actuators (DO Open / DO Close) Safely
- Comparison of CFC Timer Chains vs SFC Sequential Control
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Drawbacks of Cascaded CFC Timer Networks for Sequential Valve Control
When automating process skids with complex valve sequences—such as a bank of nine valves where upper valves open for two hours, lower valves cycle for ten seconds sequentially, and vent valves pulse for one second—engineers without SFC experience frequently attempt to construct timing networks entirely out of interconnected CFC blocks.
Constructing sequential operations using raw CFC blocks (TimerP, AND, OR, NOT, FlipFlop) introduces severe operational liabilities:
1. Race Conditions and Execution Order Dependencies: CFC chart execution relies on task runtime groups and block execution sequences. Inverting feedback from the final valve to trigger the first timer creates circular signal dependencies, leading to one-cycle jitter or intermittent initialization lockups.
2. Brittle Power-Loss Recovery: If CPU power cycles or an emergency trip occurs mid-sequence, individual hardware timers reset to zero independently. Without an overarching state machine, valves can re-energize simultaneously in an uncoordinated, hazardous configuration.
3. Absence of Operator Visibility: In WinCC Runtime, operators cannot easily discern which step of a multi-hour cycle is currently executing, why a transition is stalled, or how much remaining soak time exists.
4. Maintenance Complexity: Modifying step times, adding an intermediate rinse cycle, or skipping a step requires rewiring complex boolean and timer networks across multiple CFC charts.
Architecture of PCS 7 Sequential Function Charts (SFC)
The SIMATIC PCS 7 SFC (Sequential Function Chart) package provides a standardized state-machine engineering environment adhering strictly to IEC 61131-3.
An SFC coordinates Continuous Function Charts (CFC) by reading process values and driving control pins:
* Steps: Contain initialization, runtime, and termination actions. In each step, the SFC writes control commands to CFC valve blocks (e.g., setting VlvL.AutModLi and VlvL.OpenAut).
* Transitions: Logical gating conditions that evaluate whether the process has achieved the criteria required to proceed to the next step (e.g., confirming valve limit switches VlvL.FbkOpenOut = 1).
* Parallel Branches: Enable simultaneous execution of multiple branches (e.g., opening three upper valves in parallel), joining at a synchronization bar before proceeding.
* Alternative Branches: Provide conditional branching based on recipe selection or operational fault paths.
Configuring Timed Steps and Parallel Valve Operations in SFC
To implement a 2-hour soak followed by sequential flushing in SFC:
- Step 1: Initialization and Start Interlock:
* Action: Verify that all bottom discharge and vent valves are closed.
* Transition: Operator presses Start button (Start_Op = 1) AND safety interlocks are clear. - Step 2: Parallel Upper Valve Opening:
* Insert a Parallel Branch with three sub-steps for the three upper valves.
* Action in each sub-step: SetValve_Top_1.OpenAut := 1,Valve_Top_2.OpenAut := 1,Valve_Top_3.OpenAut := 1.
* Transition below parallel branch: Check all three valves report open (FbkOpenOut = 1). - Step 3: Two-Hour Soak Timing (
T_MIN):
* Instead of placing an externalTimerPblock in CFC, select the step properties in SFC Editor.
* Set the step parameterT_MIN(Minimum Step Time) toT#2h.
* Configure the following transition condition:Step3.T >= Step3.T_MIN(the SFC automatically evaluates internal high-precision step timers). - Step 4: Upper Valve Closure:
* Action: SetValve_Top_*.OpenAut := 0.
* Transition: Confirm all upper valves are fully closed (FbkCloseOut = 1). - Step 5: Sequential Discharge Cycling:
* Sequentially open bottom valves one by one withT_MIN := T#10sper step.
* Interlocks ensure bottom valves cannot be energized unless upper valve feedback is verified closed.
Controlling Bi-Directional Actuators (DO Open / DO Close) Safely
When controlling motorized valves requiring two digital outputs (DO1 = Open command, DO2 = Close command), logic must guarantee that both outputs can never be energized simultaneously:
- Use Standard APL
VlvL/VlvMotL: - In the Advanced Process Library (APL), use
VlvMotL(Motor Valve) designed specifically for two-command actuators. It features native open/close output pins (CtrlOpen,CtrlClose) with an integrated interlocking dead-time parameter (MonTiDynamic) to prevent contactor short-circuits. - Driver Output Inversion Pattern:
- If using a standard single-output valve block (
VlvL), connect the valve control outputCtrldirectly to theDO_Opendriver block (Pcs7DiOu). - Invert the
Ctrlsignal and connect it to theDO_Closedriver block (Pcs7DiOu). - Because
DO_Open = CtrlandDO_Close = NOT Ctrl, the outputs are mutually exclusive:Ctrl = 1commands open, andCtrl = 0commands close, preventing dual-energization.
Comparison of CFC Timer Chains vs SFC Sequential Control
The table below compares the implementation characteristics of discrete CFC timer chains versus Sequential Function Charts in SIMATIC PCS 7.
TimerP blocks per stepT_MIN, T_MAX)Verification
To confirm proper operation of the multi-valve sequence:
1. Open the SFC chart online in SIMATIC Manager. Press Start and verify that the SFC transitions smoothly through Step 1 to Step 2.
2. In Step 2, confirm that all three upper valves receive open commands simultaneously and their physical open feedback switches illuminate in the transition.
3. Observe Step 3: verify that the SFC step timer T increments toward T#2h. Confirm that the transition condition blocks advancement until T >= 2h.
4. In WinCC Runtime, open the standard @[email protected] faceplate. Verify that operators can view current step status, elapsed time, and transition gating signals.
5. Simulate an emergency stop or CPU restart. Confirm that the SFC responds according to its configured startup behavior without triggering unauthorized valve openings.
Limitations and Operational Precautions
- Never command bi-directional motorized valves with unverified dry contacts without electrical or software interlocks; concurrent open/close commands cause actuator motor burnout.
- When configuring long soak times (e.g.,
T#2h), ensure the CPU clock synchronization is stable; rapid time jumps can prematurely trigger time-based transitions. - If operators require runtime modification of step durations, do not hardcode
T_MINinside the SFC step; instead, interconnectT_MINto a parameter tag modifiable via WinCC faceplates. - In safety-instrumented systems (SIS), sequence logic must never bypass safety trips; emergency dump valves must be hard-interlocked via F-CFC safety charts.
Engineer FAQ
Can I modify an SFC chart while the PCS 7 CPU is in RUN mode?
Yes. PCS 7 supports downloading SFC changes in RUN mode, provided the active SFC sequence is either completed, held, or de-energized. If an SFC is currently active, PCS 7 allows downloading changes if the structural topology of the currently executing step is preserved.
What is the difference between SFC Chart and SFC Type?
An SFC Chart is an individual, single-instance sequential control chart tied directly to specific plant tags. An SFC Type is an instantiable, object-oriented template that can be called repeatedly across multiple identical process units (such as CIP skids or batch reactors).
How do I make the 2-hour soak time adjustable from WinCC?
In the SFC step, rather than typing a fixed constant T#2h into T_MIN, declare an external input parameter on the SFC (e.g., SoakTime_Sec of type TIME). In the step action, assign T_MIN := SoakTime_Sec. This parameter can then be edited directly from the WinCC operator station.
Technical References
- SIMATIC PCS 7 Sequential Function Chart (SFC) Operating Manual
- Siemens Industry Online Support FAQ: SFC Programming and Step Control
Related Articles
- Best Practices for Designing Sequential Control with PCS 7 SFC Types
- Configuring Motorized Valve Control and Interlocking with APL VlvMotL
- WinCC SFC Visualization: Integrating Sequence Controls into HMI
Related Tags
- SFC
- Sequence Control
- Valve Automation
- TimerP
- VlvMotL