Trouble shooting

This chapter describes possible error situations. If you have trouble with the CANopen Library, please read the following error descriptions first.

If you do not find a solution for your problem in this chapter, you can request support, see chapter 1.6, or see the other appendixes for more description of internal behavior.

Please check the following points:

  • Have you checked the return values of the functions?

  • Are the #defines in cal_conf.h set correctly for the services used?

  • Have you checked the order of function calls?

  • Have you included the associated objects.h and cal_conf.h?

  • Have you recompiled the sources after changing objects.h and cal_conf.h?

  • Do you have an overview which functionalities should be made on your local device and which on the remote device(s)?

Detailed error situations are listed in Table 45.

description

error reason

PDOs are not transmitted

·         node is not in state NMT/OPERATIONAL

·         PDO is disabled, see PDO parameter

·         PDO is only a RTR PDO

·         #define CONFIG_PDO_PRODUCER is not set

PDOs are not received

·         node is not in state NMT/OPERATIONAL

·         PDO is disabled, see PDO parameter

·         #define CONFIG_PDO_CONSUMER is not set

value of TPDO contents of remote device is wrong

·         dynamic mapping was not carried out

·         your compiler does not support byte alignment and #define CONFIG_ALIGNMENT is not set

dynamic PDO mapping is not possible on remote device (Abort Domain

Transfer)

·         mapping flag not set for selected variable

·         at RPDO: selected variable is read only

·         at TPDO: selected variable is write only

·         #define CONFIG_DYN_PDO_MAPPING was not set

·         #define CONFIG_MAX_DYN_MAP_ENTRIES was not set or their value is too low

variables contain wrong values

·         your compiler does not support byte alignment and #define CONFIG_ALIGNMENT is not set or has wrong value

·         you have included the wrong object dictionary

·         object dictionary variables are parameterized incorrectly

definePdo() returns

CO_E_MAP

·         PDO mapping entry in objects.c does not exist

·         your compiler does not support byte alignment and #define CONFIG_ALIGNMENT is not set or has wrong value

·         your processor uses big-endian format and #define CONFIG_BIG_ENDIAN is not set

device does not answer to SDO Transfer

·         #define CONFIG_SDO_SERVER is not set

device does not initiate to SDO Transfer

·         #define CONFIG_SDO_CLIENT is not set

no data transfer is possible after system integration

·         COB-ID of transmitter and receiver are not equal

Table 45: overview about mistakes made many times