Troubleshooting Inactive CFC Block Inputs and Missing Output Updates in Test Mode

Troubleshooting Inactive CFC Block Inputs and Missing Output Updates in Test Mode

When newly inserted blocks or parameter changes in a Continuous Function Chart (CFC) fail to update outputs during online Test Mode, the most frequent causes are: the modified CFC chart was not compiled and downloaded to the AS, the block instance was placed outside the cyclic execution schedule in the Run Sequence (OB3x), the block input is being overwritten cyclically by a signal interconnection, or the block's enable input (EN) is de-asserted. To resolve this, open the CFC Run Sequence, verify that the block is scheduled in an active cyclic interrupt OB (e.g., OB35), recompile CFC changes, and perform an online download.

Table of Contents

Executive Summary

In SIMATIC PCS 7 engineering, commissioning engineers frequently modify CFC charts online—such as dropping in calculation blocks, modifying gain constants, or forcing logic inputs—only to find that outputs remain frozen at zero or initial default states in CFC Test Mode. This issue commonly leads engineers to suspect software bugs in PCS 7 or corrupt installation files. In reality, PCS 7 relies on a strict runtime execution architecture governing compile changes, execution run sequences, and parameter priority. This guide provides a systematic troubleshooting procedure to diagnose and resolve inactive block execution in CFC charts.

Architecture and Fundamental Mechanics

CFC Execution Architecture, Run Sequences, and Test Mode Mechanics:

  • The CFC Compilation and Download Pipeline:
  • Placing a block or typing an input value in the CFC editor modifies only the offline engineering database.
  • Changes take effect in the CPU only after executing CFC -> Compile -> Changes only and PLC -> Download -> Changes only.
  • The Run Sequence and Task Scheduling:
  • When a block is inserted into a chart, CFC assigns it a position in the Run Sequence (Edit -> Run Sequence).
  • Blocks must be scheduled inside a cyclic interrupt Organization Block (e.g., OB35 - 100ms, OB32 - 1000ms).
  • If a block is accidentally inserted into an inactive OB, placed after an unconditional block jump, or flagged as inactive (Phase = Inactive), the CPU will not execute its algorithm.
  • Parameter Overwriting Hierarchy:
  • If a block input is interconnected to another block output or process image tag, the interconnected value overwrites any static manual value typed in CFC on every scan cycle.
  • Enable Logic (EN / ENO):
  • Standard SIMATIC blocks evaluate the EN (Enable Input). If EN = FALSE, the block's execution code is bypassed completely, and all outputs retain their previous states.

Step-by-Step Implementation Procedure

Systematic Troubleshooting Procedure for Inactive CFC Blocks:

  1. Verify Block Task Assignment in Run Sequence:
    - In the CFC editor, click Edit -> Run Sequence (or press Ctrl+F9).
    - Locate your block instance in the tree.
    - Verify that it resides under an active cyclic OB (e.g., OB35 - 100 ms).
    - Ensure the block's task properties do not have 'Inactive' checked.
  2. Check Enable (EN) and Error Status:
    - Open the block in CFC test mode.
    - Check the EN input. If EN is connected to a condition that evaluates to 0, the block is disabled. Set EN := TRUE.
  3. Verify Interconnection Clashes:
    - Check if the input parameter you are typing has a green, blue, or red interconnection line.
    - Interconnected values overwrite manual inputs on every CPU cycle. To test manual inputs, delete the connection or switch the block to internal manual tracking if supported.
  4. Perform Compile and Download Changes:
    - Close test mode in CFC.
    - Select Chart -> Compile -> Charts as Program -> Scope: Changes only.
    - Select Target System -> Download -> Scope: Changes only.
    - Re-enter Test Mode (Debug -> Test Mode -> Watch On).
  5. Inspect CPU Operating State:
    - Confirm the CPU is in RUN-P or RUN, not STOP.
    - Open Module Information (Ctrl+D) in SIMATIC Manager; check the Diagnostic Buffer for execution errors or OB35 cycle time overruns.

Verification

To verify active block execution:
1. In CFC test mode, click the yellow 'Watch On' glasses icon.
2. Select the block input and output pins; add them to the watch list (right-click -> Watch).
3. Change the input value online; observe that the output value updates dynamically on the next cycle scan.
4. In Module Information -> Cycle Time, verify that the active cyclic OB shows steady execution without scan overruns.

Limitations and Operational Precautions

Operational precautions:
- Avoid downloading full programs ('Entire program') to a production controller during active plant operations; full downloads force the CPU into STOP mode.
- Be cautious when modifying block run sequences in safety-related charts (Safety Matrix / F-Systems), as safety groups require distinct compilation and F-signature verification.
- Typing values directly into CFC inputs while connected to live plant machinery can cause sudden mechanical movement; always verify interlocks before forcing values.

Engineer FAQ

Why does typing a value in CFC have no effect on the online output?

Because the chart changes have not been compiled and downloaded to the CPU, or the input is being overwritten cyclically by a field interconnection.

What is the Run Sequence in PCS 7 CFC?

The Run Sequence defines the exact organizational block (OB) and execution order in which each individual block algorithm is called by the CPU.

What happens if a block is not assigned to an active OB?

The block will never be executed by the CPU, leaving its outputs frozen at initial default values.

Can I compile changes only without stopping the CPU?

Yes. In SIMATIC PCS 7, 'Changes only' compilation and download can be performed with the CPU remaining in RUN mode.

What does the EN input do on a function block?

EN stands for 'Enable'. When EN is TRUE, the block code runs; when EN is FALSE, the CPU skips block execution.

Technical References

Related Articles

Related Tags

  • CFC Editor
  • Test Mode
  • Run Sequence
  • CFC Compile
  • Enable Input
20 respuestas