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

Tag 205 von 365 · Profi · Monat 7: Strom und Energie

Energieverlauf im Stack

Einmal pro Minute einen Messwert in den Stack legen, als Ringpuffer eine Stunde Verlauf halten und daraus die Lastspitze bestimmen.

Lektion 20 Min. Woche 30

Das lernst du heute

  • Werte pro Minute ablegen
  • Tagesverlauf
  • Spitzen erkennen

Gestern Nacht ist der Akku leer gelaufen. Wann hat der Verbrauch angezogen – und wie hoch war die Spitze? Eine Anzeige zeigt nur den Moment. Für den Verlauf braucht der Chip ein Gedächtnis, und das ist der Stack.

Einmal pro Minute

Ein Takt dauert 0,5 Sekunden, eine Minute also 120 Takte. Ein Zähler entscheidet, wann gemessen wird:

add takt takt 1
blt takt TAKTE start
move takt 0

Solange der Zähler unter 120 liegt, springt der Chip gleich wieder zu start und wartet mit yield auf den nächsten Takt. Nur jeder 120. Durchlauf kommt bis zur Messung.

Ein Ringpuffer im Stack

Du kennst den Ringpuffer aus dem Messwert-Verlauf: poke schreibt an eine feste Adresse, die Position wandert eins weiter und springt mit mod am Ende zurück auf 0.

poke pos wert
add pos pos 1
mod pos pos PLAETZE

Mit 60 Plätzen hält der Puffer genau die letzte Stunde. Der Stack hat 512 Plätze – mit PLAETZE 480 wären es acht Stunden, eine ganze Schicht. Für einen ganzen Spieltag kannst du auch nur alle fünf Minuten messen.

Spitzen erkennen

Die Spitze ist das Maximum über alle Plätze. Den eigenen Stack liest du mit get und db:

suche:
get tmp db i
max spitze spitze tmp
add i i 1
blt i PLAETZE suche

Diese Schleife braucht 60 · 4 = 240 Befehle. Ein Takt erlaubt 128 – der Chip arbeitet einfach im nächsten Takt weiter. Das ist hier kein Problem, weil die Suche nur einmal pro Minute läuft und die Messwerte sich in der Zwischenzeit nicht ändern.

Achtung

Ein NaN im Puffer vergiftet die Spitze: max mit NaN ergibt NaN, eine Stunde lang. Fehlt die Messung, legt der Chip deshalb 0 ab und zeigt auf der Verlaufsanzeige −1.

Was du daraus machst

Mit dem Verlauf siehst du, wann der Verbrauch steigt: beim Schichtbeginn, wenn der Ofen anläuft, wenn die Nacht kommt. Die Spitze sagt dir, wofür Akku und Kabel ausgelegt sein müssen – nicht für den Mittelwert, sondern für den schlimmsten Moment.

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
poke schreibt an eine feste Adresse, sp bleibt stehen. Die Position wandert im Kreis über die 60 Plätze.

Übung

Aufgabe

Einmal pro Minute (120 Takte) liest der Chip PowerRequired des Analysators „Hauptnetz“, zeigt den Wert auf „Verlauf“ und legt ihn im Ringpuffer (60 Plätze) ab. „Spitze“ zeigt das Maximum über den ganzen Puffer. Fehlt der Analysator: „Verlauf“ zeigt −1, abgelegt wird 0.

Hinweise

Hinweis 1

Erst die Anzeige: select tmp ok wert -1, dann für den Puffer select wert ok wert 0.

Hinweis 2

Ablegen: poke pos wert, add pos pos 1, mod pos pos PLAETZE.

Hinweis 3

Suche: spitze und i auf 0, dann Schleife mit get tmp db i, max, add, blt.

Quiz

5 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