-
6.3.
Das CANopen® Protokoll
Das CANopen Protokoll ist ein Schicht 7-Protokoll (Application Layer), das
auf den CAN-Bus aufsetzt. Die Schichten 1 & 2 (Physical Layer/Data Link
Layer) vom CAN-Bus bleiben unberührt.
Die von der Anwendungsschicht bereitgestellten Dienstelemente ermöglichen die Realisierung einer
über das Netzwerk verteilten Applikation. Die CANopen Kommunikationsprofile und Normen werden
von der CIA (CAN in Automation e.V.) verwaltet. Für den TB20 CANopen Koppler sind die Normen DS
301 „CANopen Application layer and communication profile" und DS 401 „Device profile for generic
I/O modules" relevant. Diese sind auf der Interseite der CAN in Automation (http://www.can-cia.org)
verfügbar.
Der 11 Bit Identifier und die 8 Datenbytes eines CAN-Bus Telegramms bekommen durch die CANopen
Normen eine feste Bedeutung. Jedes Gerät in einem CANopen-Netz hat eine einstellbare Node-ID
(Modulnummer, 1-127).
6.3.1. CANopen Objekte
Der Datenaustausch mit einem CANopen Slave erfolgt entweder über fest definierte Servicedaten-
Objekte (SDO) oder über frei konfigurierbare Prozessdaten-Objekte (PDO).
Jeder CANopen Slave besitzt ein festes Verzeichnis von SDOs, die über eine Objektnummer (16 Bit)
und einen Subindex (8 Bit) angesprochen werden.
Beispiel: Objekt 0x1000/ Subindex 0 = Device Type, 32Bit Unsigned
SDOs mit 8/16/32 Bit Breite können mit einem CANopen-Telegramm gelesen und geschrieben werden.
SDOs die länger sind (z.B. Strings), werden über mehrere Telegramme übertragen.
SDOs können bearbeitet werden, sobald ein CANopen Slave betriebsbereit ist. Für die SDOs stehen die
Funktionen „SDO Anforderung" oder „SDO Antwort" bereit. Die Objektnummer, der Zugriffsmodus
und Typ werden in den ersten 4 Bytes des CAN-Telegrammes hinterlegt. Die letzten 4 Bytes des CAN-
Telegrammes enthalten dann den Wert für das SDO.
Byte 0
Byte 1
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Command
8 Bit SDO
16 SDO Index
1-4 Bytes parameter data
Specifier
Subindex
PDOs enthalten die „Arbeitswerte" eines CANopen Slaves für den zyklischen Prozessbetrieb. Jeder
CANopen Slave kann mehrere PDOs verwalten (im Normalfall bis zu 4 zum Senden und 4 zum
Empfangen).
Jedes der vorhandenen PDOs hat eine eigene COB-ID. In den 8 Datenbytes des Telegramms können
beliebige Informationen des CANopen Slaves zum Lesen und Beschreiben „gemapped" werden. Es
werden immer die Werte aus dem Objektverzeichnis (SDOs) gemappt.
Die PDOs werden von den meisten CANopen Slaves automatisch beim Anlauf gemapped (Default-
Mapping). Die Zuordnung kann dann über festgelegte SDOs geändert werden.
TB20 CANopen Koppler | Ausgabe 6 | 09.03.2020
41