Watchdog-Anwendungen

Watchdogs … warum und für wen?

Jeder Anwender kennt das: Nach der Installation einer neuen Hard- oder Software, bei einer bestimmten Art von Bedienung einer bestimmten Software oder einfach nur so und ohne ersichtlichen Grund ′hängt′ sich der PC auf und lässt sich auf ′normale′ Art und Weise nicht mehr zu irgendeiner sinnvollen Tätigkeit überreden – meist hilft nur noch der Griff zum Reset-Taster oder, wenn der nicht vorhanden ist, der Griff zum EIN/AUS-Schalter des Rechners.

Was bei einem Schreibtisch-PC durchaus noch toleriert wird (vor allem von Anwendern, die die Macken ihrer Hard- und Software kennen), kann bei wichtigen, bedienerlos laufenden Rechnern wie Servern, Firewalls, Steuerrechner, POS (Point-Of-Sale), POI (Point-Of-Information) u.ä. gravierende Folgen haben … möglicherweise teure Ausfallzeiten, Ärger mit Kunden, ′Anreisen′ und unnötige Wege von Technikern, die auf den Reset-Taster drücken etc.

Mögliche Gründe für PC-Hänger sind:

  • Software-Fehler

    Fehler dieser Art können und sollten (in der Theorie) in der Planungs- und Testphase eines professionellen Einsatzes gefunden und behoben werden. Allerdings … alle Theorie ist grau – das richtige Leben ist bunt! In der Praxis kann es durchaus vorkommen, dass bestimmte Software-Fehler mit wirtschaftlich vertretbarem Aufwand eben nicht zu 100% behoben werden können! Sei es, weil gar nicht alle Softwarebestandteile des verwendeten Systems im Source verfügbar sind (fremde Treiber, DLLen, VxD- oder SYS-Dateien), weil eine umfangreiche Fehlersuche einen Projekttermin platzen lassen kann oder weil der Softwarefehler im Dschungel der gesamten auf dem Rechner laufenden Software schlicht und ergreifend nicht gefunden wurde, weil er zu selten auftrat.

  • Hardware-Fehler

    Hardware-Fehler können verschiedene Ursachen und Folgen haben … von harmlosen Bitkippern im RAM (bei speziellen Dateninhalten bei gleichzeitig speziellen Dateninhalten von Nachbarzellen) bis zum dauerhaften Totalausfall einer CPU durch Überhitzung ist alles dabei.

  • Fehler durch EMV-Einflüsse

    In diese Kategorie fallen PC-Ausfälle durch äussere Einflüsse wie Störungen der Versorgungsspannung (kurze Spannungsspitzen oder -einbrüche), durch direkte oder indirekte HF-Einstrahlung jeglicher Art.

  • Bedienungsfehler

    Bedienungsfehler sollten schon im Vorfeld ausgeschlossen werden können. Im weitesten Sinne fallen auch unerwartete Eingangswerte (z.B. Sensordaten werden zu klein/groß) u.ä. dazu. Diese Fehler sind i.d.R. durch eine gute Programmierung vermeidbar.

Bei allen oben aufgezählten Fehlerarten ′lohnt′ sich also ein Resetversuch (Reset-Taster oder Strom AUS+EIN) nach einem PC-Hänger: Bei allen Fehlern bis auf den CPU-Totalausfall durch z.B. einen defekten Ventilator oder bei permanenter Fehlfunktion des Programmes durch falsche Eingangswerte wird der PC vermutlich wieder starten und nach einer beleidigten Phase (‚der Rechner wurde nicht richtig heruntergefahren‘) die vorgesehene Aufgabe klaglos wieder aufnehmen.

… und was macht der Watchdog?

Ganz einfach: Der Watchdog drückt auf den Reset-Taster oder schaltet die Versorgungsspannung kurz ab, wenn der zu überwachende Rechner ′hängt′!

Der Watchdog bekommt von seinem PC z.B. zyklisch alle 20 Sekunden gesagt: ″Resette mich, wenn ich mich in den nächsten 30 Sekunden nicht wieder melde″ – wenn sich der PC dann wirklich nicht mehr melden sollte, gibt’s 30 Sekunden später den Watchdog-Reset.

Die Kommunikation zwischen Rechner und unseren Watchdogs erfolgt je nach Bauart über alle Schnittstellen, die der PC hergibt:
» COM- bzw. serielle Schnittstelle

» USB

» LAN
Je nach Bauform des Watchdogs wird im Fehlerfall der Reset-Taster gedrückt (über einen zum Taster parallel geschalteten Relaiskontakt), die Stromversorgung des Rechners kurz unterbrochen oder am ATX-Powerstecker ein entsprechendes Signal erzeugt.

Übersicht

