AKD CANopen | 6 CANopen-Kommunikationsprofil
6.4.5 Servicedatenobjekte (SDO)
Mit Hilfe der SDOs erfolgt der Zugriff auf das Objektverzeichnis. Die SDOs werden zur Parametrierung und zur
Statusabfrage (Polling) verwendet. Der Zugriff auf ein einzelnes Objekt erfolgt mit einem Multiplexer über Index
und Subindex des Objektverzeichnisses. AKD unterstützt die folgenden Kommunikationsprotokolle:
Initiate SDO Download Protocol (Protokoll „SDO-Download starten")
l
Download SDO Segment Protocol (Protokoll „SDO-Segment herunterladen")
l
Initiate SDO Upload Protocol (Protokoll „SDO-Upload starten")
l
Upload SDO Segment Protocol (Protokoll „SDO-Segment hochladen")
l
Abort SDO Transfer Protocol (Protokoll „SDO-Transfer abbrechen")
l
Die Definition der einzelnen Kommunikationsdienste und der Protokolle sind DS301 zu entnehmen.
Beispiele zur Handhabung von SDOs sind im Anhang ab Seite zu finden.
6.4.5.1 Zusammensetzung des Servicedatenobjekts
Ein SDO setzt sich aus folgenden Komponenten zusammen:
Byte
1
2
Inhalt
R/W
Index
1. Steuerbyte (Byte 1):
Das Steuerbyte bestimmt, ob über das SDO schreibend oder lesend auf den Eintrag im Objektverzeichnis
zugegriffen wird. Eine Darstellung des gesamten Objektverzeichnisses für AKD=> S. 118. Der Datenaustausch
mit dem AKD hält sich an den Standard CMS Multiplexed Domain Protocols, wie er im CAN-Standard DS 202
beschrieben wird.
Um Daten zu lesen, muss ein Schreibzugriff entsprechend folgender Darstellung auf das Steuerbyte erfolgen:
Bit
7
6
Inhalt
ccs=2
ccs => Client Command Specifier (ccs = 2 => Initiate Upload Request)
X => beliebig
Der Wert 0100 0000 (binär) oder 40h muss im Kontroll-Byte übertragen werden.
Der Servoverstärker antwortet entsprechend mit einem Antwortbyte:
Bit
7
6
Inhalt
scs=2
scs =>Server Command Specifier (scs = 2 => Initiate Upload Response)
n =>nur gültig bei e = s = 1. Ist dies der Fall, so steht in n die Zahl der Bytes, die keine Daten enthalten.
X =>beliebig
Wenn der Lesezugriff erfolgreich war, sind im Antwortbyte immer die Bits 0 und 1 auf 1 gesetzt (e=s=1).
Kodierte Byte-Länge in der SDO-Antwort:
0x43 - 4 Bytes
0x47 - 3 Bytes
0x4B - 2 Bytes
0x4F - 1 Byte.
Wenn ein Fehler auftritt, wird scs auf 4 gesetzt, das Antwort-Byte ist 0x80 und die Fehlerinformation
ist im 4-Byte Datenfeld enthalten. Zur Aufschlüsselung des Fehlers => S. 42.
34
Kollmorgen™ | August 2012
Da es sich bei einem SDO um einen bestätigten Dienst handelt, muss das System
immer auf das SDO-Antworttelegramm warten, bevor ein neues Telegramm
gesendet werden kann.
3
4
5
6
Subindex
Daten
5
4
3
2
1
X
X
X
X
5
4
3
2
1
X
n
e
7
8
0
X
0
s