Das lernst du heute
- Beqzal, bnezal, bltzal, bgtzal, blezal, bgezal
- Fehlerbehandlung als Unterprogramm
Drei Zonen, drei Sensoren. Fällt einer aus, soll eine Warnlampe angehen und die Anzeige sagen, wie viele fehlen. Diese Fehlerbehandlung steht in einem Unterprogramm, und aufgerufen wird es nur, wenn wirklich etwas fehlt.
Die Familie gegen null
| Befehl | ruft auf, wenn |
|---|---|
beqzal a ziel | a = 0 |
bnezal a ziel | a ≠ 0 |
bltzal a ziel | a < 0 |
bgtzal a ziel | a > 0 |
blezal a ziel | a ≤ 0 |
bgezal a ziel | a ≥ 0 |
Wie bei den Sprüngen gegen null bildest du vorher die Abweichung oder einen Zähler. Dann reicht ein Operand.
sub abw t SOLL
bltzal abw heizbedarf # zu kalt: Heizung anfordern
Fehlerbehandlung als Unterprogramm
Erst zählst du die Fehler, dann rufst du die Behandlung einmal auf:
move fehlend 0
lbn t SENSOR HASH("Zone1") Temperature Average
snan tmp t
add fehlend fehlend tmp
# ... dasselbe fuer Zone2 und Zone3
bnezal fehlend fehler # nur wenn etwas fehlt
Das Unterprogramm fehler setzt die Störungsmeldung, und weil es hinter der Hauptschleife steht, stört es den normalen Ablauf nicht. Kommen später weitere Fehlerarten hinzu, landen sie alle im selben Block.
Grundzustand nicht vergessen
Wie gestern gilt: Ein Unterprogramm, das nicht aufgerufen wird, setzt nichts zurück. Vor den Aufrufen stehen deshalb move stoerung 0 und move heizen 0. Ist der Fehler behoben, geht die Lampe im nächsten Durchlauf von selbst aus.
bnezal ruft bei NaN auf, denn NaN ist ungleich null. Alle anderen z-Aufrufe tun es bei NaN nicht. Willst du auf einen Ausfall reagieren, ist ein eigener Zähler wie fehlend deshalb klarer als ein bnezal direkt auf den Messwert.
Zeig den Fehlerzähler auf einer Anzeige. „2“ sagt einem Spieler sofort, dass er zwei Sensoren suchen muss.
Schaubild
Übung
Aufgabe
Drei Gassensoren „Zone1“ bis „Zone3“ (andere Gassensoren gibt es im Netz nicht), Wandheizungen „Zonen“, Blinklicht „Stoerung“, LED „Fehlend“.
- Zähle die fehlenden Sensoren. Ist die Zahl nicht null, ruf mit
bnezaldas Unterprogrammfehlerauf, das die Störung setzt. Die LED zeigt die Zahl. - Bilde das Mittel aller Gassensoren minus 20 °C. Ist es negativ, ruf mit
bltzaldas Unterprogrammheizbedarfauf. - Grundzustand vor den Aufrufen: Störung aus, Heizung aus.
Hinweise
Hinweis 1
Pro Zone: lbn, snan tmp t, add fehlend fehlend tmp.
Hinweis 2
Grundzustand, dann bnezal fehlend fehler.
Hinweis 3
Mittel aller Gassensoren mit lb … Temperature Average, minus SOLL, dann bltzal abw heizbedarf.
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