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

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

Fremden Code lesen

Fremden Code liest du in fester Reihenfolge: Aufbau, Einstellblock, Gerätenamen, dann Zeile für Zeile. Danach passt du ihn an deine Basis an.

Lektion 14 Min. Woche 13

Das lernst du heute

  • Aufbau eines Scripts erkennen
  • Vorlagen und Bibliothek nutzen
  • Code Zeile für Zeile verfolgen

Kolja aus dem Nachbarlager hat dir seinen Heizungs-Chip geschenkt. Ein paar Dutzend Zeilen, Namen, die du nicht kennst. Bevor du ihn einbaust, musst du ihn verstehen. Fremden Code liest du nicht wie einen Roman von oben nach unten, sondern in einer festen Reihenfolge.

1. Den Aufbau erkennen

Fast jedes gute Script hat dieselben Teile:

Teilworan du ihn erkennst
KopfKommentar ganz oben: was das Script tut
Einstellblockdefine-Zeilen mit Hashes, Grenzen, Zeiten
Registerplanalias-Zeilen
VorbereitungZeilen vor dem Start-Label, etwa move zaehler 0
Hauptschleifevom Start-Label mit yield bis j start
UnterprogrammeLabels hinter der Hauptschleife, enden mit j ra

Lies zuerst die define-Zeilen. Sie verraten, welche Geräte das Script erwartet und welche Zahlen du anpassen darfst. Die alias-Zeilen sind die Liste der Variablen.

2. Gerätenamen heraussuchen

Jedes HASH("…") im Rumpf ist ein Gerätename. Schreib sie dir heraus. Heißt dein Gerät anders, findet lbn es nicht, und je nach Batchmodus kommt NaN, 0 oder −unendlich heraus.

lbn temp SENSOR HASH("Raum1") Temperature Average
sbn HEIZUNG HASH("Heizung1") On heizen

Hier erwartet das Script einen Gassensor „Raum1“ und eine Heizung „Heizung1“.

3. Zeile für Zeile verfolgen

Jetzt spielst du einen Durchlauf im Kopf durch. Schreib die Register als Spalten auf einen Zettel und trag Zeile für Zeile ein, was sich ändert. Bei jedem Sprung fragst du: Ist die Bedingung gerade wahr?

Zeiletemptmpheizen
lbn temp …291,1500
slt tmp temp OBEN291,1510
and heizen heizen tmp291,1510
slt tmp temp UNTEN291,1510
or heizen heizen tmp291,1511

Schneller geht es im Simulator des IC10-Coders: Code einfügen, Geräte anlegen, Schritt für Schritt laufen lassen und die Register beobachten.

Vorlagen und Bibliothek

Der IC10-Coder hat zwei gute Quellen für fremden Code. Unter Vorlagen findest du fertige Bausteine im Werkstattstil, etwa „Temperatur halten (Hysterese)“ oder „Licht bei Anwesenheit“. In der Bibliothek stehen Scripts, die andere Spieler veröffentlicht haben. Im Spiel selbst findest du gespeicherte Scripts in der Bibliothek des IC-Editors.

Achtung

Bevor du fremden Code einbaust, prüf drei Dinge: Gerätenamen, Grenzwerte und die Richtung bei einem Ausfall. Ein Script, das bei Kolja passt, kann bei dir die Heizung dauerhaft laufen lassen.

Tipp

Ändere zuerst nur den Einstellblock und die Namen, nicht den Rumpf. Gut geschriebene Scripts sind genau dafür gebaut.

Schaubild

Aufbau eines Programms im bewährten Stil # --- Hitzewarnung --- define GRENZE 303.15 # 30 C define SENSOR HASH("…") alias temp r0 alias heiss r1 start: yield … j start 1 · define alles Einstellbare 2 · alias Namen für Register 3 · Hauptschleife mit yield, endlos
Kopf, Einstellblock, Registerplan, Hauptschleife: Wer den Aufbau kennt, findet in jedem Script schnell die Stellen, die er anpassen muss.

Übung

Aufgabe

Im Editor steht Koljas Heizungs-Chip. Lies ihn und pass ihn an deine Werkstatt an:

  • dein Gassensor heißt „Werkstatt“
  • deine Wandheizung heißt „Werkstattheizung“
  • geregelt wird zwischen 18 °C (an, 291,15 K) und 20 °C (aus, 293,15 K)

Der Rest des Scripts bleibt, wie er ist.

Hinweise

Hinweis 1

Die Grenzen stehen im Einstellblock: UNTEN und OBEN.

Hinweis 2

Die Gerätenamen stehen im Rumpf in HASH("…").

Hinweis 3

Prüf mit einem Durchlauf im Kopf: Bei 17 °C muss heizen 1 werden.

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