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

Tag 316 von 365 · Experte · Monat 11: Optimierung und Fehlersuche

Robust entwerfen

Robust entwerfen: jede Annahme über Geräte und Werte prüfen, Eingaben mit clamp absichern und für jeden Fall einen definierten Zustand festlegen.

Lektion 18 Min. Woche 46

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:

AnnahmePrüfung
Das Gerät ist da und heißt soNaN abfangen: snan, snanz oder ein Vergleich wie sgt ok t 0
Der Wert liegt im sinnvollen BereichPlausibilität: Ratio zwischen 0 und 1, Druck nicht negativ
Der Wert ist eine Ganzzahltrunc oder round, bevor er eine Stufe oder ein Modus wird
Der Spieler stellt Sinnvolles einGrenzen 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ätsicherer Zustand
Heizungaus
Kühlung einer Vorratskammeran
Schleusentürzu und verriegelt
Füllpumpeaus
Warnlichtan
Achtung

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

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