Configuring Installed Runtime Group Limits and Resolving Execution Threshold Warnings in SIMATIC PCS 7

Configuring Installed Runtime Group Limits and Resolving Execution Threshold Warnings in SIMATIC PCS 7

In SIMATIC PCS 7, compiler warnings stating 'The limit of 50 installed blocks per runtime group is exceeded' are diagnostic advisories rather than fatal errors. The threshold of 50 blocks was established in early PCS 7 versions for legacy CPUs and is overly conservative for modern S7-400 and CPU 410 processors. To resolve this warning, open any CFC chart, select 'Options > Customize > Compile/Download', and increase the 'Installed blocks per runtime group' warning limit from 50 to 100 or 150. This silences nuisance compiler warnings while allowing large continuous charts to compile cleanly without code changes.

Table of Contents

Runtime Group Architecture and Cyclic Execution in CFC

In SIMATIC PCS 7, when an engineer places function blocks into Continuous Function Charts (CFC), the blocks do not execute in random order. The CFC editor organizes blocks into Runtime Groups assigned to specific Organization Blocks (OB30 to OB38 for cyclic interrupts, OB100 for startup, OB1 for free cycle).

A runtime group acts as an execution container that can be dynamically enabled, disabled, or conditionally executed based on a Boolean runtime attribute (EN). When CFC compiles, each runtime group is translated into an internal sub-routine call within the target OB.

Why the 50-Block Warning Threshold Exists

In early versions of SIMATIC PCS 7 (V4.x and V5.x), S7-400 processors possessed slower clock speeds (e.g., 20 MHz to 66 MHz) and limited internal local data stacks. To prevent an individual runtime group from monopolizing CPU execution time and causing cycle overruns, Siemens instituted a default warning threshold: 50 blocks per runtime group.

In modern PCS 7 architectures (V7.x, V8.x, V9.x), high-performance CPUs (like CPU 416-3, CPU 417-4, and CPU 410-5H) execute hundreds of blocks per millisecond. Complex motor templates, multi-stage valves, and burner management charts easily exceed 50 blocks in a single chart runtime group. While the program functions perfectly, the compiler issues repetitive warnings during every compile.

Configuring Warning Limits in CFC Customization Settings

To adjust or eliminate the warning threshold in SIMATIC PCS 7:

  1. Open CFC Editor: Open any CFC chart within the target AS project.
  2. Open Compilation Settings: Select Options > Customize > Compile/Download.
  3. Locate Warning Limits: In the dialog, locate the section Warning limits.
  4. Increase Limit: Find the parameter Installed blocks per runtime group. The default value is 50. Increase this threshold to 100, 150, or 200 depending on the complexity of your largest typical chart templates.
  5. Save Configuration: Click OK. The new threshold is stored in the project database and applies to all subsequent CFC compilations.

Managing Runtime Group Segmentation to Prevent Cycle Jitter

While increasing the threshold silences compiler warnings, process engineers must balance convenience with deterministic execution:

  1. Avoid Overly Massive Runtime Groups: Placing 500+ blocks into a single runtime group scheduled in a high-speed OB (e.g., OB35 at 100 ms) can create execution bursts that trigger OB request errors (OB80).

  2. Use Chart-Based Runtime Groups: Ensure the option 'Create chart-based runtime groups' is checked. This ensures that each CFC chart maintains its own distinct runtime group rather than pooling unrelated blocks into massive global groups.

  3. Segment by Sampling Frequency: Fast interlocks belong in OB35 (100 ms). Standard analog monitoring and PID controls should be partitioned into OB33 (500 ms) or OB32 (1000 ms).

Runtime Group Parameter Settings Matrix

The following table summarizes CFC compile customization parameters and recommended operational ranges:

Configuration ParameterDefault Factory ValueRecommended Industrial SettingOperational Impact of IncreaseBlocks per Runtime Group50 Blocks100 to 150 BlocksSuppresses nuisance compiler warnings on large chartsMaximum Nesting Depth8 Levels8 Levels (Keep default)Prevents local data stack overflow in S7-400Create Chart-Based GroupsEnabledEnabledKeeps block execution organized cleanly per CFC chartReserved FC Numbers1 to 1140Up to 1800 (if needed)Allocates higher block number capacity for large projectsReserved DB Numbers1 to 1000Up to 3000 (if needed)Allocates expanded instance DB range for large projects

Verification

Verify the runtime group configuration through the following procedure:

  1. Open CFC and execute Charts > Compile > Changes only.
  2. Confirm that the compilation log finishes with '0 Errors' and the previous 'Limit of 50 blocks exceeded' warning is gone.
  3. Open the Runtime Editor in CFC (Options > Customize > Runtime Groups or press Ctrl+R). Expand OB35/OB33 and verify that runtime groups are sequenced logically according to signal flow (upstream transmitters before downstream controllers).
  4. Check CPU scan time in Module Information > Cycle Time. Confirm that the average cycle time remains stable well below the configured watchdog limits.

Limitations and Operational Precautions

Consider these operational rules when managing runtime groups:

  1. Never Disable Cyclic Alarms: Raising the warning threshold does not increase the CPU's physical computing power; always verify total cycle time in the CPU diagnostic buffer.

  2. Delta Download Compatibility: Modifying warning thresholds in 'Options > Customize > Compile/Download' does not invalidate Delta Download, allowing changes to be applied safely on a running plant.

  3. Execution Order Integrity: When moving blocks between runtime groups manually, always ensure that analog channel drivers execute before control blocks, which in turn execute before output driver blocks.

Engineer FAQ

How do I view the number of blocks currently installed in a runtime group?

In CFC, open the Runtime Editor (Options > Runtime Groups). The status bar or properties of each group displays the total block count.

What is the impact of placing too many blocks in OB35?

OB35 executes every 100 ms. If too many blocks are assigned, the net execution time exceeds 100 ms, causing cyclic interrupt overruns (OB request error / OB80) and elevating CPU load.

Can I disable an entire runtime group during runtime from logic?

Yes, by connecting a Boolean variable to the EN input of the runtime group in the CFC Runtime Editor.

Technical References

Related Articles

Related Tags

  • Runtime Groups
  • CFC Compilation
  • Warning Limits
  • CPU 416-3
  • Cycle Time Tuning
  • Task Scheduling
6 respuestas