I/O-Gruppenfunktionalität
Implementierung der Gruppenfunktion für Außenrufe im Tableau-Knoten (input/ouput panel unit)
Bedeutung des Parameters lift bei den virtuellen Ein- und Ausgängen
Virtueller Eingang
lift - Aufzüge, die gerufen werden, d. h. der Aufzug oder einer der entprechenden Aufzüge sollen kommen:
z. B. normaler Außenruf - lift = 0xFF -> alle Aufzüge sind gerufen normaler Außenruf - lift = 0x02 -> nur Aufzug 2 wird gerufen (z. B. weil nur dieser eine bestimmte Etage anfahren kann) priorisierter Außenruf - lift = 0x04 -> nur Aufzug 3 wird gerufen
Die Aufzugsteuerung kann so die Rufe (bzw. alle Eingänge) vorfiltern.
Virtueller Ausgang
lift - der Ausgang wird nur aktiv, wenn der entsprechende Aufzug diesen aktiviert hat
z. B. normaler Außenruf - lift = 0xFF -> alle Aufzüge dürfen quittieren normaler Außenruf - lift = 0x02 -> nur Aufzug 2 kann quittieren priorisierter Außenruf - lift = 0x04 -> nur Aufzug 3 kann quittieren
Jeder Ausgang hat dazu ein zusätzliches Byte (hier vo_lift genannt), wobei jedes Bit den Zustand des Ausgangs bezogen auf den Aufzug darstellt. Alle Bits sind ODER-verknüpft, d. h. ist das Byte vo_lift Null, so ist der Ausgang aus, ist das Byte vo_lift ungleich Null, so ist der Ausgang ein.
Funktionsweise
Ein Aufzug setzt den Ausgang:
vo_lift |= (Quelle lift & Parameter lift)
Ein Aufzug löscht den Ausgang:
vo_lift &= (~(Quelle lift & Parameter lift))
wobei Quelle lift das Byte lift im Telegramm virtueller Ausgang von der Steuerung ist, Parameter lift ist das Byte lift des virtuellen Ausgangs im Knoten.
Wichtig:
Beim Verlust des Heartbeats eines Aufzugs ist ein gesetztes Bit für diesen Aufzug im Byte vo_lift zu löschen!
Ein Beispiel:
(1) Ein Knoten sendet einen Eingang mit der Funktion Außenruf für Aufzug 1 und 2:
Byte lift = 0x03; vo_lift = 0x00 -> Ausgang aus
(2) Aufzug 1 sendet seine Quittung:
Byte lift = 0x01 -> vo_lift = 0x01 -> Ausgang ein
(3) Aufzug 2 sendet seine Quittung:
Byte lift = 0x02 -> vo_lift = 0x03 -> Ausgang ein
(4) Aufzug 1 erreicht die Etage und löscht die Quittung:
Byte lift = 0x01 -> vo_lift = 0x02 -> Ausgang ein
(5) Aufzug 2 erhält von Aufzug 1 die Nachricht, löscht seine Quittung:
Byte lift = 0x02 -> vo_lift = 0x00 -> Ausgang aus
Es sind folgende Variationen möglich:
Ein Aufzug löscht alle Quittungen: Byte lift = 0x03 -> vo_lift = 0x00 -> Ausgang aus
Noch einmal zusammengefasst:
Wenn ein Ausgang mehreren Aufzügen zugeordnet ist (Gruppenfunktionalität), dann ist der virtuelle Ausgang solange aktiv, wie mindestens ein Aufzug diesen eingeschaltet hat (ODER-Verknüpfung aller Aufzüge) und der Heartbeat aktiv ist.
Heartbeat-Überwachung
Das virtuelle Gerät Ausgang muss den Heartbeat der Steuerung (Aufzug) überwachen, dem er (via lift-Byte) zugeordnet ist.
Fällt der Heartbeat einer Steuerung aus, so sind folgende Aktionen durchzuführen:
- Alle virtuellen Ausgänge (bis auf das Außer-Betrieb-Signal) für diesen Aufzug sind zu löschen (für Rufe siehe oben, vo_lift)
- Alle Anzeigen für diesen Aufzug sind zu deaktivieren
- Die Ausgänge mit der Funktion Außer Betrieb für diesen Aufzug sind zu aktivieren.