Übersicht
Das CiA309-3-Gateway ist ein universelles TCP/IP-CANopen-Gateway entsprechend der CiA-Spezifikation 309-3. Es ist als Binärversion für Linux verfügbar und kann mit jedem Linux, das eine can4linux oder SocketCAN CAN-Schnittstelle hat, verwendet werden. Zudem steht das Gateway auch im Quellcode zur Verfügung und kann damit auf alle Plattformen portiert werden, die eine CAN-Schnittstelle und einen TCP/IP-Stack mit BSD-Sockets besitzen. Die CANopen-Komponente des Gateways besteht aus dem bewährtem CANopen Master-Stack von emotas, welcher alle relevanten CANopen-Dienste, wie SDO-Client, PDO Producer/Consumer, NMT-Master und Heartbeat-Consumer unterstützt.
CANopen Dienste
Es werden die in der Spezifikation 309-3 definierten CANopen-Dienste durch das Gateway unterstützt:
- SDO Client (Datentypen von 8 bis 32 Bit, Strings und Domains)
- PDO Consumer
- PDO Producer
- NMT Kommandos
- Node Guarding Master
- Heartbeat Consumer
- Heartbeat Producer
- Emergency Consumer
Weitere CiA309-3 Kommandos zur Konfiguration des Gateways sind ebenfalls verfügbar.
CiA309-3
Die Spezifikation CiA 309-3 definiert eine Reihe von ASCII-Kommandos, welche über Sockets gesendet und empfangen werden können.
Nachfolgende einige CiA309-3 Kommandos zur Illustration:
// SDO Timeout in Millisekunden setzen
set sdo_timeout 500
// Lesen des Wertes des Objektes 0x1000:00 vom Knoten 4 mit dem Datentyp U32
4 r 0x1000 0 u32
// Schreiben des Wertes des Objektes 0x1017:00 vom Knoten 4 mit dem Datentyp U16 und dem Wert 500
4 w 0x1017 0 u16 500
// Registierung des PDO-Empfangs für PDO mit CAN-ID 0x200 und 2 U16 Objekten
set rpdo 1 0x200 2 u16 u16
// starten des Knotens
1 start
// alle Knoten im Netzwerk in PRE-OP umschalten
0 preop
// Konfiguration speichern
store
// Gespeicherte Konfiguration wiederherstellen
restore
// Heartbeat-Überwachung des Knoten 9 starten (Überwachungszeit 2000 ms)
9 enable heartbeat 2000
...
Mit der Verwendung des CANopen-TCP-Gateways nach CiA309-3 können CANopen-Geräte einfach in TCP-Netzwerke integriert werden. Weitergehende Applikationen, die über den Funktionsumfang der CiA309-3-Spezifikation hinaus gehen, können mit der Source Code Variante auf Basis des CANopen Master Stacks entwickelt werden.