Virtuelle Konsole

Aus CANopen-Lift
Version vom 8. März 2006, 13:26 Uhr von Hba (Diskussion | Beiträge) (Neuer Artikel)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

CANopen Konsole nach CiA DS-301, Objekt 1026

Allgemeines

Mittels des Objekts 1026 kann man ein CANopen-Gerät fernbedienen bzw. -parametrieren. Die Anzeige und die Tastatur befindet sich dazu in einem anderen CANopen-Gerät (Ausgabegerät/Konsole).

Das virtuelle Gerät Antrieb (Drive unit) sollte dieses Objekt immer beinhalten.

Zum Fernbedienen gibt es zwei Kanäle:

  • einen Eingabe-Kanal (stdin), und
  • einen Ausgabe-Kanal (stdout)

Optional gibt es noch einen Fehlerausgabe-Kanal (stderr).

 Objekt 1026 Subindex 1 ist stdin (Standard-Eingabe)
 Objekt 1026 Subindex 2 ist stdout (Standard-Ausgabe)
 Objekt 1026 Subindex 3 ist stderr (Fehler-Ausgabe)

Möchte das Gerät Ausgaben in einer Konsole oder Display (z. B. das Steuerungs-Display) tätigen, so stellt es die Zeichen für die Ausgabe im Objekt 1026:2 bereit. Eine Null bedeutet kein Zeichen verfügbar. Zur Steuerung des Cursors können die Steuersequenzen nach VT-52 benutz werden.

Betätigt der Anwender eine Taste, so wird der Tastencode (1 .. 255) in das Objekt 1026:1 geschrieben. Sonder-Tasten werden dabei als Escape-Sequenzen (VT-52) gesendet.


Ablauf des Datenaustausches via SDO

Das Ausgabegerät (Konsole) pollt zyklisch das Objekt 1026:2. Wird ein Zeichen ungleich Null gelesen, so wird dieses in der Konsole (Display) ausgegeben. Für die Steuerung des Cursors werden VT-52 Steuersequenzen ausgewertet.

Liegt kein Zeichen vor, kann die Pollzeit langsamer sein.

Wird eine Taste betätigt, so wird der Tastencode in das Objekt 1026:1 geschrieben.


Ablauf des Datenaustausches via MPDO

Um die Kommunikation zu beschleunigen, besteht die Möglichkeit, die Ein- und Ausgabedaten per MPDO zu versenden.

Konsole-/Display-Ausgaben:

 COB-ID:       0x500 + Node-ID Gerät
 Länge:        8 Bytes
 Address:      Node-ID Gerät (Source)
 Multiplexor:  0x1026, 0x02
 Data:         1 Zeichen

Tastatur-Eingaben:

 COB-ID:       0x500 + Node-ID Konsole 
 Länge:        8 Bytes 
 Address:      0x80 + Node-ID Gerät (Destination)
 Multiplexor:  0x1026, 0x01
 Data:         1 Zeichen (Tastencode)

Zum Einschalten der Display-Ausgabe via MPDO schickt die Konsole entweder ein beliebiges Zeichen ungleich Null oder Cntrl-A (0x01). Mit Cntrl-A wird die Zeitüberwachung aktiviert, d. h. die Konsole muß mind. jede Sekunde einen Tasten-Code schicken (z. B. Cntrl-A). Bekommt in diesem Mode das Gerät innerhalb von 4 s kein Zeichen, wird die Display-Ausgabe via MPDO abgeschaltet.

Zum Deaktivieren der Display-Ausgabe schickt die Konsole Cntrl-D (0x04) oder wenn die Zeitüberwachung (Cntrl-A) aktiv ist, beendet das Gerät automatisch die Ausgabe, wenn kein Zeichen mehr empfangen wurde.

Damit es bei der Zeichenausgabe per MPDO nicht zu einer zu hohen Buslast kommt, sollten maximal zwei Zeichen in 10 ms ausgegeben werden.