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

Tag 86 von 365 · Einsteiger · Monat 3: Erste Systeme

Sicher bei Ausfall

Für jedes Gerät die sichere Richtung festlegen, NaN in jeder Zeile mitdenken und nach einem Neustart in einen bekannten Zustand gehen.

Lektion 15 Min. Woche 13

Das lernst du heute

  • Sichere Richtung je Gerät festlegen
  • NaN überall abfangen
  • Zustand nach Neustart

Ein Sensor wird von einem Meteoriten getroffen, ein Kabel durchtrennt, jemand baut die falsche Anzeige ab. Irgendetwas fällt immer aus. Die Frage ist nur, was deine Anlage dann tut.

Die sichere Richtung je Gerät

Für jedes Gerät, das dein Chip schaltet, legst du vorher fest: Was ist der sichere Zustand, wenn der Chip nichts mehr weiß?

Gerätsicher bei Ausfallwarum
Heizungauslieber kalt als überhitzt
Tür zu einem gefährlichen Bereichzu und gesperrtkein ungewollter Druckverlust
Pumpe in einen Tankauskein Überdruck
Außenlichtanein dunkler Weg ist gefährlicher als ein paar Watt
Warnlampeanein Ausfall ist selbst eine Meldung wert

Es gibt keine allgemeine Regel wie „bei Ausfall alles aus“. Ein Alarm, der bei einem Ausfall ausgeht, ist nutzlos.

NaN überall abfangen

Jeder Wert, den du mit Average liest, kann NaN werden. Dabei hilft eine Eigenschaft: Jeder Vergleich mit NaN ist falsch. Formulierst du eine Bedingung so, dass „wahr“ die unsichere Richtung ist, landet NaN von selbst im sicheren Zustand:

slt heizen temp UNTEN    # NaN: 0 = Heizung aus, sicher
slt warnen temp KALT     # NaN: 0 = keine Warnung, falsch

Die zweite Zeile kippt bei einem Ausfall in die falsche Richtung. Dort brauchst du ein ausdrückliches snan:

snan fehlt temp
or warnen warnen fehlt   # kein Sensor: Warnung an

Geh jede Zeile durch, die einen Messwert benutzt, und frag: Was passiert hier bei NaN?

Zustand nach einem Neustart

Im Spiel behält der Chip seine Register, wenn du neuen Code aufspielst oder ihn umsteckst. Nur sp und die Programmzeile beginnen wieder bei 0. Ein Zustandsregister kann also mitten in einem alten Schritt stehen. Darum gehört vor das Start-Label ein Block, der alles in einen bekannten Zustand bringt:

move schritt 0       # Ablauf in Ruhe
move heizen 0        # Heizung aus
start:
yield
Achtung

Der Simulator dieser Seite beginnt jeden Test mit Nullen. Ein fehlendes move vor dem Start-Label fällt hier also nicht auf, im Spiel aber sehr wohl.

Tipp

Teste jede Steuerung mit einem abgebauten Sensor. In den Übungen der Akademie heißt dieser Test meist „Sensor fällt aus“.

Übung

Aufgabe

Der Chip der Werkstatt funktioniert im Normalbetrieb, ist aber nicht ausfallsicher. Mach ihn sicher:

  • Heizung „Werkstattheizung“: Hysterese 18 bis 20 °C, bei Ausfall aus (das stimmt schon)
  • Blinklicht „Werkstattwarnung“: an unter 10 °C und bei Sensorausfall
  • Tür „Werkstatttuer“: Lock = 1 unter 80 kPa und bei Sensorausfall

Der Gassensor heißt „Werkstatt“.

Hinweise

Hinweis 1

Ein snan fehlt temp direkt nach dem Lesen reicht für beide Fälle.

Hinweis 2

Warnung: or warnen warnen fehlt.

Hinweis 3

Tür: or sperren sperren fehlt.

Quiz

4 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