Das lernst du heute
- Annahmen prüfen
- Grenzen absichern
- Definierte Zustände
Ein Script, das nur im Normalfall funktioniert, hat ein Verfallsdatum. Irgendwann dreht jemand den Drehknopf für die Raumtemperatur auf 90, baut den Sensor in die Werkstatt um oder benennt eine Lampe neu. Robust heißt: Der Chip rechnet mit solchen Tagen und bleibt trotzdem vernünftig.
Annahmen aufschreiben und prüfen
Jede lbn-Zeile steckt voller Annahmen. Schreib sie einmal auf:
| Annahme | Prüfung |
|---|---|
| Das Gerät ist da und heißt so | NaN abfangen: snan, snanz oder ein Vergleich wie sgt ok t 0 |
| Der Wert liegt im sinnvollen Bereich | Plausibilität: Ratio zwischen 0 und 1, Druck nicht negativ |
| Der Wert ist eine Ganzzahl | trunc oder round, bevor er eine Stufe oder ein Modus wird |
| Der Spieler stellt Sinnvolles ein | Grenzen mit clamp |
Grenzen absichern
Alles, was von außen kommt – ein Drehknopf, ein Logic Memory, ein anderer Chip –, wird begrenzt, bevor der Chip damit rechnet:
lbn soll KNOPF HASH("Soll") Setting Average
snan tmp soll
select soll tmp SOLL_STD soll # kein Drehknopf: Standardwert
clamp soll soll SOLL_MIN SOLL_MAX # 16 bis 28 C, egal was eingestellt ist
Dasselbe gilt für Ausgaben. Wer eine Pumpenleistung berechnet, klemmt sie auf den erlaubten Bereich, statt zu hoffen, dass die Rechnung nie darüber hinausschießt.
Definierte Zustände
Jeder Ausgang bekommt in jedem Durchlauf einen Wert. Es gibt keinen Weg durch den Code, auf dem eine Heizung „irgendwie an bleibt“, weil ein Sprung die Zeile übersprungen hat. Und für den Fehlerfall gibt es genau einen sicheren Zustand, den du vorher festlegst:
| Gerät | sicherer Zustand |
|---|---|
| Heizung | aus |
| Kühlung einer Vorratskammer | an |
| Schleusentür | zu und verriegelt |
| Füllpumpe | aus |
| Warnlicht | an |
clamp schützt nicht vor NaN. Steht in r1 NaN, ergibt clamp r0 r1 16 28 wieder NaN. Erst NaN ersetzen, dann begrenzen – die Reihenfolge im Beispiel oben ist kein Zufall.
Übung
Aufgabe
Der Drehknopf „Soll“ gibt die Wunschtemperatur in °C vor. Sichere ihn ab: Fehlt er, gilt 21 °C, sonst begrenzt auf 16 bis 28 °C. Die Anzeige „SollAnzeige“ zeigt den wirksamen Sollwert. Die Heizung „Wohnraum“ geht 1 K unter dem Sollwert an und 1 K darüber aus. Fehlt der Sensor „Wohnraum“: Heizung aus, Lampe „Stoerung“ an.
Hinweise
Hinweis 1
Erst snan, dann select mit SOLL_STD, dann clamp – in dieser Reihenfolge.
Hinweis 2
Für die Hysterese den Sollwert in Kelvin umrechnen und mit add/sub die beiden Grenzen bilden.
Hinweis 3
Am Ende and an an ok, damit die Heizung bei NaN aus ist.
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