Implementieren und Anwenden eines Watchdog-Timers mit DAQmx

Überblick

Der Watchdog-Timer ist Bestandteil der NI-DAQmx-API des Moduls NI cDAQ-9188XT, der NI-Datenerfassungskarten der X-Serie sowie diverser industrietauglicher Digital-I/O-Karten (DIO). Dieses Whitepaper erläutert den Zweck und die Funktionsweise eines Watchdog-Timers sowie seine funktionelle Vielfalt und die Möglichkeiten der Implementierung in eine Anwendung.

Inhalt

Was ist ein Watchdog-Timer und wie funktioniert er?


Kritische Systeme müssen meist über Redundanz oder Sicherungsmechanismen verfügen. Sollte ein Bestandteil des Systems unerwartet ausfallen, übernimmt der Sicherungsmechanismus und versetzt das System in einen bekannten sicheren Zustand. Der Watchdog-Timer bietet eine Methode, um einen solchen Mechanismus einzurichten. Er überwacht das System und stellt fest, ob es korrekt arbeitet. Ist das nicht der Fall, kann es in einen sicheren Zustand versetzt werden. Der Watchdog-Timer kann so konfiguriert werden, dass er den Ausgangskanal des Geräts übernimmt und diesen in einen bekannten sicheren Zustand versetzt, falls ein unvorhergesehenes Ereignis eintritt, z. B. sich ein Ethernet-Kabel löst oder eine Bestätigung nicht innerhalb einer programmierbaren Reaktionszeit empfangen wird.

Der Watchdog-Timer empfängt vom Gerät fortlaufend die Bestätigung, dass der Computer einwandfrei funktioniert oder das 
Gerät ordnungsgemäß mit dem Netzwerk verbunden ist. Wird diese Bestätigung nicht innerhalb einer programmierbaren Reaktionszeit empfangen, werden die sicheren Zustände auf die konfigurierten Ausgänge geschrieben. Sobald der Watchdog-Timer konfiguriert und gestartet wurde, muss die Softwareanwendung den Timer ständig zurücksetzen, um diese Reaktionszeit nicht zu überschreiten. Das Zurücksetzen bestätigt dem Gerät, dass der Computer funktioniert wie vorgesehen. Abbildung 1 zeigt den Informationsfluss zwischen Software- und Hardwareebene bei normalem Betrieb.

 

Abbildung 1: Das Flussdiagramm des Watchdog-Timers zeigt die separaten Hard- und Softwareebenen.

 

 

Tritt ein Fehler auf, startet die Hardware einen Countdown, bis der Timer abgelaufen ist. Dann werden die zuvor definierten sicheren Zustände auf die konfigurierten Ausgänge geschrieben. Damit das Gerät wieder auf Hardwarebefehle reagiert, muss die Ablaufzeit des Timers gelöscht werden. Abbildung 2 zeigt in einem Flussdiagramm, wie Hard- und Softwareebene reagieren, wenn sich der Computer aufhängt. Es ist ersichtlich, wie die Hardware weiter zählt, bis die Reaktionszeit abgelaufen ist. Danach werden die vordefinierten sicheren Zustände auf die Ausgänge geschrieben und alle weiteren Befehle an das Gerät ignoriert.

 

Abbildung 2: Das Flussdiagramm zeigt den Ablauf des Watchdog-Timers.

 

Wozu ist ein Watchdog-Timer nötig?

