Objekt: „Task“
„Priorität“ |
Mögliche Werte: 0..31, wobei 0 die höchste Priorität darstellt |
„Taskgruppe“ |
Zugeordnete Taskgruppe. Diese Zuordnung wird im Gerätebaum in Klammern angezeigt. Taskgruppen können bei Multicore bestimmten Prozessorkernen zugewiesen werden. Die Taskgruppe wird im Gerätebaum hinter der Task in Klammern angezeigt. |
„Zyklisch“ |
CODESYS arbeitet die Task zyklisch ab. Die Zykluszeit der Task ist im Feld „Intervall“ definiert. |
„Ereignis“ |
CODESYS startet die Abarbeitung der Task, sobald die globale Variable, die im Eingabefeld „Ereignis“ definiert ist, eine steigende Flanke erhält. |
„Freilaufend“ |
CODESYS startet die Abarbeitung der Task bei Programmstart und am Ende eines Durchlaufs automatisch neu in einer fortlaufenden Schleife. Es ist keine Zykluszeit definiert. |
„Status“ |
CODESYS startet die Abarbeitung der Task, sobald die Variable, die im Eingabefeld „Ereignis“ definiert ist, den booleschen Wert |
„Extern“ |
CODESYS startet die Abarbeitung der Task, sobald das Ereignis, das im Feld „Ereignis“ definiert ist, eintritt. Es hängt vom Zielsystem ab, welche Ereignisse unterstützt und in der Auswahlliste angeboten werden. (Nicht zu verwechseln mit Systemereignissen). |
„Intervall“ |
Taskzykluszeit Obligatorisch für den Typ „Zyklisch“ oder „Externes Ereignis“, wenn das Ereignis eine Zeitangabe erfordert. Zeitspanne, nach der die Task neu gestartet werden soll. Wenn Sie hier eine Zahl angeben, können Sie in der Auswahlliste hinter dem Eingabefeld die gewünschte Einheit auswählen. Wenn Sie die Einheit „ms“ wählen, wird eine Eingabe automatisch im TIME-Format dargestellt (zum Beispiel Abweichungen der Task von dieser gewünschten Taskzykluszeit werden zur Laufzeit als periodischer Jitter auf der Registerkarte „Überwachung“ angezeigt. |




HINWEIS

Für Feldbusse ist ein festes Zyklusraster nötig, um ein determiniertes Verhalten sicherzustellen. Deshalb sollten Sie für eine Buszyklustask nicht den „Typ“ „Freilaufend“ verwenden.




HINWEIS

Beachten Sie den folgenden Unterschied zwischen den Abarbeitungstypen „Status “ und „Ereignis“: Wenn das angegebene Ereignis den Wert TRUE
hat, dann ist die Startbedingung einer Task vom Typ „Status“ erfüllt. Im Gegensatz dazu verlangt der Start einer Task vom Typ „Ereignis“ einen Wechsel des Ereignisses von FALSE
auf TRUE
. Wenn die Abtastrate des Task-Schedulers zu niedrig ist, können steigende Flanken
des Ereignisses unbemerkt bleiben.




HINWEIS

Beim Setzen der Taskzykluszeit müssen Sie berücksichtigen, welches Bussystem gerade verwendet wird: Beispielsweise muss die Taskzykluszeit auf einem CAN-Bus-System zur aktuell gesetzten Baudrate und der Anzahl der auf dem Bus verwendeten Frames passen. Außerdem sollten die für Heartbeat, Nodeguarding und Sync gesetzten Zeiten immer ein Vielfaches der Taskzykluszeit sein. Ansonsten können CAN-Frames verloren gehen.
Definiert die Zeitüberwachung für eine Task. Wenn das Zielsystem eine erweiterte Watchdog-Konfiguration unterstützt, sind möglicherweise folgende Einstellungen in der Gerätebeschreibung vordefiniert:
Die hier standardmäßig verwendeten Watchdog-Einstellungen sind geräteabhängig. |
|
„Aktivieren“ |
Watchdog ist aktiv. Wenn die Task die gerade gesetzte „Zeit“ des Watchdogs überschreitet, wird die Task mit Fehlerstatus (Ausnahme) angehalten. Dabei werden auch die Applikation, in deren Task der Watchdog-Fehler passiert ist, sowie deren Kindapplikationen gestoppt. Damit werden alle Tasks dieser betroffenen Applikationen ebenfalls gestoppt. Dabei wird auch die aktuell angegebene „Empfindlichkeit “ mit eingerechnet. Wenn Sie in den „SPS-Einstellungen“ der Steuerung die Option „E/As aktualisieren“ aktiviert haben, setzt CODESYS die Ausgänge auf die definierten Standardwerte zurück. Mögliche Fälle:
|
„Zeit (beispielsweise t#200ms)“ |
Watchdog-Zeit Definiert zusammen mit der „Empfindlichkeit “ die Zeitüberwachung für eine Task, wie bei „Aktivieren“ beschrieben. Abhängig vom Zielsystem muss die Überwachungszeitspanne möglicherweise in Prozent des Taskintervalls angegeben werden. In diesem Fall ist die Auswahlliste für die Einheit inaktiv dargestellt und zeigt „%“ an. |
„Empfindlichkeit“ |
Zahl Definiert zusammen mit der Watchdog-Zeit die Zeitüberwachung für eine Task, wie bei „Aktivieren“ beschrieben. |
Sie können einen Watchdog mit Hilfe der Funktionen der Bibliothek CmpIecTask.library
für bestimmte SPS-Zyklen abschalten. Dies ist für Zyklen nützlich, die aufgrund
von Initialisierungen mehr Zeit beanspruchen können.
Beispiel
Deaktivieren/Reaktivieren des Watchdogs:
hIecTask := RTS_IEC_HANDLE //Declaration of the variable hIecTask hIecTask := IecTaskGetCurrent(0); IecTaskDisableWatchdog(hIecTask); // Watchdog disabled ... IecTaskEnableWatchdog(hIecTask); Watchdog enabled
Auflistung der Programmbausteine („POU“), die die Task aufruft Die Aufrufreihenfolge entspricht der Anordnung der Bausteine in der Liste von oben nach unten. |
|
„Aufruf hinzufügen“ |
Definiert einen neuen Programmaufruf |
„ Baustein öffnen“ |
Öffnet den selektierten Baustein |
„Nach oben“ „Nach unten“ |
Änderung der Aufrufreihenfolge |