Bauform Art der
Kommunikation
Rechner
Watchdog-Logik
Art des
Resets
Besonderheiten
Software
Watchdog
intern (nur bei
bestimmten
PC-Chipsätzen
vorhanden)
PCI-Bus CPU-intern nur relative einfache
Sicherheit
(siehe unten)
WatchCard-PCI Steckkarte PCI-Bus Reset-Taster (nicht mehr lieferbar)
WatchBox externe
230V-Schaltbox
* COM-Schnittstelle
* USB-Schnittstelle
Power-OFF/ON
WatchBox-wireless externe
230V-Schaltbox
* COM-Schnittstelle
* USB-Schnittstelle
Power-OFF/ON mit integriertem
GSM-Modul, d. h.
vollständig von
aussen steuerbar

Worauf sollten Sie bei der Auswahl eines Watchdogs achten?

 

Eine Watchdog-Logik wird in der Regel dort eingesetzt, wo es wirklich auf hohe Betriebssicherheit ankommt. Ein Watchdog ′just for fun′ auf einem Hobbyrechner ist weniger üblich … wenn also eine Watchdog-Logik eingesetzt wird, sollte der ″Watchdog″ seinen Namen auch verdienen:

  • Überwachung nicht irgendeiner, sondern der ″richtigen″ Aktivität des Rechners

    Die allermeisten Watchdog-Logiken werten das Schreiben oder Lesen irgendeines Wertes (also den Schreibvorgang selbst) in die überwachte Port-Adresse bereits als ″alles OK″. In einer ungewollt ausgeführten Endlosschleife mit Watchdog-Triggerung ist das aber z.B. überhaupt nicht ″OK″ – gerade eine Situation, für die die Watchdog-Logik eingebaut wurde, wird prinzipbedingt von einfachen Watchdog-Modulen NICHT erkannt (z.B. auch nicht von der Software-Lösung mithilfe chip-interner Timer!). Der Grad der Betriebssicherheit liegt hier sehr dicht an der Schutzmaßnahme „Ich-mache-nix-der-Rechner-wird-schon-nicht-hängen-bleiben“!

    Unsere Watchdogs verfahren hier anders: Bei der Triggerung des Watchdogs (Rechner: ″ich lebe noch″) wird ein zusätzlicher Parameter übergeben, d.h. ein zusätzlicher Zahlenwert wird in die Watchdog-Hardware geschrieben. Die Parameter von zwei aufeinander folgenden Triggerungen müssen sich unterscheiden! Tun sie das nicht, weil das Programm in einer Endlosschleife z.B. immer denselben Wert in den Watchdog schreibt, wird das vom Watchdog sofort erkannt – der Watchdog wird entsprechend reagieren!

  • Debugmöglichkeit im Fehlerfall

    Mit der oben beschriebenen Arbeitsweise läßt sich nach einem durch den Watchdog erzeugten Reset der ″Verursacher″ ermitteln!

    Bei jeder Triggerung des Watchdogs kann als Parameter z.B. der aktuelle Programmzustand (viele professionelle Steuerungsprogramme sind im Modell einer Zustandsmaschine aufgebaut) in den Watchdog geschrieben werden. Im Fehlerfall ″überlebt″ dieser Wert den Reset des Rechners und kann nach dem erfolgreichen Neustart des Systems wieder ausgelesen und angezeigt/protokolliert werden. Mit dieser Angabe ist der Ort der letzten erfolgreichen Triggerung im Programm ermittelt, im weiteren Verlauf d.h. in der folgenden Befehlssequenz bis zum nächsten, aber nicht mehr ausgeführten Triggerpunkt hat sich der Rechner ″aufgehängt″.

    So läßt sich z.B. ermitteln, ob ein Watchdog-Reset mit dem Einschalten eines Motors in Zuammenhang gebracht werden muss (EMV-Störungen, Versorgungsspannungs-Störungen) oder doch mehr mit dem Funktionsaufruf in einer fremdem DLL (Software-Fehler).

    Bei der WatchCard-PCI läßt sich außerdem der Grund des letzten Resets ermitteln: 1. ′Normaler′ Power-ON, 2. manueller Reset durch einen Bediener oder 3. Fehler-Reset ausgelöst durch die Karte.

  • Deaktivieren der Watchdog-Logik

    Echte Watchdogs lassen sich in der Regel NICHT mehr deaktivieren, wenn sie erst einmal gestartet worden sind! Bei der Arbeit mit einem PC kann es aber durchaus erwünscht sein, den Watchdog temporär abzuschalten, wenn z.B. der Bediener vor Ort ist und Wartungsarbeiten vornehmen, neue Programme aufspielen oder Log-Dateien sichern will. Eigentlich ein echtes Dilemma!

    Viele Watchdogs lassen sich mit einem einzigen Schreibzugriff auf eine bestimmte Portadresse deaktivieren … im Ernstfall ein offenes Scheunentor für Fehler! Wie schnell ″erwischt″ eine Amok laufende Software diese Portadresse mit einem Schreibzugriff, deaktiviert damit den Systemwatchdog und verschwindet mit einem HALT-Befehl im Nirvana? Auch in diesem Fall nutzt der dann deaktivierte Watchdog überhaupt nichts mehr …

    Auch unsere Watchdogs lassen sich deaktivieren! Allerdings nicht über einen einfachen Schreibbefehl irgendeines Wertes auf eine Port-Adresse, sondern über eine relativ komplizierte Befehlssequenz. Ein unfreiwilliges Deaktivieren des Watchdogs durch ein wild gewordenes Programm wird somit zwar theoretisch nicht zu 100% verhindert, aber extrem unwahrscheinlich!

  • Booten des Rechners

    Es kann vorkommen, das ein Rechner bereits beim Booten ‚hängen‘ bleibt. Bei einem Schreibtisch-PC kann das in der Regel mit einem Druck auf den Reset-Taster oder, wenn das Betriebssystem zumindest teilweise schon geladen ist, mit Strg-Umsch-Entf behoben werden – meist startet der Rechner beim zweiten Versuch problemlos. Bei vielen Watchdog-Logiken ist die Zeit zwischen Reset bzw. Power-ON bis zum erfolgreichen Starten des Hauptprogrammes das den Watchdog erst aktiviert, völlig unbeaufsichtigt. D.h. bleibt der Rechner während der gesamten Bootphase irgendwo „hängen“, ist der Watchdog wirkungslos, da er ja noch gar nicht aktiv ist …

    Unsere Watchdogs können erkennen, ob ein Rechner z.B. nach einem vorhergehenden Reset korrekt bootet oder eben nicht. Wenn nach einer bestimmten Zeit keine Triggerung erfolgt, versucht der Watchdog mit einem weiteren Reset den Rechner zum Leben zu erwecken. Die wiederholten Resets werden solange fortgesetzt, bis sich der Rechner meldet … in diesem Fall gibt es nämlich überhaupt nichts zu verlieren! Übrigens, alle Zeiten (Wartezeit nach Reset bzw. Power-ON, Retriggerzeit, Zeit für den ″Reset-Tastendruck″) sind in weiten Grenzen und sekundengenau einstellbar.

  • Wie wird der Rechner im Fehlerfall ″resettet″?

    1. über den Affengriff ″Ctrl-Alt-Del″ bzw. ″Strg-Alt-Entf″

      Das funktioniert solange sich der Rechner nicht ″ernsthaft″ aufgehängt hat, weil zur Durchführung dieser Reset-Art noch rudimentäre, aber funktionierende Software benötigt wird (die Tastatur muss ja noch abgefragt werden …).

    2. über den Ein/Aus-Taster (bei Rechner in ATX-Bauform, siehe nächster Punkt)

      Ziemlich identisch zu Punkt 1. Das funktioniert nur solange, wie sich der Rechner nicht ″ernsthaft″ aufgehängt hat. Die Software muss diesen Tastendruck immer noch erkennen können. Der tatsächliche Ausschaltvorgang (also ″Power off″) wird über die Software dadurch realisiert, dass die Signalleitung PS_ON zum Netzteil potentialfrei geschaltet wird … das Netzteil schaltet daraufhin alle Versorgungsspannungen aus.

    3. über den Reset-Taster

      Das funktioniert immer, denn es wird direkt der Reset-Baustein des Rechner aktiviert. Ob der Rechner aber tatsächlich nach dem 1. Reset tatsächlich wieder bootet ist nicht sicher! Schließlich könnten Komponenten auf dem Mainboard oder den Zusatzkarten von einer amoklaufenden Software so ′ver-konfiguriert′ worden sein (da die Versorgungsspannung auch im Resetzustand vorhanden war, haben manche Bauteile die alte Einstellung behalten), dass der Bootvorgang nicht klappt. Die Erfahrung hat aber gezeigt, dass Mehrfach-Resetvorgänge in wohl jedem Fall zum Erfolg führen.

    4. über einen echten Power-OFF/Power-ON

      Das Unterbrechen der 230V-Versorgungsspannung (mit einer angemessenen Pause) funktioniert natürlich immer. Dabei kann der Schalter an der Rückseite des PC benutzt werden, der Netzstecker kann aus der Steckdose gezogen werden oder es wird unsere WatchBox benutzt.

