Understanding Block Header Question Mark (?) and EN Enable Flags in PCS 7 CFC

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

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:

Header SymbolVisual AppearanceFunctional MeaningOperating StatusQuestion Mark (?)Yellow or white ? in block headerBlock execution is conditional (EN is interconnected)Normal design indicator (Not a fault)Exclamation Mark (!)Red ! in block header (Online mode)Block is currently not executed (EN = 0)Block bypassed in current cycleYellow TriangleYellow warning badgeBlock type version mismatch or library warningRequires block type updateBlue BoxSmall blue square on headerBlock has OCM attributes enabled for WinCC OS compileBlock tags compiled to WinCCNo Symbol (Clean)Standard block colorBlock executes unconditionally every cycle (EN = 1)Default continuous execution

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):

  1. The compiler detects that block execution is no longer constant.
  2. 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.
  3. 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

Related Articles

Related Tags

  • CFC Editor
  • Block Header
  • EN / ENO
  • Conditional Execution
  • Visual Indicators
6 respuestas