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