Servicedatenobjekte (sdo), Protokoll, Client -> server, upload request – BECKHOFF FC5101 Benutzerhandbuch
Seite 51
Eiserstraße 5 / D-33415 Verl / Telefon 05246/963-0 / Telefax 05246/963-149
51
Servicedatenobjekte (SDO)
Die im Objektverzeichnis aufgeführten Parameter werden über Servicedatenobjekte gelesen und beschrieben.
Diese SDOs sind Multiplexed Domains, also Datenstrukturen beliebiger Größe, die mit einem Multiplexor (Ad-
resse) versehen sind. Der Multiplexor besteht aus 16-Bit-Index und 8-Bit-Subindex, die die entsprechenden
Einträge im Objektverzeichnis adressieren.
SDO-Protokoll: Zugriff auf Objektverzeichnis
Die CANopen Buskoppler sind Server für das SDO, d.h. sie stellen auf Anforderung des Clients (z.B. des IPCs
oder der SPS) Daten zur Verfügung (Upload) oder sie empfangen Daten vom Client (Download). Dabei findet
ein Handshake zwischen Client und Server statt.
Wenn der zu übertragende Parameter bis zu 4 Bytes umfasst, genügt ein einziger Handshake (ein Telegramm-
paar): Beim Download sendet der Client die Daten zusammen mit Index, Subindex und der Server bestätigt
den Erhalt. Beim Upload fordert der Client die Daten an indem er Index und Subindex des gewünschten Para-
meters überträgt, und der Server sendet den Parameter (incl. Index und Subindex) in seinem Antworttele-
gramm.
Für Upload und Download wird das gleiche Identifier-Paar verwendet. In den stets 8 Byte großen Telegrammen
sind im ersten Datenbyte die unterschiedlichen Dienste codiert. Bis auf die Objekte 1008h, 1009h und 100Ah
(Gerätename, Hardware- bzw. Softwareversion) sind alle Parameter der Buskoppler nur bis zu 4 Byte groß,
daher beschränkt sich diese Beschreibung auf die Übertragung dieser Daten im beschleunigten Transfer (Ex-
pedited Transfer).
Protokoll
Im Folgenden wird der Aufbau der SDO-Telegramme beschrieben.
Client -> Server, Upload Request
11-bit Identifier
8 Byte Nutzdaten
0x600 (=1536dez) + Node-ID
0x40
Index0
Index1
SubIdx
0x00 0x00 0x00 0x00
Parameter
Erläuterung
Index0
Index Low-Byte (Unsigned16, LSB)
Index1
Index High-Byte (Unsigned16, MSB)
SubIdx
Subindex (Unsigned8)