CANopen Informationen
TR-Electronic GmbH 2010, All Rights Reserved
Printed in the Federal Republic of Germany
Page 18 of 183
TR - ELA - BA - DGB - 0016 - 04
01/20/2017
3.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)
3.5.1 SDO-Nachrichtenformat
Der maximal 8 Byte lange Datenbereich einer CAN-Nachricht wird von einem SDO
wie folgt belegt:
CCS
Index
Subindex
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
(
CCS = Client Command Specifier
) identifiziert bei der SDO
Request, ob gelesen oder geschrieben werden soll. Bei einem Schreibauftrag wird
zusätzlich die Anzahl der zu schreibenden Bytes im CCS kodiert.
Bei der SDO Response zeigt der CCS an, ob die Request erfolgreich war. Im Falle
eines Leseauftrags gibt der CCS zusätzlich Auskunft über die Anzahl der gelesenen
Bytes:
CCS
Bedeutung
Gültig für
0x22
Schreibanforderung
SDO Request
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 CCS = 0x80) enthält der Datenbereich einen
4-Byte-Fehlercode, der über die Fehlerursache Auskunft gibt. Die Bedeutung der
Fehlercodes ist aus der Tabelle 16, Seite 88 zu entnehmen.