Supported platforms: CODESYS 2.3, CODESYS 3.5

 

Identifying an Abort Code

The SDO communication is point-to-point communication; every SDO request (from client SDO) needs a response (from server SDO). When the SDO request is erroneous or the device isn’t able to provide the requested data, an abort message will be given as a response.

 

The abort message includes the OD index to which the failed SDO transfer refers and four bytes long abort code. The abort code describes the reason of the error. Abort code leads to immediate termination of the SDO transmission.

 

The following example describes the abort code structure:

 

 

COB-ID

DLC

Command

byte

OD

index

OD

index

OD

sub-index

Abort

code

Abort

code

Abort

code

Abort

code

SDO read request (index 2201h sub-index 1)

601

8

40

01

22

01

00

00

00

00

SDO response (object does not exist)

581

8

80

01

22

01

00

00

02

06

 

The CiA Draft Standard 301 (also known as DS301) defines 29 abort codes. It is not possible to use own, non-defined abort codes. The following table lists CANopen SDO abort codes, the most common are highlighted.

 

Abort code

Description

0503 0000h

Toggle bit not alternated.

0504 0000h

SDO protocol timed out.

0504 0001h

Client/server command specifier not valid or unknown.

0504 0002h

Invalid block size (block mode only).

0504 0003h

Invalid sequence number (block mode only).

0504 0004h

CRC error (block mode only).

0504 0005h

Out of memory.

0601 0000h

Unsupported access to an object.

0601 0001h

Attempt to read a write only object.

0601 0002h

Attempt to write a read only object.

0602 0000h

Object does not exist in the object dictionary.

0604 0041h

Object cannot be mapped to the PDO.

0604 0042h

The number and length of the objects to be mapped would exceed PDO length.

0604 0043h

General parameter incompatibility reason.

0604 0047h

General internal incompatibility in the device.

0606 0000h

Access failed due to a hardware error.

0607 0010h

Data type does not match; length of service parameter does not match.

0607 0012h

Data type does not match; length of service parameter too high.

0607 0013h

Data type does not match; length of service parameter too low.

0609 0011h

Sub-index does not exist.

0609 0030h

Value range of parameter exceeded (only for write access).

0609 0031h

Value of parameter written too high.

0609 0032h

Value of parameter written too low.

0609 0036h

Maximum value is less than minimum value.

0800 0000h

General error.

0800 0020h

Data cannot be transferred or stored to the application.

0800 0021h

Data cannot be transferred or stored to the application because of local control.

0800 0022h

Data cannot be transferred or stored to the application because of the present device state.

0800 0023h

Object dictionary dynamic generation fails or no object dictionary is present (e.g. object dictionary is generated from file and generation fails because of a file error).

 

See also

 

 

 

Source file topic000850.htm

Last updated 21-Feb-2025