Job Tasks

Job Tasks werden von TwinCAT Vision zur Parallelisierung von Funktionen verwendet. Abhängig vom verwendeten System, dessen Konfiguration, den verwendeten API-Funktionen, dem Bildinhalt sowie der Anzahl an Job Tasks, kann dies zu einer Reduzierung der Ausführungszeit führen. Die unterstützenden Funktionen sind durch den Kommentar “Can use available TwinCAT Job Tasks for executing parallel code regions.” in der API-Referenz gekennzeichnet. Über den Vision Job Pool erfolgt die Zuweisung, welche Job Tasks von TwinCAT Vision verwendet werden. Job Tasks müssen nur einmalig angelegt und konfiguriert werden; danach geschieht die Parallelisierung automatisch in der Runtime.

Job Tasks 1:

Nutzen von Job Tasks

Der tatsächliche Nutzen von Job Tasks muss im Einzelfall geprüft werden. Dieser ist abhängig vom verwendeten System, dessen Konfiguration, den verwendeten API-Funktionen, dem Bildformat, dem Bildinhalt sowie der Anzahl an Job Tasks.

Verwendung

Job Tasks können - wie andere Tasks auch - über Solution Explorer > SYSTEM > Rechtklick auf Tasks > Add new item... erstellt werden. Im Nachfolgenden Insert Task Dialog wählen Sie dann den Typ TwinCAT Job Task (Worker Task) aus.

Job Tasks 2:

Danach kann - wie bei allen anderen Tasks auch - eine entsprechende Kernzuweisung über Solution Explorer > SYSTEM > Real-Time erfolgen. Beachten Sie hierbei die Hinweise unter Einschränkungen und Empfehlungen.

Job Tasks 3:

Hinweis

Floating point exceptions

Diese Einstellung bestimmt, ob TwinCAT auf Fließkomma-Exceptions prüft oder nicht. Hier sollte die gleiche Option gewählt werden, wie in der Konfiguration der entsprechenden SPS Tasks. Ansonsten können Exceptions und Systemabbrüche auftreten.

Die Zuordnung, welche Job Tasks von TwinCAT Vision verwendet werden, erfolgt über die Parameterliste des Vision Job Pools. Der Vision Job Pool ist im Solution Explorer unterhalb des Vision Knotens zu finden, sobald dort eine Applikation angelegt wurde.

Job Tasks 4:

Priorisierung

Priorisierung des Vision Job Pool Zugriffs
Wenn mehrere parallel ausgeführte Programme sich den Vision Job Pool teilen, bekommt generell immer das Programm mit höchster Task-Priorität Zugriff auf die Job Tasks. Diese Zuordnung ist jedoch dynamisch, d. h., wenn das Programm mit höchster Priorität sich aktuell in einem sequenziellen Bearbeitungsabschnitt befindet, können niedriger priorisierte Programme die Job Tasks nutzen. Sobald ein höher priorisiertes Programm dann Aufgaben parallel bearbeiten kann, werden die Aufgaben von niedriger priorisierten Programmen verdrängt. Die Master Task des niedriger priorisierten Programmes ist aber in der Lage, eine parallelisiert begonnene Aufgabe allein zu beenden, sodass nicht auf eine erneute Verfügbarkeit von Job Tasks gewartet werden muss.

Mehrere Tasks auf einem Kern
Wie den Einschränkungen und Empfehlungen zu entnehmen ist, sollte sich eine Job Task immer allein auf einem Kern befinden. Andernfalls gelten die Task-Prioritäten.

Einschränkungen

Empfehlungen

Wenn gleichzeitig zyklische TwinCAT Tasks oder auch das Windows Betriebssystem auf dem Kern Rechenzeit beanspruchen, wird eine Analyse durch die unterschiedliche Belastung der Job Tasks erschwert.