CANopen - Schnittstellenbeschreibung
HYDAC ELECTRONIC GMBH
07.10.2010
Mat. Nr. 669824
Seite 16 von 63
4.5 Übertragung von SDO Nachrichten
Die Übertragung von SDO Nachrichten geschieht über das CMS "Multiplexed-
Domain" Protokoll (CIA DS-202-2).
Mit SDOs können Objekte aus dem Objektverzeichnis gelesen oder geschrieben
werden. Es handelt sich um einen bestätigten Dienst. Der so genannte
SDO Client
spezifiziert in seiner Anforderung „Request“ den Parameter, die Zugriffsart
(Lesen/Scheiben) und gegebenenfalls den Wert. Der so genannte
SDO Server
führt
den Schreib- oder Lesezugriff aus und beantwortet die Anforderung mit einer Antwort
„Response“. Im Fehlerfall gibt ein Fehlercode Auskunft über die Fehlerursache.
Sende-SDO und Empfangs-SDO werden durch ihre Funktionscodes unterschieden.
Das Mess-System (Slave) entspricht dem SDO Server und verwendet folgende
Funktionscodes:
Funktionscode
COB-ID
Bedeutung
11 (1011 bin)
0x580 + Node ID
Slave
SDO Client
12 (1100 bin)
0x600 + Node ID
SDO Client
Slave
Tabelle 1: COB-IDs für Service Data Object (SDO)
4.5.1 SDO-Nachrichtenformat
Der maximal 8 Byte lange Datenbereich einer CAN-Nachricht wird von einem SDO
wie folgt belegt:
CCD
Index
Subinde
x
Daten
Byte 0 Byte 1, Low Byte 2, High
Byte 3
Byte 4 Byte 5 Byte 6 Byte 7
Tabelle 2: SDO-Nachricht
Der
Kommando-Code
(
CCD
) identifiziert bei der SDO Request, ob gelesen oder
geschrieben werden soll. Bei einem Schreibauftrag wird zusätzlich die Anzahl der zu
schreibenden Bytes im CCD kodiert.
Bei der SDO Response zeigt der CCD an, ob die Request erfolgreich war. Im Falle
eines Leseauftrags gibt der CCD zusätzlich Auskunft über die Anzahl der gelesenen
Bytes:
CCD
Bedeutung
Gültig für
0x23
4 Byte schreiben
SDO Request
0x2B
2 Byte schreiben
SDO Request
0x2F
1 Byte schreiben
SDO Request
0x60
Schreiben erfolgreich
SDO Response
0x80 Fehler
SDO
Response
0x40 Leseanforderung
SDO
Request
0x43
4 Byte Daten gelesen
SDO Response auf Leseanforderung
0x4B
2 Byte Daten gelesen
SDO Response auf Leseanforderung
0x4F
1 Byte Daten gelesen
SDO Response auf Leseanforderung
Tabelle 3: Kommando-Codes für SDO
Im Fall eines Fehlers (SDO Response CCD = 0x80) enthält der Datenbereich einen
4-Byte-Fehlercode, der über die Fehlerursache Auskunft gibt. Die Bedeutung der
Fehlercodes ist aus der Tabelle 10, Seite 60 zu entnehmen.