Das lernst du heute
- Sensorausfall
- Nie beide Türen offen
- Notbetrieb
Die Schleuse läuft. Dann zieht jemand beim Umbau das Datenkabel zum Sensor, oder ein Mitspieler hebelt die Außentür mit dem Brecheisen auf, während drinnen noch Luft ist. Eine Schleuse muss auch dann sicher bleiben, wenn etwas schiefgeht. Dafür bekommt sie eine Sicherheitsschicht, die unabhängig vom normalen Ablauf prüft – wie die zweite Schwelle beim Übertemperatur-Schutz.
Sensorausfall
Fehlt der Sensor, liefert lbn … Average NaN, und jeder Vergleich mit NaN ist 0. Baue deine Bedingungen deshalb so, dass 1 „darf“ heißt: „Tür darf auf“ statt „Tür muss zu“. Dann schließt ein Ausfall von selbst alles.
Zusätzlich merkst du dir den Ausfall:
snanz ok druck # 1 = Sensor liefert Werte
seqz tmp ok
or notfall notfall tmp # Ausfall merken
Kommt der Sensor kurz darauf zurück, bleibt notfall trotzdem 1. Ein kurz getrenntes Kabel soll nicht unbemerkt bleiben.
Nie beide Türen offen
Die Druckregeln schließen sich eigentlich schon aus: Die Innentür braucht eine volle, die Außentür eine leere Kammer. Darauf allein verlässt du dich nicht – ein falsch benannter Sensor oder ein Mitspieler mit Brecheisen hebelt das aus. Deshalb prüft jede Tür zusätzlich die andere:
sge tmp druck VOLL # Kammer voll?
seqz sperre aussen # Aussentuer zu?
and sperre sperre tmp # 1 = Innentuer darf auf
seqz sperre sperre # Sperre = nicht frei
sbn TUER HASH("Innentuer") Lock sperre
Lock 1 sperrt die Tür gegen Bedienung von Hand. Laut Stationpedia lässt sich eine Schleusentür nur mit dem Brecheisen öffnen, solange sie nicht gesperrt ist. Sind trotzdem beide offen, schließt der Chip sofort die Außentür – sie ist die gefährlichere.
Schreib nur, wenn du eingreifen musst. Würde der Wächter jeden Takt Open 0 auf die Außentür schreiben, ließe sie sich nie mehr öffnen. Deshalb steht das Schließen hinter einem Sprung: Nur wenn beide Türen offen sind, kommt der Chip an dieser Zeile vorbei.
Notbetrieb
Ohne Sensor gibt es nur einen sicheren Zustand:
- beide Türen zu (
Open0) und gesperrt (Lock1), - Lüftung aus,
- Warnlicht an.
Der Notbetrieb endet erst, wenn der Sensor wieder Werte liefert und jemand die Taste „Quittung“ drückt – wie die Störung aus Woche 20. Quittieren ohne Sensor geht nicht: and tmp tmp ok verhindert es.
Steht im Notbetrieb jemand in der Kammer, kommt er erst nach der Quittung heraus. Häng deshalb eine Taste „Quittung“ in die Kammer und eine in die Basis. Gleicher Name, Average liest beide: Ist eine gedrückt, ist der Wert größer als 0.
Übung
Aufgabe
Eine Handschleuse: Die Türen werden von Hand bedient, die Lüftung am Pult. Dein Chip ist der Wächter. Er liest den Sensor „Schleuse“, beide Türen und die Taste „Quittung“.
- Innentür gesperrt (
Lock1), außer die Kammer ist voll (abVOLL) und die Außentür ist zu. - Außentür gesperrt, außer die Kammer ist leer (unter
LEER) und die Innentür ist zu. - Sind trotzdem beide offen, schließt der Chip die Außentür.
- Fällt der Sensor aus (NaN): Notbetrieb. Beide Türen zu und gesperrt, Lüftung „Schleuse“ aus, Blinklicht „Warnlicht“ an.
- Der Notbetrieb bleibt, bis der Sensor wieder Werte liefert und „Quittung“ gedrückt wird. Außerhalb des Notbetriebs ist das Warnlicht aus.
Der Block für den Notbetrieb steht schon unten im Startcode.
Hinweise
Hinweis 1
Abschnitt 2: seqz tmp ok und or notfall notfall tmp. Quittung: sgtz tmp quitt, and tmp tmp ok, select notfall tmp 0 notfall. Danach bnez notfall notbetrieb.
Hinweis 2
Sperre Innentür: sge tmp druck VOLL, seqz sperre aussen, and sperre sperre tmp, seqz sperre sperre. Die Außentür genauso mit slt und innen.
Hinweis 3
Beide offen: and tmp innen aussen, dann beqz tmp normal. Nur sonst kommt sbn TUER HASH("Aussentuer") Open 0 dran.
Hinweis 4
Bei normal: das Warnlicht ausschalten und zurück zu start.
Quiz
5 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