stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 291

Tag 291 von 365 · Experte · Monat 10: Bits und Daten

Watchdog: lebt der andere Chip?

Ein Watchdog prüft, ob ein anderer Chip noch läuft: Lebenszeichen zählen, Stillstand nach einer Geduldszeit erkennen, die NaN-Falle beim Vergleichen und Notbetrieb übernehmen.

Lektion 18 Min. Woche 42

Das lernst du heute

  • Lebenszeichen zählen
  • Ausfall erkennen
  • Notbetrieb übernehmen

Ein Chip, der über das Programmende läuft, ist still und tot – ohne Fehlermeldung. Ein Chip, den jemand herausnimmt, auch. Hängt an ihm die Heizung des Wohnmoduls, merkst du es erst, wenn es kalt wird. Ein zweiter Chip kann aufpassen: der Watchdog.

Lebenszeichen

Der überwachte Chip zählt in jeder Hauptschleife einen Puls hoch und schreibt ihn in einen Logikspeicher:

add puls puls 1
sbn SPEICHER HASH("Puls") Setting puls     # Lebenszeichen

Solange er läuft, ändert sich der Wert jeden Takt. Bleibt er stehen, ist der Chip angehalten, hängt in einer Schleife ohne diesen Code oder ist weg.

Ausfall erkennen

Der Watchdog vergleicht den Puls mit dem letzten Wert. Gleich: Ein Zähler läuft hoch. Anders: Zähler auf 0. Erst wenn der Zähler die Geduld überschreitet, gilt der Chip als ausgefallen – ein einzelner verpasster Takt ist noch kein Ausfall.

seq tmp puls alt
add still still tmp
mul still still tmp
move alt puls
sgt tot still GEDULD

mul still still tmp ist der Trick aus der Bewässerung: Ist tmp 0, fällt der Zähler auf 0.

Achtung

NaN ist nie gleich NaN, auch nicht sich selbst. Fehlt der Pulsspeicher, ergibt seq tmp puls alt jeden Takt 0, der Zähler bleibt bei 0 – und der Watchdog meldet nie einen Ausfall. Ein eigenes snan ist deshalb Pflicht.

Notbetrieb übernehmen

Meldet der Watchdog einen Ausfall, darf er nicht nur warnen. Er übernimmt das Nötigste selbst: eine Notheizung, eine Lüftung, ein Ventil zu. Kommt der Puls zurück, gibt er wieder ab.

Wähle die Geduld passend zum überwachten Chip. Ein Chip mit sleep 5 pulst nur alle zehn Takte – eine Geduld von 10 wäre zu knapp.

Tipp

Watchdogs funktionieren in beide Richtungen: Zwei Chips können sich gegenseitig überwachen. Fällt einer aus, übernimmt der andere – das ist der Grundgedanke jeder Redundanz.

Schaubild

Takte und yield auf einer Zeitleiste Takt 0 · 0,0 s Takt 1 · 0,5 s Takt 2 · 1,0 s Takt 3 · 1,5 s 5 Befehle yield 5 Befehle yield 5 Befehle yield 128 Befehle ohne yield: Limit Gerätewerte ändern sich nur zwischen zwei Takten.
Der Puls muss sich ändern. Bleibt er länger als die Geduldszeit gleich, gilt der Chip als ausgefallen.

Übung

Aufgabe

Schreibe den Watchdog für den Puls im Speicher „Puls“:

  • bleibt der Puls länger als GEDULD = 10 Takte gleich, gilt der Chip als ausgefallen
  • fehlt der Speicher, sofort ausgefallen
  • bei Ausfall: Lampe „Ausfall“ an und Heizung „Notheizung“ an
  • kommt der Puls zurück, beides wieder aus

Hinweise

Hinweis 1

seq tmp puls alt, add still still tmp, mul still still tmp, dann move alt puls.

Hinweis 2

Ausfall: sgt tot still GEDULD.

Hinweis 3

Dazu snan tmp puls und or tot tot tmp.

Quiz

3 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Übung im Simulator bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall