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

Tag 139 von 365 · Fortgeschritten · Monat 5: Speicher und Struktur

Projekt: Pumpstation mit Schrittkette

Eine Pumpstation füllt ein Becken, hält es, leert es wieder und überwacht jeden Schritt auf Zeit. Störungen bleiben stehen, bis jemand quittiert.

Projekt 40 Min. Woche 20

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ätPrefabName
Volumenpumpe ins BeckenStructureVolumePump„Fuellpumpe“
Volumenpumpe aus dem BeckenStructureVolumePump„Leerpumpe“
Rohr-Analysator am BeckenStructurePipeAnalysizer„Becken“
TasteStructureLogicButton„Start“
TasteStructureLogicButton„Quittieren“
LED-AnzeigeStructureConsoleLED5„Status“ (Zustand)
LED-AnzeigeStructureConsoleLED5„Ursache“
BlinklichtStructureFlashingLight„Stoerung“

Die Schrittkette

ZustandNr.läuftweiter, wennZeitgrenze
Bereit0nichtsTaste „Start“ → Füllen–
Füllen1FüllpumpeDruck ≥ 1000 kPa → Haltenüber 60 Takte (30 s) → Störung, Ursache 1
Halten2nichtsnach 20 Takten (10 s) → Leeren–
Leeren3LeerpumpeDruck < 10 kPa → Bereitüber 60 Takte (30 s) → Störung, Ursache 2
Störung4Blinklicht„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

  1. Start füllt das Becken, bei vollem Becken geht es in Halten
  2. Halten dauert 10 s, dann wird geleert, und leer heißt wieder Bereit
  3. Füllen dauert zu lange: Störung mit Ursache 1, Pumpen aus, Blinklicht an, Start wirkt nicht
  4. Leeren dauert zu lange: Störung mit Ursache 2
  5. Unbekannter Zustand: Störung mit Ursache 4, Quittieren führt zurück nach Bereit
  6. Analysator weg: Störung mit Ursache 3, alle Pumpen aus, Quittieren wirkungslos
Tipp

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

  1. Teilziel 1: Füllen bis voll
  2. Teilziel 2: Halten, Leeren, Bereit
  3. Teilziel 3: Füllen dauert zu lange
  4. Teilziel 4: Leeren dauert zu lange
  5. Teilziel 5: Unbekannter Zustand und Quittieren
  6. 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

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