I/O-Gruppenfunktionalität: Unterschied zwischen den Versionen

Aus CANopen-Lift
Zur Navigation springen Zur Suche springen
K (→‎Heartbeat-Überwachung: typo; Kategorie hinzugefügt)
K (typo, Formatierung angepasst)
 
Zeile 1: Zeile 1:
== Implementierung der Gruppenfunktion für Außenrufe im Tableau-Knoten (input/ouput panel unit) ==
== 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 ===
=== Bedeutung des Parameters ''lift'' bei den virtuellen Ein- und Ausgängen ===


''Virtueller Eingang:''
====Virtueller Eingang====


'''lift''' - Aufzüge, die gerufen werden, d. h. der Aufzug oder einer der entprechenden Aufzüge sollen kommen:
''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
   z. B. normaler Außenruf - ''lift'' = 0xFF -> alle Aufzüge sind gerufen
         normaler Außenruf - lift = 0x02 -> nur Aufzug 2 wird gerufen  
         normaler Außenruf - ''lift'' = 0x02 -> nur Aufzug 2 wird gerufen  
         (z. B. weil nur dieser eine best. Etage anfahren kann)
         (z. B. weil nur dieser eine bestimmte Etage anfahren kann)
         priorisierter Außenruf - lift = 0x04 -> nur Aufzug 3 wird gerufen
         priorisierter Außenruf - ''lift'' = 0x04 -> nur Aufzug 3 wird gerufen


Die Aufzugsteuerung kann so die Rufe (bzw. alle Eingänge) vorfiltern.
Die Aufzugsteuerung kann so die Rufe (bzw. alle Eingänge) vorfiltern.


''Virtueller Ausgang:''
====Virtueller Ausgang====


'''lift''' - der Ausgang wird nur aktiv, wenn der entsprechende Aufzug diesen aktiviert hat
''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
   z. B. normaler Außenruf - ''lift'' = 0xFF -> alle Aufzüge dürfen quittieren
         normaler Außenruf - lift = 0x02 -> nur Aufzug 2 kann quittieren
         normaler Außenruf - ''lift'' = 0x02 -> nur Aufzug 2 kann quittieren
         priorisierter Außenruf - lift = 0x04 -> nur Aufzug 3 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.  
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:''
====Funktionsweise====


Ein Aufzug setzt den Ausgang:   
Ein Aufzug setzt den Ausgang:   
Zeile 35: Zeile 35:
   vo_lift &= (~(Quelle lift & Parameter lift))
   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
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:''
'''Wichtig:'''


Bei dem Verlust des Heartbeats eines Aufzugs ist ein gesetztes Bit für diesen Aufzug im Byte vo_lift zu löschen!
Beim Verlust des Heartbeats eines Aufzugs ist ein gesetztes Bit für diesen Aufzug im Byte ''vo_lift'' zu löschen!




''Ein Beispiel:''
====Ein Beispiel:====


(1) Ein Knoten sendet einen Eingang mit der Funktion Außenruf für Aufzug 1 und 2:  
(1) Ein Knoten sendet einen Eingang mit der Funktion Außenruf für Aufzug 1 und 2:  
Zeile 70: Zeile 70:
   Ein Aufzug löscht alle Quittungen: Byte lift = 0x03 -> vo_lift = 0x00 -> Ausgang aus
   Ein Aufzug löscht alle Quittungen: Byte lift = 0x03 -> vo_lift = 0x00 -> Ausgang aus


Nocheinmal zusammengefaßt:
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.  
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 ===
=== Heartbeat-Überwachung ===


Das virtuelle Gerät Ausgang muss den Heartbeat der Steuerung (Aufzug) überwachen, dem er (via lift Byte) zugeordnet ist.
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:
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 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
* Alle Anzeigen für diesen Aufzug sind zu deaktivieren

Aktuelle Version vom 13. Oktober 2008, 08:15 Uhr

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.