Wird ein neues Projekt angelegt oder eine neue Task in der Taskkonfiguration ⮫ „Taskkonfiguration“ eingefügt, wird die Task mit den "Standard-Taskeinstellungen" Priorität = 15 und Zykluszeit = 10 ms angelegt. Der Watchdog ist aktiviert, auf 20 ms und Empfindlichkeit = 1 eingestellt.

Die Watchdog-Behandlung hängt auch von der Einstellung des CPU-Parameters "Missed cycle behavior" ab:

Dieser Parameter konfiguriert das Verhalten einer Echtzeit-Task, wenn die Bearbeitungszeit der Task länger als die Zykluszeit ist.
"Weiter" bedeutet, dass der verpasste Zyklus übersprungen und die Aufgabe im nächsten Zyklus rechtzeitig begonnen wird. Dies kann zu übersprungenen Aufgaben führen, aber zumindest wird die Aufgabe mit der höchsten Priorität immer rechtzeitig gestartet, wenn sie nicht übersprungen wird (= Standardwert).
"ASAP" bedeutet: Beginnen Sie mit der Aufgabe sofort, wenn möglich.
Dieser Parameter ist für alle Echtzeit-Tasks gültig (Prioritäten 0 ... 15) der SPS-Anwendung.
Beispiel 1: Standardeinstellungen der Aufgabe, tAufgabe - Bearbeitungszeit der Aufgabe in [ms]
tAufgabe |
Par. |
![]() |
6 |
Weiter |
|
12 |
ASAP |
|
12 |
Weiter |
Kein Watchdog tritt auch dann auf, wenn die Bearbeitungszeit der Task länger ist als die Zykluszeit (Fälle 2 und 3), da die Bearbeitungszeit kürzer ist als die Watchdog-Zeit.
Beispiel 2: Standard-Task-Einstellungen, tTask - Bearbeitungszeit des Tasks 24 ms, SWD - Empfindlichkeit des Watchdogs
SWD |
Par. |
![]() |
1 |
Weiter |
|
3 |
ASAP |
|
3 |
Weiter |
Watchdog tritt in allen 3 Fällen auf, da die Bearbeitungszeit der Aufgabe länger ist als die Watchdog-Zeit. Je nach Einstellung der Empfindlichkeit erfolgt der Watchdog nach 1 oder 3 Zyklen.
Neben dem Task-Watchdog gibt es den sogenannten "Omitted Cycle Watchdog" (OMCW). Der ausgelassene Zyklus-Watchdog ist nur aktiv, wenn ein Watchdog für die Task konfiguriert wurde.
Der "normale" Watchdog löst nur aus, wenn die Bearbeitungszeit des Tasks den eingestellten Watchdog-Wert überschreitet.
Der ausgelassene Zyklus-Watchdog prüft dagegen vollständig "fehlgeschlagene" Zyklen. Wenn z. B. der Scheduler ein Problem hat und der Task seinen Zyklus nie wieder ausführt, wird der "normale" Watchdog nicht ausgelöst. Deshalb prüft die Laufzeit zusätzlich, ob ein Task innerhalb der doppelten Zykluszeit oder der doppelten Watchdog-Zeit (es gilt der größere von beiden) ausgeführt wurde. Wenn nicht, wird der ausgelassene Zyklus-Watchdog ausgelöst.
Beispiel 3: Standard-Task-Einstellungen, tTask - Bearbeitungszeit des Tasks in ms, Clost - verlorene Zyklen
tAufgabe |
Clost |
![]() |
6 |
3 ... 6 |
|
12 |
3 ... 6 |
|
¥ |
2ff |
Der ausgelassene Zyklus-Watchdog erfolgt nach der doppelten Watchdog-Zeit (2 x 20 ms = 40 ms).
Beispiel 4: Zwei Aufgaben mit folgenden Einstellungen:
Aufgabe |
Priorität |
Zykluszeit [ms] |
Watchdog-Zeit [ms] |
Empfindlichkeit |
Parameter |
Bearbeitungszeit der Aufgabe [ms] |
---|---|---|---|---|---|---|
1 |
10 |
10 |
20 |
1 |
Weiter |
6 |
2 |
15 |
50 |
50 |
1 |
30 |
Aufgabe |
![]() |
1 |
|
2 |
Watchdog der Task 2 wird ausgelöst, da die Task nicht im festgelegten Task-Zyklus laufen kann.
Beispiel 5: Zwei Aufgaben mit folgenden Einstellungen
Aufgabe |
Priorität |
Zykluszeit [ms] |
Watchdog-Zeit [ms] |
Empfindlichkeit |
Parameter |
Bearbeitungszeit der Aufgabe [ms] |
---|---|---|---|---|---|---|
1 |
10 |
10 |
20 |
1 |
ASAP |
12 |
2 |
15 |
30 |
60 |
1 |
6 |
Aufgabe |
![]() |
1 |
|
2 |
Watchdog der Task 2 wird ausgelöst, da die Task nicht im definierten Taskzyklus starten kann.
Beispiel 6: Zwei Aufgaben mit folgenden Einstellungen
Aufgabe |
Priorität |
Zykluszeit [ms] |
Watchdog-Zeit [ms] |
Empfindlichkeit |
Parameter |
Bearbeitungszeit der Aufgabe [ms] |
---|---|---|---|---|---|---|
1 |
10 |
10 |
20 |
1 |
Weiter |
12 |
2 |
15 |
30 |
60 |
1 |
6 |
Aufgabe |
![]() |
1 |
|
2 |
Es wird kein Watchdog ausgelöst, aber Task 1 läuft im 20-ms-Zyklus statt des konfigurierten 10-ms-Zyklus. Die Aufgabe 2 läuft abwechselnd alle 20 ms oder 40 ms.