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

Tag 78 von 365 · Einsteiger · Monat 3: Erste Systeme

Zustände merken

Register vergessen nichts. Mit dem Wert vom letzten Takt erkennst du Flanken: den einen Moment, in dem sich etwas ändert.

Lektion 12 Min. Woche 12

Das lernst du heute

  • Register als Gedächtnis
  • Flanken erkennen
  • Letzten Wert vergleichen

Ein Sensor sagt dir, wie es jetzt ist. Oft willst du aber wissen, was sich geändert hat. Ist die Tür gerade aufgegangen? Ist der Druck seit dem letzten Takt gestiegen? Dafür braucht der Chip ein Gedächtnis, und das sind seine Register.

Register vergessen nichts

Ein Gerätewert wird jeden Takt neu gelesen. Ein Register behält seinen Wert, bis du ihn überschreibst. Kopierst du am Ende eines Durchlaufs den aktuellen Wert in ein zweites Register, steht dort im nächsten Takt der letzte Wert:

lbn offen TUER HASH("Lagertor") Open Average
# ... hier vergleichen ...
move alt offen        # fuer den naechsten Takt merken

Flanken erkennen

Springt ein Signal von 0 auf 1, ist das eine steigende Flanke. Von 1 auf 0 ist es eine fallende Flanke. Für Werte, die nur 0 oder 1 sind, reicht ein Vergleich:

EreignisBefehl
steigende Flankesgt flanke neu alt
fallende Flankeslt flanke neu alt
irgendeine Änderungsne flanke neu alt

Die Flanke ist genau einen Takt lang 1. Steht die Tür eine Minute offen, zählt das trotzdem nur einmal. Das ist der Unterschied zwischen einem Zustand und einem Ereignis.

sgt flanke offen alt      # gerade aufgegangen?
add zaehler zaehler flanke
move alt offen
Achtung

Die Reihenfolge entscheidet. Kopierst du offen nach alt, bevor du vergleichst, sind beide gleich, und es gibt nie eine Flanke. Erst vergleichen, dann merken.

Den letzten Wert vergleichen

Dasselbe Prinzip funktioniert mit Messwerten. Steigt der Tankdruck oder fällt er?

sub aenderung druck altDruck   # positiv = steigt
move altDruck druck

So erkennst du ein Leck, bevor der Druck eine Alarmgrenze erreicht.

Tipp

Fällt der Sensor aus, landet NaN in alt. Jeder Vergleich mit NaN ist falsch, es gibt also keine falsche Flanke. Sobald der Sensor zurück ist, steht wieder eine echte Zahl in alt.

Hinweis

Im Spiel behalten Register ihren Wert auch dann, wenn du neuen Code aufspielst. Setz Zähler und Merker deshalb vor dem Start-Label mit move auf 0.

Übung

Aufgabe

Zähle, wie oft das Tor „Lagertor“ (StructureCompositeDoor) aufgeht, und zeig die Zahl auf der LED-Anzeige „Oeffnungen“.

  • Jedes Öffnen zählt genau einmal, egal wie lange das Tor offen steht.
  • Wird das Tor abgebaut, bleibt die Zahl stehen, und der Chip läuft ohne Fehler weiter.

Hinweise

Hinweis 1

sgt flanke offen alt ist 1, wenn das Tor jetzt offen ist und im letzten Takt zu war.

Hinweis 2

Addiere die Flanke auf den Zähler.

Hinweis 3

Erst danach move alt offen.

Quiz

4 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