Safety Service Data Objects (SSDOs) shall be used for accessing the Object Directory (SOD) of an SSDO-Server by an SSDO-Client. SSDO telegrams shall be identified by bits 7, 6 and 5 (111b) of the ID. Bit 3 and 4 of the ID shall identify an SOD-access (00b). Bit 2 shall identify request (0b) and response (1b) telegrams.
7.3.2 SSDO telegram types
The ID field identifies the telegram. The following telegram types are specified:
⎯ SSDO Service Request
⎯ SSDO Service Response
Table 13 specifies the coding of the ID field.
Table 13 – SSDO telegram types (ID field, bits 2, 3 and 4)
Bit number of ID field
7 6 5 4 3 2 1 0
Telegram type
1 1 1 0 0 0 SSDO_Service_Request
1 1 1 0 0 1 SSDO_Service_Response
The SSDO Service Request telegram (SSDO_Service_Request) shall be used by an SSDO client to access the SOD of an SSDO server. With an SSDO_Service_Request, an SSDO client shall provide the server SN address (ADR), the length of the payload data (LE), the Access Request Number SANo (CT field). It shall also specify in the first data octet in the
"Command Octet" (SACmd, see Table 14) access type (Read/Write), transfer type (expedited/segmented), toggle bit and initialize or last segment of the transfer. In data octets 1 and 2, the index of the accessed object dictionary entry, in data octet 3 the sub index of the accessed entry shall be specified. The SN address of the SSDO client shall be provided in TADR.
The SSDO Service Response telegram (SSDO_Service_Response) shall be used by an SSDO server to respond to a request from an SSDO client. The SOD Access Request Number (SANo) shall be unique for each connection and incremented by one with every new SOD Access Request telegram. The response telegram shall contain the SANo value of the corresponding service request.
The maximum number of payload data shall be 250 octets.
The SOD Access Command (SACmd) bit encoding is specified in Table 14.
Table 14 – SOD Access Command (SACmd) – bit coding
Bit No. Name Value Meaning 0 SOD Read Access
0 Access Type
1 SOD Write Access
1 Reserved 1 0 Reserved
0 Successful transfer 2 Abort transfer
1 Abort transfer 3 Segmentation 0 Expedited SOD access
Bit No. Name Value Meaning
1 Segmented SOD access
0 4 Toggle
1
This bit shall alternate for each subsequent segment and not change its value in case of a repeated transmission. The first segment shall have the toggle bit set to 0. The toggle bit shall be equal for the request and the response telegram.
0 No initiate transfer 5 Initiate
transfer
1 Initiate transfer 0 More segments to transfer
6 End segment
transfer
1 No more segments to transfer
7 Reserved 2 0 Reserved
7.3.3 SSDO services and protocols The following SSDO services shall be defined:
⎯ SSDO Download, which is subdivided into:
⎯ SSDO Download Initiate,
⎯ SSDO Download Segment;
⎯ SSDO Upload, which is subdivided into:
⎯ SSDO Upload Initiate,
⎯ SSDO Upload Segment;
⎯ SSDO Abort.
Figure 24 defines the SSDO segmented and expedited download protocols.
Client Server Client Server
SSDO segmented download SSDO expedited download
SSDO download initiate
SSDO download segment
SSDO download segment
SSDO download segment (last)
SSDO download initiate
Figure 24 – SSDO download protocols Figure 25 defines SSDO segmented and expedited upload protocols.
Client Server Client Server SSDO segmented upload SSDO expedited upload
SSDO upload initiate
SSDO upload segment
SSDO upload segment
SSDO upload segment (last)
SSDO upload initiate
Figure 25 – SSDO upload protocols 7.3.4 SSDO Initiate Download
Figure 26 specifies the initiate download protocol.
Figure 26 – SSDO Initiate Download protocol
Table 15 specifies the fields of an Initiate Download SSDO_Service_Request telegram.
Table 15 – Fields of Initiate Download SSDO_Service_Request telegram
Field Information Content / Value ADR Address of SSDO Server to be accessed DSADR
ID SSDO_Service_Request 111000xxb
LE Length of payload data 4 -- 254
CT SOD Access Request number (SANo) 1 -- 65 535, 0 not allowed DB0 SOD Access Command (SACmd) expedited or segmented 00100001b or 00101001b DB1, DB2 Index of SOD entry to be accessed 0 -- 65 535
DB3 Sub index of SOD entry to be accessed 0 -- 255 DB4 – DBn Payload data (In case of a segmented download, DB4-DB7
contains the data size of the payload data of the block. If the data size is 0, the size is not indicated.)
Payload data
TR Not used 0
TADR Address of SSDO Client SSADR
Table 16 specifies the fields of an Initiate Download SSDO_Service_Response telegram.
Table 16 – Fields of Initiate Download SSDO_Service_Response telegram
Field Information of Content / Value ADR Address of SSDO Client to be responded DSADR
ID SSDO_Service_Response 111001xxb
LE Length of payload data 4
CT Echo of SOD Access Request number 1 -- 65 535, 0 not allowed DB0 SOD Access Command (SACmd) expedited or
Segmented
00100001b or 00101001b DB1, DB2 Index of SOD entry to be accessed 0 -- 65 535 DB3 Sub index of SOD entry to be accessed 0 -- 255
TR Not used 0
TADR Address of SSDO Server SSADR
7.3.5 SSDO Segmented Download
Figure 27 specifies the Segmented Download protocol.
Figure 27 – SSDO Segmented Download protocol
Table 17 specifies the fields of a Segmented Download SSDO_Service_Request telegram.
Table 17 – Fields of Segmented Download SSDO_Service_Request telegram
Field Information Content / Value ADR Address of SSDO Server to be accessed DSADR
ID SSDO_Service_Request 111000xxb
LE Length of payload data 4 -- 254
CT SOD Access Request number (SANo) 1 -- 65 535, 0 not allowed DB0 SOD Access Command (SACmd) middle segment or end
segment
000x1001b or 010x1001b DB1, DB2 Index of SOD entry to be accessed 0 -- 65 535
DB3 Sub index of SOD entry to be accessed 0 -- 255
DB4 – DBn Payload data Payload data
Field Information Content / Value
TR Not used 0
TADR Address of SSDO Client SSADR
Table 18 specifies the fields of a Segmented Download SSDO_Service_Response telegram.
Table 18 – Fields of Segmented Download SSDO_Service_Response telegram
Field Information Content / Value ADR Address of SSDO Client to be responded DSADR
ID SSDO_Service_Response 111001xxb
LE Length of payload data 4
CT Echo of SOD Access Request number 1 -- 65 535, 0 not allowed DB0 SOD Access Command (SACmd) middle segment or end
segment
000x1001b or 010x1001b DB1, DB2 Index of SOD entry to be accessed 0 -- 65 535
DB3 Sub index of SOD entry to be accessed 0 -- 255
TR Not used 0
TADR Address of SSDO Server SSADR
7.3.6 SSDO Initiate Upload
Figure 28 specifies the Initiate Upload protocol. The Initiate Upload telegram shall always be expedited. Based on the response the SSDO client shall continue with expedited or segmented transfer.
Figure 28 – SSDO Initiate Upload protocol
Table 19 specifies the fields of an Initiate Upload SSDO_Service_Request telegram.
Table 19 – Fields of Initiate Upload SSDO_Service_Request telegram
Field Information Content / Value ADR Address of SSDO Server to be accessed DSADR
ID SSDO_Service_Request 111000xxb
LE Length of payload data 4
CT SOD Access Request number (SANo) 1 -- 65 535, 0 not allowed
Field Information Content / Value DB0 SOD Access Command (SACmd) expedited 00100000b
DB1, DB2 Index of SOD entry to be accessed 0 -- 65 535 DB3 Sub index of SOD entry to be accessed 0 -- 255
TR Not used 0
TADR Address of SSDO Client SSADR
Table 20 specifies the fields of an Initiate Upload SSDO_Service_Response telegram.
Table 20 – Fields of Initiate Upload SSDO_Service_Response telegram
Field Information Content / Value ADR Address of SSDO Client to be responded DSADR
ID SSDO_Service_Response 111001xxb
LE Length of payload data 4 -- 254
CT Echo of SOD Access Request number 1 -- 65 535, 0 not allowed DB0 SOD Access Command (SACmd) expedited or
Segmented
00100000b or 00101000b DB1, DB2 Index of SOD entry to be accessed 0 -- 65 535
DB3 Sub index of SOD entry to be accessed 0 -- 255 DB4 – DBn Payload data (In case of a segmented upload, DB4-DB7 contains
the data size of the payload data of the block. If the data size is 0, the size is not indicated.)
Payload data
TR Not used 0
TADR Address of SSDO Server SSADR
7.3.7 SSDO Segmented Upload
Figure 29 specifies the Segmented Upload protocol. The SSDO client always requests a middle segment. Based on the response, the SSDO client shall decide whether a middle segment or the end segment was sent.
Figure 29 – SSDO Segmented Upload protocol
Table 21 specifies the fields of a Segmented Upload SSDO_Service_Request telegram.
Table 21 – Fields of Segmented Upload SSDO_Service_Request telegram
Field Information Content / Value ADR Address of SSDO Server to be accessed DSADR
ID SSDO_Service_Request 111000xxb
LE Length of payload data 4
CT SOD Access Request number (SANo) 1 -- 65 535, 0 not allowed DB0 SOD Access Command (SACmd) middle segment 000x1000b
DB1, DB2 Index of SOD entry to be accessed 0 -- 65 535 DB3 Sub index of SOD entry to be accessed 0 -- 255
TR Not used 0
TADR Address of SSDO Client SSADR
Table 22 specifies the fields of a Segmented Upload SSDO_Service_Response telegram.
Table 22 – Fields of Segmented Upload SSDO_Service_Response telegram
Field Information Content / Value ADR Address of SSDO Client to be responded DSADR
ID SSDO_Service_Response 111001xxb
LE Length of payload data 4 -- 254
CT Echo of SOD Access Request number 1 -- 65 535, 0 not allowed DB0 SOD Access Command (SACmd) middle segment or end
segment
000x1000b or 010x1000b DB1, DB2 Index of SOD entry to be accessed 0 -- 65 535 DB3 Sub index of SOD entry to be accessed 0 -- 255
DB4 -- DBn Payload data Payload data
TR Not used 0
TADR Address of SSDO Server SSADR
7.3.8 SSDO Abort
Figure 30 specifies the SSDO Abort protocol.
Figure 30 – SSDO Abort protocol
Table 23 specifies the fields of an Abort SSDO_Service_Request telegram.
Table 23 – Fields of Segmented Upload SSDO_Service_Request telegram
Field Information Content / Value ADR Address of the SSDO Client to be informed DSADR
ID SSDO_Service_Request 111000xxb
Field Information Content / Value
LE Length of payload data 8
CT SOD Access Request number (SANo) 1 -- 65 535, 0 not allowed
DB0 SOD Access Command (SACmd) 00000100b
DB1, DB2 Index of SOD entry 0 -- 65 535
DB3 Sub index of SOD entry 0 -- 255
DB4 -- DB7 Abort code, see Table 25 Abort code
TR Not used 0
TADR Address of the SSDO Server initiating the abort SSADR
Table 24 specifies the fields of an Abort SSDO_Service_Response telegram.
Table 24 – Fields of Segmented Upload SSDO_Service_Response telegram
Field Information Content / Value ADR Address of the SSDO Client to be informed DSADR
ID SSDO_Service_Response 111001xxb
LE Length of payload data 8
CT SOD Access Request number (SANo) 1 -- 65 535, 0 not allowed
DB0 SOD Access Command (SACmd) 00000100b
DB1, DB2 Index of SOD entry 0 -- 65 535
DB3 Sub index of SOD entry 0 -- 255
DB4 -- DB7 Abort code, see Table 25 Abort code
TR Not used 0
TADR Address of the SSDO Server initiating the abort SSADR
The payload data of the SSDO Abort telegram shall contain an error code as specified in Table 25. The abort code shall be encoded as UNSIGNED32 value. Abort codes not listed in Table 25 shall be reserved.
Table 25 – SSDO Abort codes
Abort code a Description 05030000h Reserved
05040000h SSDO protocol timed out
05040001h Client/server Command ID not valid or unknown 05040002h Invalid block size
05040003h Invalid sequence number 05040004h Reserved 05040005h Out of memory
06010000h Unsupported access to an object 06010001h Attempt to read a write-only object 06010002h Attempt to write a read-only object
06020000h Object does not exist in the object dictionary 06040041h Object cannot be mapped to the SPDO
06040042h The number and length of the objects to be mapped would exceed SPDO length 06040043h General parameter incompatibility
06040047h General internal incompatibility in the device 06060000h Access failed due to a hardware error
06070010h Data type does not match, length of service parameter does not match 06070012h Data type does not match, length of service parameter too high 06070013h Data type does not match, length of service parameter too low 06090011h Sub index does not exist
Abort code a Description 06090030h Value range of parameter exceeded (only for write access) 06090031h Value of parameter written too high
06090032h Value of parameter written too high 06090036h Value of parameter written too high 08000000h Value of parameter written too high
08000020h Data cannot be transferred or stored to the application
08000021h Data cannot be transferred or stored to the application because of local control 08000022h Data cannot be transferred or stored to the application because of the present
device state
08000023h Data cannot be transferred or stored to the application because application is busy a The Abort code is shown in hexadecimal notation, as designated by the "h" suffix.