Tab: Task Groups Permalink

Object: “Task Configuration”

You define task groups on the “Task Groups” tab. Task groups can be distributed over the individual processor cores in ⮫ Multicore systems. The ⮫ tasks of a task group are bound to the processor cores according to the strategy defined in the “Core” field.

“Add Group”

The button adds a new task group named ‎NewGroup_<no>‎.

“Remove Group”

Deletes the selected task group.

“Group Name”

The name can be changed by double-clicking in the field.

“Core”

  • “Free floating”: All IEC tasks in the task group are dynamically distributed to the individual processor cores by the operating system via load balancing. This means that the tasks usually very often switch the processor cores where they are executed. The user has no control over this.

    We recommend this setting for most applications because the load is automatically distributed by the operating system.

  • “Sequentially pinned”: All IEC tasks of the task group are permanently bound to different processor cores. If there are fewer processor cores than tasks, then the tasks are bound to the individual processor cores, starting with Core1 and continuing with Core2, Core3, etc. In the event of an overflow, the process is continued with Core0, Core, etc. The user has no control over this.

  • “Fixed pinned”: All IEC tasks of the task group are permanently bound to a processor core. By default, the runtime determines the processor core. Core1 is usually used.

    If there are several task groups with the Fixed pinned setting, then each task group is bound to a different processor core. This usually starts with Core1.

  • “<fixed core number>” all IEC tasks of the task group are permanently bound to a defined processor core. If the processor core does not exist on the controller, then an error is generated during the download.

Note: The Sequentially pinned, Fixed pinned, and <fixed core number> settings can be helpful to obtain more deterministic jitter times. This is because these settings are not influenced by the dynamic distribution of tasks to the individual cores at runtime.

However, this prevents the operating system from distributing the load across the individual processor cores.

Therefore, we recommend these settings only after testing them first. This test should demonstrate that these settings allow for a significantly improved real-time behavior.