Übersicht
Das CiA309-2-TCP-Gateway ist ein universelles Modbus/TCP-CANopen-Gateway entsprechend der CiA-Spezifikation 309-2. 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.
CANopen Dienste
Es werden alle in der Spezifikation 309-2 definierten CANopen-Dienste durch das Gateway unterstützt:
- SDO Client (Datentypen von 1 bis 32 Bit, Strings und Domains)
- NMT Kommandos
- Node Guarding Master
- Heartbeat Consumer
- Heartbeat Producer
Alle weiteren CiA309-2 Kommandos zur Konfiguration des Gateways sind ebenfalls verfügbar. Auf der ModBus/TCP-Seite werden die CANopen-Dienste mit dem Funktionscode 43 und dem MEI-Type 13 eingeleitet. Die Gesamtlänge eines Kommandos ist bei ModBus/TCP auf 253 Bytes beschränkt. Da Modbus/TCP keine asynchrone Datenübertragung erlaubt, ist die Nutzung von PDOs mit diesem Gateway nicht möglich, so dass nur SDOs zum Datenaustauch mit den CANopen-Geräten verwendet werden können. Dennoch können damit CANopen-Slaves in Modbus/TCP-Netzwerke eingebunden und genutzt werden.
Mit der Verwendung des CANopen-Modbus/TCP-Gateway nach CiA309-2 können CANopen-Geräte einfach in Modbus/TCP-Netzwerke integriert werden. Weitergehende Applikationen, die über den Funktionsumfang der CiA309-2-Spezifikation hinaus gehen, können mit der Source Code Variante auf Basis des CANopen Master Stacks entwickelt werden.