Understanding Block Header Question Mark (?) and EN Enable Flags in PCS 7 CFC
In SIMATIC PCS 7 Continuous Function Chart (CFC), a question mark ("?") appearing on the header of an instantiated block (such as an AFP timer, mathematical block, or custom function) indicates that the block's enable input (EN) is interconnected to a dynamic variable rather than permanently hardcoded. The question mark is a visual engineering indicator signifying conditional execution: because EN is driven dynamically at runtime (for example, by an operator block OpDiL or interlock gate), the CFC editor cannot determine statically whether the block will be processed or bypassed in any given CPU cycle. It is not an error, and the block executes normally whenever EN = 1.
Table of Contents
- CFC Block Header Symbols and Visual Status Indicators
- Role of the EN (Enable) and ENO (Enable Output) Mechanism
- Why Interconnecting EN Produces the Question Mark
- Online Monitoring Indicators: Question Mark vs Exclamation Mark
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
CFC Block Header Symbols and Visual Status Indicators
When working within the SIMATIC PCS 7 Continuous Function Chart (CFC) editor, blocks display various graphical symbols on their headers to convey structural and execution information to the engineer:
?)? in block headerEN is interconnected)!)! in block header (Online mode)EN = 0)EN = 1)Engineers unfamiliar with this notation often assume that the question mark indicates an unresolved parameter, a missing DB instance, or an invalid interconnection.
Role of the EN (Enable) and ENO (Enable Output) Mechanism
Every standard STEP 7 Function Block (FB) and Function (FC) placed in a CFC chart possesses two system pins managed by the compiler:
1. EN (Enable Input): A boolean input that controls whether the CPU processes the block's internal algorithm during that execution cycle. When EN = 1, the block executes. When EN = 0, the CPU skips execution, jumping directly to the next block in the run sequence.
2. ENO (Enable Output): A boolean output that reflects whether the block executed successfully without internal arithmetic errors (e.g., overflow or division by zero).
By default, CFC conceals EN and ENO and hardcodes EN = 1, ensuring deterministic, unconditional execution across every cycle.
Why Interconnecting EN Produces the Question Mark
When an engineer explicitly unhides EN (or connects a signal to it, such as wiring the output of an OpDiL operator block to enable an AFP pulse timer only during specific operating modes):
- The compiler detects that block execution is no longer constant.
- To visually alert engineers reviewing printouts or navigating charts that this specific block may not execute every cycle, CFC superimposes the question mark (
?) on the block header. - This is intentional system behavior: the question mark serves as a visual flag warning that output values, timers, and internal registers will remain frozen at their last state whenever the enabling condition drops to 0.
Online Monitoring Indicators: Question Mark vs Exclamation Mark
When switching CFC into online test mode (watch mode):
* If the interconnected signal driving EN is currently TRUE (1): The block executes its code, and the header retains the standard question mark (?).
* If the interconnected signal driving EN transitions to FALSE (0): The block is skipped by the CPU. CFC dynamically overlays a red exclamation mark (!) on the header, signaling to the engineer that the block is currently inactive and outputs are frozen.
Verification
To verify conditional block execution in CFC:
1. In CFC Editor, open the chart containing the block displaying the question mark.
2. Switch CFC to Online Test Mode (Test -> Watch).
3. Set the enabling block (e.g., OpDiL) to Out = 1; verify that the block executes and that output values update dynamically.
4. Toggle the enabling signal to Out = 0; confirm that a red exclamation mark appears on the block header and that the block retains its last computed values without updating.
Limitations and Operational Precautions
Use conditional execution (EN = 0) with extreme caution on closed-loop control blocks (such as PIDConL) or totalizers (TotalL). When a block is skipped via EN = 0, internal integral accumulators, derivative filters, and timer states freeze, leading to severe setpoint bumps or mathematical spikes when EN is re-enabled. If conditional operation is required on APL blocks, utilize standard tracking modes or feature bits rather than gating the hardware EN pin.
Engineer FAQ
Can I remove the question mark from the block header?
The question mark cannot be removed as long as EN is interconnected to an external variable. If you disconnect EN and set it back to unconditional execution, the question mark disappears.
Does a block with a question mark consume more CPU cycle time?
No. In fact, when EN = 0, the block is bypassed, consuming fewer CPU execution cycles than an unconditionally executed block.
What happens to block outputs when EN is 0?
When EN = 0, the block does not execute. Output variables retain their exact values from the last cycle in which EN was 1.
Technical References
- SIMATIC PCS 7 Continuous Function Chart (CFC) Manual (A5E33814030)
- SIMATIC S7-400 System and Standard Functions Manual (A5E00261404)
- SIMATIC PCS 7 Advanced Process Library Manual (A5E33814036)
Related Articles
- Managing Variable Renaming and Interconnection Updates for User DBs in PCS 7 CFC
- Resolving Analog Output Clamping and PV_Out Zero Errors on PCS7AnOu Blocks
- Decoding and Commanding PCS 7 SFCs via the SFC_CONTROL Interface Word
Related Tags
- CFC Editor
- Block Header
- EN / ENO
- Conditional Execution
- Visual Indicators