Das lernst du heute
- Ablauf Füllen–Halten–Leeren
- Zeitüberschreitung
- Störung quittieren
Die Woche hat dir alle Bausteine für eine Schrittkette gegeben: den Zustand im Register, die Sprungtabelle mit Fang, die Zeit je Zustand und eine Störung, die man quittieren muss. Das Projekt setzt sie zu einer Anlage zusammen, wie sie in vielen Basen steht: ein Becken, das auf Knopfdruck gefüllt, eine Weile gehalten und wieder geleert wird – zum Beispiel ein Puffertank, in dem heißes Gas abkühlen soll, bevor es weiterläuft.
Die Anlage
| Gerät | Prefab | Name |
|---|---|---|
| Volumenpumpe ins Becken | StructureVolumePump | „Fuellpumpe“ |
| Volumenpumpe aus dem Becken | StructureVolumePump | „Leerpumpe“ |
| Rohr-Analysator am Becken | StructurePipeAnalysizer | „Becken“ |
| Taste | StructureLogicButton | „Start“ |
| Taste | StructureLogicButton | „Quittieren“ |
| LED-Anzeige | StructureConsoleLED5 | „Status“ (Zustand) |
| LED-Anzeige | StructureConsoleLED5 | „Ursache“ |
| Blinklicht | StructureFlashingLight | „Stoerung“ |
Die Schrittkette
| Zustand | Nr. | läuft | weiter, wenn | Zeitgrenze |
|---|---|---|---|---|
| Bereit | 0 | nichts | Taste „Start“ → Füllen | – |
| Füllen | 1 | Füllpumpe | Druck ≥ 1000 kPa → Halten | über 60 Takte (30 s) → Störung, Ursache 1 |
| Halten | 2 | nichts | nach 20 Takten (10 s) → Leeren | – |
| Leeren | 3 | Leerpumpe | Druck < 10 kPa → Bereit | über 60 Takte (30 s) → Störung, Ursache 2 |
| Störung | 4 | Blinklicht | „Quittieren“ und Analysator da → Bereit | – |
Fehlt der Analysator, geht die Anlage aus jedem Zustand in die Störung mit Ursache 3, alle Pumpen aus. Ein unbekannter Zustand führt zu Ursache 4. Die Anzeige „Ursache“ zeigt die erste Ursache, bis quittiert wird.
Die Ursache im Zustandsblock setzen
Neu ist nur, dass ein Übergang in die Störung gleich seinen Grund mitbringt. Der Block setzt dafür ein zweites Register grund, jeden Takt startet es bei 0:
z_fuellen:
sgt tmp takte MAXFUELL
select neu tmp STOERUNG neu
select grund tmp U_FUELL grund
sge tmp druck VOLL
select neu tmp HALTEN neu
j ausgabe
In der Ausgabe übernimmst du grund nur, wenn es wirklich in die Störung geht. Wird das Becken im letzten erlaubten Takt doch noch voll, gewinnt der Erfolg, und die Ursache bleibt leer. Danach verriegelst du wie in Tag 137: select ursache ursache ursache grund.
Teilziele
- Start füllt das Becken, bei vollem Becken geht es in Halten
- Halten dauert 10 s, dann wird geleert, und leer heißt wieder Bereit
- Füllen dauert zu lange: Störung mit Ursache 1, Pumpen aus, Blinklicht an, Start wirkt nicht
- Leeren dauert zu lange: Störung mit Ursache 2
- Unbekannter Zustand: Störung mit Ursache 4, Quittieren führt zurück nach Bereit
- Analysator weg: Störung mit Ursache 3, alle Pumpen aus, Quittieren wirkungslos
Bau zuerst die Kette ohne Zeiten und ohne Ursachen und lass Teilziel 1 und 2 grün werden. Dann die Zeitgrenzen, dann die Störung. Wer alles auf einmal schreibt, sucht am Ende drei Fehler gleichzeitig.
Projektaufgabe
Aufgabe
Baue die Pumpstation nach den Tabellen oben. Kopf, Registerplan und das Lesen der Eingänge sind fertig – grund steht jeden Takt auf 0, takte zählt schon hoch. Es fehlen Sprungtabelle mit Fang, die fünf Zustandsblöcke und die Ausgabe mit Zähler-Reset, Verriegelung und allen Geräten.
Teilziele
- Teilziel 1: Füllen bis voll
- Teilziel 2: Halten, Leeren, Bereit
- Teilziel 3: Füllen dauert zu lange
- Teilziel 4: Leeren dauert zu lange
- Teilziel 5: Unbekannter Zustand und Quittieren
- Teilziel 6: Analysator weg
Hinweise
Hinweis 1
Kette: fünf beq-Zeilen, dann der Fang mit move neu STOERUNG, move grund U_ZUSTAND und j ausgabe.
Hinweis 2
Füllen und Leeren: erst Zeitgrenze (sgt, zwei select für neu und grund), dann Erfolg. Halten: sge tmp takte HALTEZEIT.
Hinweis 3
Störung: and tmp quitt ok, dann neu auf BEREIT und ursache auf 0 – beides mit select.
Hinweis 4
Ausgabe: ohne Analysator grund = U_SENSOR und neu = STOERUNG; grund nur behalten, wenn neu = STOERUNG; verriegeln; Zähler zurücksetzen; move zustand neu; dann alle sbn.
Quiz
2 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Alle Teilziele des Projekts 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