In der Regel kann ein Rechner also auf vier Arten zu einem Reset bewegt werden.
Fazit: Alle Reset-Arten, bei denen Software im Spiel ist, funktionieren im Ernstfall nicht und sollten als „Sicherheitsmaßnahme“ erst gar nicht in Erwägung gezogen werden. Am sichersten sind die Methoden ″Power-OFF / Power-ON″ und ″Reset-Taster″ in Kombination mit unserer Bootfehlerlogik, die dafür sorgt, dass ein Rechner der nicht oder nicht richtig bootet auch mehrfach „resettet“ wird.

  • Reset von resettasterlosen ″ATX-Rechnern″

    1. Das ″Einschleifen″ der Watchdog-Logik in die PS_ON-Leitung zwischen Mainboard und Netzteil erfolgt in der Regel durch das Auftrennen der PS_ON-Leitung und anschließendes Zusammenlöten + Isolieren oder Klemmenverbinden mit den Kabeln des Watchdogs. Als Alternative kann auch ein vorkonfektionierter Steckeradapter eingesetzt werden, der ein Zwischenstück in den Versorgungsleitungen zum Mainboard darstellt (mit 2 klobigen 20pol. Steckverbindern und Verlängerungsleitungen) und deshalb das Hantieren mit einem Seitenschneider im Rechner überflüssig macht.
    2. Der eigentliche Reset des Rechners wird dadurch realisiert, dass ein Relais-Kontakt auf der Watchdog-Logik (für Fachleute: das muss ein Öffner-Kontakt sein!) die PS_ON-Leitung zwischen Mainboard und Netzteil auftrennt. Die Abfolge ist also: Relais wird elektrisch eingeschaltet / Relais-Kontakt trennt die PS_ON-Leitung auf / Netzteil schaltet alle Versorgungsspannung ab. Mit dem Abschalten der gesamten Versorgungsspannung im Rechner wird nun aber auch die Watchdog-Logik selbst und damit das Relais spannungslos, das Relais fällt wieder ab und schaltet damit die PS_ON-Leitung wieder durch. Das Reset-Timing ist also alles in allem sehr ungünstig, das entspricht einem sehr sehr kurzen, gerade so eben ″durchgekommenen″ Druck auf den Reset-Taster …
    3. Für einfache Watchdog-Logiken ist das alles in der Regel kein Problem, weil gar nicht unterschieden wird, ob ein Rechnersystem gerade eingeschaltet wurde (Power-ON), ob ein manueller Reset durch den Bediener stattgefunden hat oder ein Reset durch die Watchdog-Logik selbst durch einen vorangegangenen Fehlerfall. Nicht so bei unsere intelligenten Watchdogs! Diese bleiben während der gesamten Reset-Phase ein voll funktionsfähiger Kleinrechner im PC und können deshalb auch Variablen gespeichert halten und vorhergehende Zustände unterscheiden … aber, während des Resetvorgangs benötigen sie natürlich die Versorgungsspannung.

 

