Description of CANopen-Interface
HYDAC ELECTRONIC GMBH
07.10.2010
Mat. No. 669824
Page 16 of 63
4.5 Transmission of SDO messages
The transmission of SDO messages is done by the CMS “Multiplexed Domain”
protocol (CIA DS202-2).
With SDOs objects from the object dictionary can be read or written. It is an
acknowledged service. The so-called
SDO
client
specifies in its request the
parameter, the access method (read/write) and if necessary the value. The so-called
SDO
server
performs the write or read access and answers the request with a
response. In the error case an error code gives information about the cause of error.
Transmit-
SDO and Receive-SDO are distinguished by their function codes.
The measuring system (slave) corresponds to the SDO server and uses the following
function codes:
Function codes
COB-ID
Meaning
11 (1011 bin)
0x580 + Node ID
Slave
SDO Client
12 (1100 bin)
0x600 + Node ID
SDO Client
Slave
Table 1: COB-IDs for Service Data Object (SDO)
4.5.1 SDO message format
The data field with max. 8 byte length of a CAN message is used by a SDO as
follows:
CCD
Index
Sub-Index
Data
Byte 0
Byte 1
Low
Byte 2
High
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Table 2: SDO message
The
command code
(
CCD
) identifies whether the SDO is to be read or written. In
addition with a writing order, the number of bytes which can be written is encoded in
the CCD.
At the SDO response the CCD reports whether the request was successful. In the
case of a reading order the CCD gives additionally information about the number of
bytes, which could be read:
CCD
Meaning
Valid for
0x23
Write 4 bytes
SDO Request
0x2B
Write 2 bytes
SDO Request
0x2F
Write 1 byte
SDO Request
0x60
Writing successfully
SDO Response
0x80 Error
SDO
Response
0x40
Reading request
SDO Request
0x43
4 byte data read
SDO response upon reading request
0x4B
2 byte data read
SDO response upon reading request
0x4F
1 byte data read
SDO response upon reading request
Table 3: SDO command codes
In the case of an error (SDO response CCD = 0x80) the data field contains a 4-byte
error code, which gives information about the error cause. Meaning of the error codes
see table Table 10 on page 60.