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

Tag 171 von 365 · Fortgeschritten · Monat 6: Atmosphäre und Regelung

Schleuse als Schrittkette

Die Schleuse als Schrittkette aus Woche 20: Schließen, Pumpen, Öffnen – und zurück. Eine Abbruch-Taste bringt jeden in die Basis zurück.

Lektion 20 Min. Woche 25

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

SchrittNameInnentürAußentürLüftungweiter, wenn
0Bereit innenaufzuausTaste „Zyklus“ gedrückt → 1
1Innentür schließenzuzuausInnentür meldet zu → 2
2AbpumpenzuzusaugtDruck unter 1 kPa → 3
3Bereit außenzuaufausTaste „Zyklus“ gedrückt → 4
4Außentür schließenzuzuausAußentür meldet zu → 5
5FüllenzuzublästDruck 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.

Achtung

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.

Tipp

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.

Hinweis

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 Open 0 meldet; 4 → 5, wenn die Außentür Open 0 meldet.
  • 2 → 3 unter LEER (1 kPa), 5 → 0 ab VOLL (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

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