Hi J.,
Byte 0 is used as protocol header. Here the client specifies the requested protocol and the server answers accordingly.
To read a simple parameter the client sends a Read Request (Initiate SDO Upload Protocol):
Byte 0:
Bit 7..5 : client command specifier (ccs) = 2
Bit 1..4 : not used , always 0
Byte 1: Index High Byte
Byte 2: Index Low Byte
Byte 3: Subindex
Byte 4..8: reserved, always 0
The server respondsByte 0:
Bit 7..5 : server command specifier (scs) = 2
Bit 4 : not used , always 0
Bit 3..2: (n) number of Bytes in Byte 4-8 that do not contain data
only valid if e=1 and s=1
Bit 1 : (e)
Bit 0 : (s)
If e=0 and s=1 Byte 4-8 contain the number of bytes to be uploaded and futher segment transfers are necessary to upload all data.
If e=1 and s=1 Byte 4-8 contain the data of length 4-n to be uploaded.
If e=1 and s=0 Byte 4-8 contain an unspecified number of bytes to be uploaded.
Byte 1: Index High Byte
Byte 2: Index Low Byte
Byte 3: Subindex
Byte 4..8: data as specified by n,e and s
So a read request may start with
Byte 0 = 0100 0000 = 40hA valid response starts with
Byte 0 = 0100 0010 = 42hAn Access Error response has
Byte 0 = 1000 0000 = 80hYou find a full protocol description in the CiA (CAN in Automation) Standard 301.
I hope this information gets you started
Anke