Der Watchdog-Timer bietet eine Methode, um die Ausgänge eines Geräts im Falle von Fehlern und Ausfällen eines Systems in einen sicheren Zustand zu versetzen. Dieser Sicherungsmechanismus schützt die an ein Gerät angebundene Hardware, wenn das System nicht mehr einwandfrei funktioniert. Ein gutes Anwendungsbeispiel ist die Überwachung eines Sägewerks. In dieser Situation könnten mit dem cDAQ-9188XT diverse Elemente innerhalb des Werks überwacht werden, etwa die Geschwindigkeit, Position und Schwingungen des Sägeblatts sowie die Temperatur des Trocknungsofens. Die NI-CompactDAQ-Hardware würde in diesem Fall fortwährend eine Nachricht an den Controller schicken, der die gesamte Maschinerie steuert, und ihn darüber informieren, dass die CompactDAQ-Hardware immer noch mit dem Netzwerk verbunden ist und die unterschiedlichen Werte überwachen kann. Verliert der cDAQ-9188XT seine Verbindung zum Netzwerk, sodass der Anwender die Werte nicht mehr überwachen kann, wird ein Digitalsignal an den Controller geschickt, der wiederum zur Sicherheit alle Maschinen abschaltet. Ohne den Watchdog-Timer als Sicherungsmechanismus hätten die Maschinen Schaden davongetragen und repariert oder gar ersetzt werden müssen. So wie diese nutzen viele Anwendungen Watchdog-Timer als Sicherungsmechanismus, um Schäden am System zu vermeiden.

 

Welche Funktionen bietet die Watchdog-Timer-API?

Innerhalb der im NI-DAQmx-Gerätetreiber integrierten Watchdog-API kann der Watchdog-Timer für die Ausgangskanäle des Geräts eingerichtet und konfiguriert werden. Die konfigurierbaren Watchdog-Optionen ändern sich in Abhängigkeit von den verwendeten Geräten, die der Watchdog-Timer unterstützt. Abbildung 3 zeigt die Watchdog-API innerhalb der Systemdesignsoftware NI LabVIEW. Folgende VIs befinden sich in der Palette:

  • DAQmx – Watchdog-Timer-Task erzeugen (VI)
  • DAQmx – Watchdog-Ablaufzustände konfigurieren (VI)
  • DAQmx – Watchdog-Task steuern (VI)
  • DAQmx – Watchdog (Eigenschaftsknoten)

Mit diesen Funktionen wird der Watchdog-Timer innerhalb einer Anwendung erstellt, eingerichtet und gesteuert.

 

Abbildung 3: Mit den VIs innerhalb der Watchdog-API wird der Watchdog-Timer erstellt, eingerichtet und gesteuert.

 

Der Watchdog-Timer kann für die Digitalausgänge von Geräten der X-Serie sowie von diversen industrietauglichen DIO-Geräten konfiguriert werden. Beim cDAQ-9188XT lässt sich der Watchdog-Timer nicht nur für die Digitalausgänge, sondern auch für Analog- und Counterausgänge konfigurieren. Neben den zusätzlichen Ausgangstypen beim cDAQ-9188XT kann der DAQmx-Watchdog-Eigenschaftsknoten auch genutzt werden, um auf eine verlorene Netzwerkverbindung zum Chassis zu reagieren. Damit läuft der Timer ab, wenn das System unerwartet ausfällt, oder wenn eine Netzwerkverbindung zwischen cDAQ-9188XT und Host ausfällt. Tabelle 1 zeigt die in der Watchdog-API enthaltenen Funktionen und die Geräte, die diese nutzen können.

 

  Vom Watchdog unterstützte Geräte
Funktion Karten der X-Serie Industrietaugliche DIO-Produkte cDAQ-9188XT
Sicherer Zustand des Digitalausgangs Niedrig/Hoch/Tristate/Unverändert Niedrig/Hoch/Tristate/Unverändert Niedrig/Hoch/Tristate/Unverändert
Sicherer Zustand des Analogausgangs (Strom) Aktueller Pegel/Unverändert
Sicherer Zustand des Analogausgangs (Spannung) Spannungspegel/Unverändert
Sicherer Zustand des Zählerausgangs Niedrig/Hoch/Unverändert
Auf Netzwerkverbindungseigenschaften reagieren Aktiviert/Deaktiviert


Tabelle: Verfügbare Funktionen für unterstützte Watchdog-Geräte

 

 

Wie wird der Watchdog-Timer mit NI-DAQmx implementiert?

