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
Â