Zeit für das Gesellenstück. Eine Luftschleuse ist der Klassiker: Wer sie falsch programmiert, merkt es spätestens, wenn die Basis ins Vakuum pustet.
Der Aufbau im Spiel
| Gerät | Prefab | Name |
|---|---|---|
| Hebel | StructureLogicSwitch | „Richtung“ (Setting 1 = nach draußen, 0 = nach drinnen) |
| Gas-Sensor in der Schleuse | StructureGasSensor | „Schleuse“ |
| Aktive Lüftung in der Schleuse | StructureActiveVent | „Schleuse“ |
| Innentür | StructureAirlock | „Innentuer“ |
| Außentür | StructureAirlock | „Aussentuer“ |
Die Lüftung hat zwei Richtungen über Mode: Vent.Outward (0) bläst aus dem Rohr in die Schleuse, Vent.Inward (1) saugt die Schleuse leer.
Die Regeln
Nach draußen (Hebel = 1):
- Innentür zu.
- Lüftung saugt (
Mode1), bis der Druck unter 1 kPa ist, dann aus. - Außentür erst auf, wenn der Druck unter 1 kPa ist.
Nach drinnen (Hebel = 0):
- Außentür zu.
- Lüftung bläst (
Mode0), bis der Druck mindestens 100 kPa erreicht, dann aus. - Innentür erst auf, wenn der Druck mindestens 100 kPa beträgt.
Sensor weg (NaN): Lüftung aus, beide Türen zu.
Denk in Zuständen statt in Abläufen
Du musst keine Schritte nacheinander abarbeiten. Jeden Takt liest der Chip Hebel und Druck und berechnet daraus, wie jedes Gerät gerade stehen soll:
slt leer druck LEER # 1 = Schleuse leer
sge voll druck VOLL # 1 = Schleuse voll
seqz tmp raus # nach drinnen?
and tmp tmp voll # ... und voll?
sbn TUER HASH("Innentuer") Open tmp
Mit seqz, and, or und select aus den früheren Lektionen baust du die übrigen Regeln genauso.
Im IC10-Coder kannst du die Schleuse mit Kopplungen im Simulator lebendig machen: Lüftung „On“ senkt oder hebt den Druck jeden Takt. Dann siehst du im Verlauf, wie die Schleuse arbeitet.
Schaubild
Übung
Aufgabe
Programmiere die Luftschleuse nach den Regeln oben. Alle Geräte hängen am Datennetz, die Namen stehen in der Tabelle. Der Test spielt einen kompletten Durchgang raus und wieder rein – plus einen Sensorausfall.
Hinweise
Hinweis 1
Erst drei Hilfswerte: snanz ok druck (1 = Sensor da), slt leer druck LEER, sge voll druck VOLL.
Hinweis 2
Innentür: offen genau dann, wenn nicht raus (seqz tmp raus) und voll. Außentür: raus und leer.
Hinweis 3
Die Lüftungsrichtung ist einfach der Hebelwert: sbn VENT HASH("Schleuse") Mode raus.
Hinweis 4
Lüftung an: beim Rausgehen „noch nicht leer“, beim Reingehen „noch nicht voll“ – das wählt select tmp raus nichtLeer nichtVoll. Zum Schluss mit ok verunden.