Die Implementierung des Watchdog-Timers läuft genauso ab wie die Erstellung eines Tasks in NI-DAQmx. Zuerst wird mit dem VI „DAQmx – Watchdog-Timer-Task erzeugen“ ein Task für den Watchdog-Timer erstellt. Mit dem resultierenden VI wird die Referenz zum Gerät und die Reaktionszeit des Timers konfiguriert.

Sobald der Task erstellt ist, kann er mit dem VI „DAQmx – Watchdog-Ablaufzustände konfigurieren“ konfiguriert werden. Mit diesem polymorphen VI lassen sich die Ablaufzustände der Ausgangskanäle konfigurieren, die mit dem Watchdog-Timer überwacht werden. Beim Digitalausgang kann der Anwender wählen, ob der Kanal nach Ablauf des Timers „low“ oder „high“ schreibt oder in den Modus „Tri-State“ übergeht. Mit dem Watchdog-Timer-Task für cDAQ-9811XT lassen sich auch Analog- und Counterausgänge konfigurieren. Beim Analogausgang wird zwischen Strom- oder Spannungs-Task gewählt und dann der Wert eingestellt, den der Kanal nach Ablauf des Timers schreiben soll. Bei den Counterausgangskanälen sind die möglichen Zustände „hoch“, „niedrig“ oder „unverändert“. Der DAQmx-Watchdog-Eigenschaftsknoten ist ein weiteres Werkzeug zum Konfigurieren des Watchdog-Tasks. So lassen sich alle Ablaufzustände konfigurieren, Reaktionszeiten festlegen und die Option für den cDAQ-9188XT aktivieren/deaktivieren, bei welcher der Ablauf des Timers durch eine unterbrochene Netzwerkverbindung ausgelöst wird.

Sobald der Task konfiguriert ist, muss er mit dem VI „DAQmx – Start“ gestartet werden. Sobald der Watchdog-Task startet, sucht er ständig nach der Bestätigung, dass der Computer noch einwandfrei funktioniert. Um den Task über diese Tatsache zu informieren, setzt der DAQmx-Aufruf, das VI „DAQmx – Watchdog-Task steuern“ den Timer jeweils vor Ablauf der konfigurierten Reaktionszeit zurück. Abbildung 4 zeigt das Beispiel eines Watchdog-Tasks für den cDAQ-9188XT. Dieser besitzt einen Analogausgangskanal, der so konfiguriert wurde, dass der Kanal in den sicheren Zustand eintritt, wenn der Timer abläuft oder das Chassis vom Netzwerk getrennt wird.

 

Abbildung 4: Der Watchdog-Task verfügt über einen mit dem cDAQ-9188XT konfigurierten Analogkanal.

 

Läuft der Timer ab und die Kanäle werden in den sicheren Zustand versetzt, muss die Ablaufzeit für das Gerät freigegeben werden, damit es wieder Hardwarebefehle empfangen kann. Dies geschieht durch das VI „DAQmx – Watchdog-Task steuern“ (s. Abb. 5) oder das Zurücksetzen der Hardware.

 

clear expiration.png

Abbildung 5: Freigeben des Geräts nach Ablauf des Watchdog-Timers mit dem VI „DAQmx – Watchdog-Task steuern“

 

Ein Watchdog-Timer bietet einen Sicherungsmechanismus bzw. Redundanz, falls eine Systemkomponente in einer Anwendung unerwartet ausfällt. Der Watchdog-Timer ermöglicht es dem Anwender, die Ausgänge eines Geräts im Falle von Fehlern und Ausfällen eines Systems in einen sicheren Zustand zu versetzen. Werden Multifunktions-Datenerfassungskarten der X-Serie oder industrietaugliche DIO-Produkte von NI verwendet, lässt sich der Watchdog-Timer für Digitalausgangskanäle nutzen. Auf dem cDAQ-9188XT kann der Watchdog-Timer für Digital-, Analog- (Spannung oder Strom) oder Counterausgänge programmiert werden. Außerdem kann die Netzwerkverbindung überwacht und das System in einen sicheren Zustand versetzt werden, wenn sie unterbrochen wird.