How to Resolve PCS 7 CFC Compilation Warnings and Prevent CPU Download Faults
When compiling newly added Continuous Function Charts (CFC) in SIMATIC PCS 7, warnings indicating blocks inserted into OB1 or unoptimized run sequences will not block compilation or prevent downloading changes to the Automation System (AS). However, executing process control blocks within the non-deterministic background organization block OB1 degrades algorithm timing, causes jitter in PID loops and pulse timers, and risks controller cycle overruns. To prevent runtime anomalies, you must adjust the predecessor insertion pointer in the CFC Run Sequence editor, move process blocks into deterministic cyclic interrupt tasks (OB30 through OB38), and resolve open text references before downloading.
Table of Contents
- Understanding CFC Compiler Warnings vs. Errors
- Risks of Executing Process Blocks in Organization Block 1 (OB1)
- Method: Reorganizing Run Sequences and Setting Predecessors
- Handling Open Text References and Cross-Chart Links
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
Understanding CFC Compiler Warnings vs. Errors
The SIMATIC PCS 7 CFC compiler evaluates chart logic, task assignments, and signal interconnections before generating executable machine code (SCL/machine blocks). When compilation completes, the compiler generates a log categorizing findings into Errors and Warnings:
- Compilation Errors (Red): Severe structural faults such as invalid data type interconnections, missing block types, or exceeded local data boundaries. Compilation is aborted; executable code is not generated, and downloading to the CPU is blocked.
- Compilation Warnings (Yellow): Informational flags highlighting non-optimal configurations, unlinked chart inputs (open text references), or insertion of blocks into unexpected execution groups. Machine code generation succeeds, and the changes can be downloaded to the CPU in RUN mode.
While warnings permit compilation to proceed with 0 Errors, N Warnings, ignoring them frequently introduces insidious operational flaws into live process plants.
Risks of Executing Process Blocks in Organization Block 1 (OB1)
A common warning generated when adding new charts is: Block was inserted into task OB1 without cyclic execution.
In standard SIMATIC S7-400 and AS 410 execution models, organization blocks serve distinct scheduling roles:
1. OB1 (Cyclic Execution): Runs as background processing during idle CPU cycles. Its cycle execution duration fluctuates continuously based on communication load, alarm bursts, and higher-priority interrupts.
2. OB30 to OB38 (Cyclic Interrupts): Execute at precise, deterministic millisecond intervals (for example, OB35 runs at 100 ms; OB32 at 1,000 ms).
Process control libraries (such as the SIMATIC PCS 7 Advanced Process Library - APL) calculate integral and derivative actions based on fixed sample time parameters (SAMPLE_T). If an analog monitor (MonAnL) or PID controller (PIDConL) executes in OB1, its actual execution interval varies widely from the configured SAMPLE_T. This discrepancy causes timing calculations to drift, filters to distort process variables, and alarms to delay.
Method: Reorganizing Run Sequences and Setting Predecessors
To eliminate OB1 warnings and ensure newly added blocks run deterministically:
- In SIMATIC Manager, open the target CFC chart.
- Open the Run Sequence Editor by selecting Edit > Run Sequence (or clicking the Run Sequence icon on the toolbar).
- In the left navigation pane, expand the execution tree to review task assignments. Locate blocks placed erroneously under
OB1. - Determine the appropriate cyclic interrupt task based on control speed:
- Fast closed loops (pressure, flow): OB35 (typically 100 ms).
- Standard control loops and motor/valve blocks: OB34 (typically 200 ms) or OB35.
- Slow monitoring and totalizers: OB32 (typically 1,000 ms). - Drag and drop the runtime group or individual block from
OB1into the selected cyclic interrupt task. - Right-click the newly positioned group and select Predecessor for Insertion Position. This ensures that any subsequent blocks placed in this chart automatically inherit the deterministic OB assignment.
- Recompile the CFC chart via Chart > Compile > Objects selecting Changes Only. Confirm that the warning count drops to zero.
Handling Open Text References and Cross-Chart Links
Another prevalent warning during chart development is: Open text reference exists for interconnection.
This occurs when an input is interconnected to a chart or parameter that does not yet exist, or when an interconnected partner chart was deleted or renamed. The CFC editor preserves the textual target string (for example, Plant1/Unit2/Valve1.Out) as an unlinked reference.
To resolve open text references:
1. Double-click the warning line in the CFC compilation log. The editor jumps directly to the flagged block pin.
2. If the partner chart has been created, right-click the open text reference pin and select Close Text Reference. The compiler resolves the textual name to the actual block pin.
3. If the interconnection is obsolete, select the pin and delete the textual reference.
4. If the destination chart resides in another AS within the multiproject, create a cross-AS interconnection or configure an S7 communication block pair (BSEND/BRCV).
Verification
To verify that the CFC compilation clean-up succeeded:
- In the CFC editor, select Chart > Compile > Charts as Program.
- Select Scope: Changes only and click OK.
- Inspect the compilation log:
- Ensure the summary reads:0 Errors, 0 Warnings. - In SIMATIC Manager, open the AS CPU online view and select PLC > Module Information > Performance Data.
- Verify that execution times for OB30 through OB38 remain within 50% of their configured cycle times, ensuring adequate headroom for interrupt processing.
Limitations and Operational Precautions
- CPU Scan Overload: Moving dozens of newly added blocks into a high-frequency cyclic task (such as OB35 or OB36) without verifying CPU capacity can trigger CPU scan cycle overruns and cause the controller to enter STOP mode.
- Online Download Boundaries: In PCS 7, reorganizing run sequences across different organization blocks is fully supported in online change downloads (CiR). However, modifying standard block execution phases across OB boundaries should be scheduled during stable plant operation.
- Runtime Group Execution Order: Ensure driver blocks (
Pcs7AnIn,Pcs7DiIn) execute before technological blocks (MotL,VlvL), and output drivers execute last within the same task.
Engineer FAQ
Can I safely download a CFC program that contains compiler warnings?
Yes, compilation warnings do not inhibit code generation or block download. However, you must inspect every warning to verify that it does not represent an unlinked critical interlock or non-deterministic task assignment.
Why did PCS 7 place my newly created chart blocks into OB1 by default?
If the predecessor insertion pointer was set to a block in OB1 (or cleared), the CFC editor assigns newly instantiated blocks to OB1 by default. Setting the predecessor pointer inside a cyclic interrupt task ensures future blocks inherit that task.
Does changing a block run sequence require an Automation System restart?
No. PCS 7 supports downloading run sequence adjustments online via Download Changes without stopping the CPU.
Technical References
- Siemens Industry Online Support Entry ID 109742323: SIMATIC Process Control System PCS 7 CFC for S7
- Siemens Industry Online Support Entry ID 109809264: SIMATIC PCS 7 Advanced Process Library (APL) Function Manual
- SIMATIC PCS 7 Engineering System Manual (Document No. A5E00278782)
Related Articles
- https://industrialautomation.net/search?query=pcs7+cfc+compilation+warnings
- https://industrialautomation.net/search?query=ob1+cyclic+interrupt+timing+jitter
- https://industrialautomation.net/search?query=pcs7+run+sequence+editor+predecessor
Related Tags
- https://industrialautomation.net/search?query=simatic+pcs7
- https://industrialautomation.net/search?query=cfc+engineering
- https://industrialautomation.net/search?query=run+sequence
- https://industrialautomation.net/search?query=s7-400