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ät | sicher bei Ausfall | warum |
|---|---|---|
| Heizung | aus | lieber kalt als überhitzt |
| Tür zu einem gefährlichen Bereich | zu und gesperrt | kein ungewollter Druckverlust |
| Pumpe in einen Tank | aus | kein Überdruck |
| Außenlicht | an | ein dunkler Weg ist gefährlicher als ein paar Watt |
| Warnlampe | an | ein 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
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.
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