Das lernst du heute
- Schritte Schließen–Pumpen–Öffnen
- Rückweg
- Abbruch
Bisher rechnet die Schleuse jeden Takt neu, welche Tür auf darf. Für einen Durchgang auf Knopfdruck willst du mehr wissen: Ist die Innentür schon zu? Läuft das Abpumpen noch? Kommt gerade jemand herein? Dafür nimmst du die Schrittkette aus Woche 20. Der aktuelle Schritt steht als Nummer in einem Register.
Die Schritte
| Schritt | Name | Innentür | Außentür | Lüftung | weiter, wenn |
|---|---|---|---|---|---|
| 0 | Bereit innen | auf | zu | aus | Taste „Zyklus“ gedrückt → 1 |
| 1 | Innentür schließen | zu | zu | aus | Innentür meldet zu → 2 |
| 2 | Abpumpen | zu | zu | saugt | Druck unter 1 kPa → 3 |
| 3 | Bereit außen | zu | auf | aus | Taste „Zyklus“ gedrückt → 4 |
| 4 | Außentür schließen | zu | zu | aus | Außentür meldet zu → 5 |
| 5 | Füllen | zu | zu | bläst | Druck ab 100 kPa → 0 |
Schritt 0 bis 2 sind der Weg nach draußen, 3 bis 5 der Rückweg. Nach Schritt 5 beginnt die Kette wieder bei 0.
Übergänge
Zum richtigen Abschnitt kommst du über die Vergleichskette: beq schritt 2 abpumpen und so weiter. Jeder Abschnitt prüft nur seine eigene Weiter-Bedingung. Ist sie erfüllt, zählt er eins weiter:
abpumpen:
slt tmp druck LEER # 1 = leer
add schritt schritt tmp # dann weiter zu 3
j ausgabe
Eine Taste gilt als gedrückt, wenn Activate größer als 0 ist. sgtz tmp zyklus liefert dann 1 – und bei NaN 0.
Ausgaben nur aus dem Schritt
Türen und Lüftung schreibt ein einziger Abschnitt am Ende, und er schaut nur auf den Schritt:
ausgabe:
seq tmp schritt 0
sbn TUER HASH("Innentuer") Open tmp
seq tmp schritt 3
sbn TUER HASH("Aussentuer") Open tmp
Damit gibt es keine Mischzustände: Die Innentür ist genau in Schritt 0 offen, die Außentür genau in Schritt 3 – nie beide. Die Lüftung läuft in Schritt 2 und 5; Mode ist in Schritt 2 gleich 1 (Vent.Inward), sonst 0.
Abbruch
Wer in der Kammer steht und es sich anders überlegt, drückt „Abbruch“. In Schritt 1 und 2 springt die Kette dann auf Schritt 5: Kammer wieder füllen, Innentür auf. Abbruch heißt hier immer: zurück in die Basis. In den übrigen Schritten tut die Taste nichts – so kann sie auch nicht hin und her schalten, wenn jemand sie gedrückt hält.
Formuliere jeden Übergang so, dass er nur bei eindeutig erfüllter Bedingung weiterschaltet. slt tmp druck LEER ist bei NaN 0 – die Kette bleibt stehen. Ein bge druck LEER warten dagegen springt bei NaN nicht, fällt durch und schaltet weiter: Die Außentür ginge ohne Sensor auf.
Zeig den Schritt auf einer LED-Anzeige. Hängt die Schleuse, siehst du sofort, wo. Mit einem Zähler aus Woche 20 erkennst du außerdem ein Abpumpen, das nicht vorankommt.
Eine Ausnahme von „alle Ausgaben jeden Takt“: Mode der Lüftung schreibt der Chip nur, wenn er sich ändert. Jedes Schreiben setzt ihre Zieldrücke zurück (Tag 51). Deshalb liest er den aktuellen Mode und springt bei Gleichheit über das sbn.
Übung
Aufgabe
Die Schleuse läuft als Schrittkette mit den Schritten 0–5 aus der Tabelle. Eingaben und Ausgaben stehen schon im Startcode – es fehlen die Übergänge (Abschnitt 2).
- 0 → 1 und 3 → 4, wenn die Taste „Zyklus“ gedrückt ist.
- 1 → 2, wenn die Innentür
Open0 meldet; 4 → 5, wenn die AußentürOpen0 meldet. - 2 → 3 unter
LEER(1 kPa), 5 → 0 abVOLL(100 kPa). - Taste „Abbruch“ in Schritt 1 oder 2: weiter mit Schritt 5.
- Kein Übergang darf weiterschalten, wenn der Sensor fehlt.
Die Ausgabe schaltet die Lüftung bei fehlendem Sensor schon ab.
Hinweise
Hinweis 1
Vergleichskette: beq schritt 0 bereitInnen, beq schritt 1 schliesseInnen … und am Ende j fuellen für Schritt 5.
Hinweis 2
Taste gedrückt: sgtz tmp zyklus, dann add schritt schritt tmp. Bei NaN bleibt die Kette stehen.
Hinweis 3
Tür zu: lbn tuer TUER HASH("Innentuer") Open Average, seqz tmp tuer, dann weiterzählen.
Hinweis 4
Abbruch: bgtz abbruch zurueck in Schritt 1 und 2; bei zurueck: steht move schritt 5.
Hinweis 5
Füllen: sge tmp druck VOLL, dann select schritt tmp 0 schritt – danach läuft der Code in ausgabe: weiter.
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