I/O-Gruppenfunktionalität

Aus CANopen-Lift
Zur Navigation springen Zur Suche springen

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.