Watchdog
Englisch: watchdog
Kontinuierliches Zurücksetzen durch einen Watchdog Timer.
Watchdog: ein System am Leben halten durch regelmäßige Signale
Ein System zu überwachen (watchdogging) bedeutet, seinen Watchdog-Timer kontinuierlich zurückzusetzen, bevor er eine Fehlerbedingung auslösen kann. Ein Watchdog-Timer ist ein Hardware- oder Software-Zähler, der von einem vordefinierten Wert herunterzählt, typischerweise einige hundert Millisekunden bis zu mehreren Sekunden. Wenn der Zähler Null erreicht, erzeugt der Timer eine Unterbrechung, ein Reset-Signal oder protokolliert einen Fehler. Der Trick ist, dass ein Teil deines Steuercodes diesen Zähler vor dem Ablaufen auf seinen Maximalwert zurücksetzen muss, um den Alarm zu verhindern.
In Industriemaschinen und Sicherheitssystemen erkennen Watchdog-Timer, wenn ein Steuergerät eingefroren ist, abgestürzt ist oder in einer Endlosschleife steckt. Wenn der Hauptprozessor die normalen Code-Zyklen nicht mehr ausführt, kann er kein Reset-Signal senden, der Timer läuft ab und das System erzwingt einen Neustart oder löst ein sicheres Herunterfahren aus. Das ist ein primitives, aber wirksames Schutzinstrument gegen durchgehende Firmware-Fehler. Speicherprogrammierbare Steuerungen (SPS), Motion-Controller und sicherheitszertifizierte Elektronik haben fast immer einen oder mehrere Watchdog-Timer eingebaut.
Typische Watchdog-Muster
Eine typische Embedded-Anwendung hat eine kurze Wartungsroutine, die mehrmals pro Sekunde ausgeführt wird und den Watchdog-Timer als einen ihrer ersten Schritte explizit zurückzusetzen. Wenn der Watchdog ein Reset alle 500 Millisekunden verlangt und dein Programm in einer Datenspeicherungsschleife steckenbleibt, läuft der Timer nach einer halben Sekunde ab und erzwingt eine Wiederherstellung. Manche Systeme nutzen einen Hardware-Watchdog, der unabhängig vom Prozessor arbeitet: Wenn innerhalb der Timeout-Zeit kein Signal an einem dedizierten Pin ankommt, wird ein Relais oder Reset-Leitung aktiviert. Diese sind schwerer durch fehlerhaften Code zu umgehen.
Der Begriff stammt aus dem Bild eines Wachhundes als Wächter, der bellt und zubeißt, wenn er unbeaufsichtigt bleibt. Der Timer ist der Wachhund; ihn wiederholt zurückzusetzen bedeutet, den Hund zu füttern, damit er treu und wach bleibt. Wenn du damit aufhörst, wendet er sich gegen dich. In älteren industriellen Kontexten, besonders in Sicherheitssystemen, die Standards wie ISO 13849 erfüllen, wird der Watchdog als obligatorischer Überwachungsmechanismus diskutiert, der unabhängig von der Anwendungslogik selbst läuft.
Ein versäumtes Watchdogging eines zeitkritischen Controllers kann ernst sein. Wenn ein Förderantrieb das Steuersignal verliert und kein Watchdog den Fehler erkennt, kann das Förderband weiterhin laufen oder unerwartet rucken. Viele Maschinenunfälle wurden auf einen unerkannten Prozessor-Hangup zurückgeführt. Umgekehrt verursacht ein Watchdog, der zu aggressiv ist und nach nur 10 Millisekunden resettet, wenn das System 50 Millisekunden pro Zyklus braucht, Fehlalarme und Produktionsausfallzeiten. Die richtige Timeout-Dauer zu finden, erfordert das Verständnis der tatsächlichen Zykluszeit deines Anwendungscodes und der erwarteten Zeitabweichung.