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

Tag 40 von 365 · Einsteiger · Monat 2: Ordnung und Datennetz

Viele Räume, ein Chip

Ein Chip für mehrere Räume: Namen planen, den Raum-Namen in ein Register legen und jeden Takt einen anderen Raum abarbeiten.

Lektion 12 Min. Woche 6

Das lernst du heute

  • Mehrere Namen für mehrere Räume
  • Werte nacheinander abarbeiten
  • Zeilen sparen

Drei Räume, drei Sensoren, drei Heizungen. Mit drei Chips ginge es, aber jeder Chip kostet ein Gehäuse, Strom und Pflege. Ein Chip reicht – wenn die Namen gut geplant sind.

Gleicher Name, anderer Typ

lbn und sbn filtern nach Typ und Name. Darum dürfen Sensor und Heizung im Labor beide „Labor“ heißen: Der Typ-Hash entscheidet, welches Gerät gemeint ist. Das spart Namen und macht die Basis übersichtlich – jedes Gerät trägt den Namen seines Raums.

lbn temp SENSOR HASH("Labor") Temperature Average
sbn HEIZUNG HASH("Labor") On an

Der einfache Weg: Block für Block

Für jeden Raum dieselben drei Zeilen, nur mit anderem Namen. Das ist leicht zu lesen, kostet aber für jeden Raum drei Zeilen und gut 150 Zeichen. Bei fünf Räumen und einer Anzeige pro Raum wird es eng.

Der Name im Register

HASH("Labor") ist beim Laden schon eine Zahl. Diese Zahl darf auch in einem Register stehen, und lbn/sbn nehmen sie von dort:

move raum HASH("Lager")
lbn temp SENSOR raum Temperature Average
sbn HEIZUNG raum On an

Damit schreibst du den Regelteil nur einmal und tauschst vorher den Namen.

Ein Raum pro Takt

Ein Zähler wählt jeden Takt den nächsten Raum: 0, 1, 2, 0, 1, 2 … Mit seq und select wird daraus der Name:

add nr nr 1
mod nr nr RAEUME             # 0, 1, 2, 0 ...
move raum HASH("Labor")      # Raum 0
seq tmp nr 1
select raum tmp HASH("Lager") raum
seq tmp nr 2
select raum tmp HASH("Wohnen") raum

Jeder Raum kommt alle drei Takte dran, also alle anderthalb Sekunden. Für Heizungen ist das mehr als schnell genug.

Hinweis

Ein Raum ohne funktionierenden Sensor liefert NaN. slt ergibt dann 0, die Heizung dieses Raums geht aus. Die anderen Räume merken davon nichts, weil jeder seinen eigenen Takt hat.

Tipp

Plane die Namen, bevor du den Etikettierer in die Hand nimmst: ein kurzer Name pro Raum, ohne Umlaute. Für Geräte, die keinem Raum gehören, eigene Namen wie „Hauptschalter“.

Schaubild

Geräte im Datennetz mit Typ und Namen IC-Gehäuse IC10 StructureGasSensor „Lager“ StructureGasSensor „Werkstatt“ StructureWallHeater „Lagerheizung“ StructureWallHeater „Lagerheizung“ StructureWallHeater „Werkstattheizung“ lbn SENSOR HASH("Lager") liest nur diesen Sensor sbn HEIZUNG HASH("Lagerheizung") schaltet beide auf einmal
Sensor und Heizung eines Raums dürfen gleich heißen – der Typ-Hash unterscheidet sie.

Übung

Aufgabe

Frostschutz für drei Räume mit einem Chip. In jedem Raum hängen ein Gas-Sensor und eine Wandheizung mit dem Namen des Raums: „Labor“, „Lager“, „Wohnen“.

  • Heizung eines Raums an, wenn dort weniger als 19 °C (292,15 K) sind, sonst aus.
  • Schreib den Regelteil nur einmal: Raumname in ein Register, ein Raum pro Takt.
  • Fällt ein Sensor aus, geht nur die Heizung dieses Raums aus.

Hinweise

Hinweis 1

Zähler: add nr nr 1, dann mod nr nr RAEUME.

Hinweis 2

Name: erst move raum HASH("Labor"), dann zweimal seq und select.

Hinweis 3

Regelteil mit raum statt HASH(…): lbn temp SENSOR raum Temperature Average.

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