In letzter Zeit ist es in Mode gekommen, den ″ATX-Rechnern ohne Reset-Taster″ eine besondere Reset-Art verordnen zu wollen: Um einen Reset auszulösen wird die Signalleitung PS_ON zwischen Mainboard und Netzteil unterbrochen … Fakt ist aber:

Spätestens beim Blick auf das Mainboard wird deutlich, dass zwar der Reset-Taster in der Frontblende des Computergehäuses fehlen mag (das drückt den Gehäusepreis um 2 Cent), aber keineswegs der Anschluss für den Reset-Taster auf dem Mainboard! Der ist vorhanden, dort könnte ein Reset-Taster angeschlossen werden – andernfalls würden die Mainboard-Hersteller ja ohne Not den Einsatz ihrer Boards in jedem „Gehäuse mit Reset-Taster“ komplett aufgeben!
Fazit: Die Resetart ″Signalleitung PS_ON″ kann man getrost vergessen, sie ist schlicht und ergreifend nicht erforderlich, zu kompliziert und zu teuer. Von billigen Exoten vielleicht einmal abgesehen (die sowieso nicht in wichtigen, bedienerlos laufenden Rechnern eingesetzt werden sollten), haben wohl alle normalen Mainboards einen richtigen Reset-Taster – Eingang! Optimal ist nach wie vor der Reset über ″Power-OFF / Power-ON″ oder über den ″Reset-Taster″ (bzw. äquivalente Mechanismen der Watchdog-Logiken und WatchBox).
Wie gesagt: Wenn schon ein Watchdog eingesetzt werden muss/soll, ist ″die Sache meistens ernst″ … wird auch nur ein einziger Hänger von einem Watchdog-″Placebo″ nicht erkannt, wird’s ärgerlich und meistens auch teuer!

Wir helfen Ihnen bei Fragen zu diesem Thema gern individuell weiter …