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

Tag 356 von 365 · Experte · Monat 12: Meisterstücke

Projekt: Basisautomation Teil 2

Projekt Basisautomation, Teil 2: die fertige Zentrale mit Watchdog für alle vier Teilsysteme, Übersicht, Alarm und Auftragsweitergabe – geprüft durch eine Abnahme mit fünf Teilzielen.

Projekt 60 Min. Woche 51

Das lernst du heute

  • Teilsysteme bauen und verbinden
  • Tests
  • Abnahme

Der letzte Baustein der Basisautomation. Die Teilsysteme stehen, die Zentrale kann schon Übersicht und Alarm. Jetzt bekommt sie die beiden Fähigkeiten, die aus Einzelteilen eine Anlage machen: Sie überwacht, ob jedes Teilsystem lebt, und sie gibt die Anforderung der Logistik als Auftrag an die Produktion weiter. Am Ende steht eine Abnahme – fünf Teilziele, die beweisen, dass alles zusammenpasst.

Watchdog für vier Systeme

In Teil 1 hatte jedes System eigene Register für den letzten Puls und sein Alter. Für vier Systeme wären das acht Register – zu viele. Die Zentrale legt die Werte deshalb in ihren eigenen Stack, als kleine Tabelle:

AdresseInhalt
0, 1LS: letzter Puls, Alter
2, 3EN: letzter Puls, Alter
4, 5PR: letzter Puls, Alter
6, 7LG: letzter Puls, Alter

Das Unterprogramm rechnet die Adresse aus der Bitnummer (mul adr bit 2) und liest und schreibt mit get und put auf db – das eigene Gehäuse, also den eigenen Stack. sp bleibt dabei unberührt.

Ein Durchlauf, zwei Takte

Vier Systeme mit Watchdog, Anzeige und Farbe kosten zusammen deutlich mehr als 128 Befehle. Ohne Eingriff bräche der Chip den Takt irgendwo mitten im Unterprogramm ab und machte im nächsten weiter – das liefe, aber niemand wüsste mehr, wann welcher Wert gilt. Die Zentrale teilt ihren Durchlauf deshalb bewusst, wie an Tag 305: Ein zweites yield nach LS und EN beendet den ersten Takt, PR, LG und der Rest folgen im zweiten. Ein Durchlauf dauert damit eine Sekunde, und TIMEOUT 4 heißt vier Sekunden ohne Puls.

Aufträge weitergeben

Die Logistik meldet in „LG_Anforderung“, was sie braucht. Die Zentrale schreibt diese Zahl in „PR_Auftrag“ – aber nur, wenn die Energie gesund ist: Status 0 und kein Watchdog-Alarm. Sonst schreibt sie 0, und die Produktion pausiert. Kommt der Strom zurück, steht dieselbe Zahl wieder im Auftrag, und weil sich die Zahl dabei ändert (0 auf 20), nimmt die Produktion ihn neu an.

Die Anlage der Zentrale

GerätPrefabName
fünf LED-AnzeigenStructureConsoleLED5„Z_LS“, „Z_EN“, „Z_PR“, „Z_LG“, „Z_Basis“
HupeStructureKlaxon„Z_Alarm“
TasterStructureLogicButton„Z_Quittung“
Logic MemorysStructureLogicMemorySchnittstelle aus Tag 351

Abnahme

  1. Übersicht und Gesamtzustand für alle vier Teilsysteme.
  2. Ein stehender Puls macht sein System zur Störung und löst Alarm aus.
  3. Neue Störungen hupen, bis quittiert wird.
  4. Die Anforderung der Logistik wird weitergegeben, bei kranker Energie pausiert.
  5. Ein fehlender Statusspeicher wird als Störung erkannt.
Tipp

Zähl die Zeichen, bevor du Kommentare schreibst. Die Zentrale ist das längste Script des Jahres – die Langfassung mit allen Erklärungen gehört in die Bibliothek, im Chip reicht ein knapper Kopf.

Achtung

Im Stack der Zentrale liegen jetzt Daten. Wer später push und pop dazubaut, muss darauf achten, dass der Stapel nicht über Adresse 8 hinweg in die Tabelle wächst. sp beginnt bei 0 – genau dort, wo LS seinen Puls ablegt.

Schaubild

Der Stack mit Stapelzeiger Platz 0 10 Platz 1 20 Platz 2 30 Platz 3 Platz 4 sp = 3 nächster freier Platz push 40 pop r0 r0 = 30 zuletzt rein, zuerst raus
Der Stack der Zentrale als Tabelle: je Teilsystem zwei Plätze für den letzten Puls und sein Alter, Adresse = 2 · Bitnummer.

Projektaufgabe

Aufgabe

Bau die fertige Zentrale nach den Regeln oben. Die Schnittstellen stehen im Kopf des Startcodes, die Register sind vergeben.

Teilziele

  1. Teilziel 1: Übersicht und Gesamtzustand
  2. Teilziel 2: Watchdog
  3. Teilziel 3: Alarm und Quittung
  4. Teilziel 4: Aufträge weitergeben
  5. Teilziel 5: Statusspeicher fehlt

Hinweise

Hinweis 1

Das Unterprogramm aus Tag 355 um den Watchdog erweitern: mul adr bit 2, get/put auf db für Puls und Alter.

Hinweis 2

Fehlt Status oder Puls, ist add tmp s p NaN – dann Störung.

Hinweis 3

Weitergabe: Energie gesund heißt EN_Status 0 und Bit 1 im Störungswort nicht gesetzt (ext tmp stoer 1 1).

Quiz

3 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