page5
SDO protocol
SDO are used to read or write to the object dictionary of a node.
The node which request a read or a write is the client node.
The node in which the data is read or written is the server node.
Read = upload protocol
Write = download protocol
To read or write a data of 4 bytes or less, the simplest way is to use the
SDO upload/download expedited protocol.
All the SDO have the same CAN frame length : 8 bytes of data and rtr = 0.
2F
To write the 1 byte data : 0xFD in the object dictionary of node 5, at index 0x1400, subindex 2, sends :
605 2F 00 14 02 FD 00 00 00
If success, the node 5 responds :
585 60 00 14 02 00 00 00 00
To write the 4 bytes data : 0x60120208 in the object dictionary of node 5, at index 0x1603, subindex 1, sends :
605 23 03 16 01 08 02 12 60
If success, the node 5 responds :
585 60 03 16 01 00 00 00 00
0
600 + Serv
NodeId
Examples
SDO Download expedited protocol
To write the data 0xd0d1... in the server node object dictionary, the client node sends :
Data length = 1 byte
Sub
index
d0
x
x
x
Index
X : undefined. Put 0
The server responds (if success) :
60
0
580 + Serv
NodeId
Sub
index
00
00
00
00
Index
The client request :
2B
0
600 + Serv
NodeId
Data length = 2 bytes
Sub
index
d1
d0
x
x
Index
X : undefined. Put 0
The client request :
27
0
600 + Serv
NodeId
Data length = 3 bytes
Sub
index
d2
d1
d0
x
Index
X : undefined. Put 0
The client request :
23
0
600 + Serv
NodeId
Data length = 4 bytes
Sub
index
d3
d2
d1
d0
Index
The client request :
The client request :
The server responds (if failure) :
80
0
580 + Serv
NodeId
Sub
index
Index
SDO abort code error