CANopen Error description
Generic
Error |
Code |
Description |
|---|---|---|
Successful |
0x0000 |
No error/successful run |
IllegalInstance |
0x0001 |
The called instans does not exist |
InvalidInstanceParam |
0x0002 |
Invalid instance |
NoFreeInstance |
0x0003 |
AddInstance was called but no free instance is available |
WrongSignature |
0x0004 |
Wrong signature while writing to object 0x1010 or 0x1011 |
UnsupportedBtrTable |
0x0005 |
Unsupported baudrate table was configured with LSS service |
UnsupportedBtrIndex |
0x0006 |
Unsupported baudrate index was configured with LSS service |
InvalidNodeId |
0x0007 |
CANopen was initialized with an invalid NodeId |
NoResource |
0x0008 |
Resource could not be created (Windows, PxROS, …) |
InvalidParam |
0x0009 |
Generic error code for an invalid param |
OriginalBehaviour |
0x000A |
Defines an error code for callback handlers in application which needs to keep the original behaviour in CANopen stack |
CDRV
Error |
Code |
Description |
|---|---|---|
CdrvNoMsg |
0x0010 |
No CAN message was received |
CdrvMsgHigh |
0x0011 |
CAN message with high priority was received |
CdrvMsgLow |
0x0012 |
CAN message with low priority was received |
CdrvInitError |
0x0013 |
Initialisation error |
CdrvNoFreeChannel |
0x0014 |
CAN controller has not a free channel |
CdrvTxBuffHighOverrun |
0x0015 |
Buffer for high priority CAN transmit messages has overrun |
CdrvTxBuffLowOverrun |
0x0016 |
Buffer for low priority CAN transmit messages has overrun |
CdrvIllegalBdi |
0x0017 |
Unsupported baudrate within baudrate table |
CdrvBusy |
0x0018 |
Remote frame can not be updated because no bus contact or CAN |
CdrvInvalidDriverType |
0x0019 |
(PC: Windows or Linux) invalid driver type |
CdrvDriverNotFound |
0x001A |
(PC: Windows or Linux) driver (DLL) could not be found |
CdrvInvalidBaseAddress |
0x001B |
(PC: Windows or Linux) driver could not found the CAN controller |
CdrvInvalidParam |
0x001C |
Invalid param in function call |
CdrvInvalidDevNumber |
0x001D |
(PC: Windows or Linux) the given device number is invalid |
CdrvDevAlreadyInUse |
0x001E |
(PC: Windows or Linux) the device with the given number is already in use |
CdrvHostOsError |
0x001F |
(PC: Windows or Linux) OS specific internal error (e.g. malloc, y_from_user, …) |
COB
Error |
Code |
Description |
|---|---|---|
CobNoFreeEntry |
0x0020 |
No free entry in RX- or TX-COB table |
CobAlreadyExist |
0x0021 |
COB-ID already exists in RX- resp. TX-COB table |
CobIllegalHdl |
0x0022 |
Illegal handle for a COB was assigned |
CobIllegalCanId |
0x0023 |
COB-ID is not allowed (like 0x000 is reserved for NMT, …) |
CobInvalidCanId |
0x0024 |
COB-ID is switched off |
CobCdrvStateSet |
0x0025 |
At least one bit of CAN driver state is set |
CobNoFreeEntryHighBuf |
0x0026 |
No free entry in high priotity RX- or TX-COB table |
CobOwnId |
0x0027 |
COB-ID already exists in own module which calls CobDefine() or CobCheck() |
CobWrongCobType |
0x0028 |
A COB which was definded as Rx-Message should be sent |
OBD
Error |
Code |
Description |
|---|---|---|
ObdIllegalPart |
0x0030 |
Unknown OD part |
ObdIndexNotExist |
0x0031 |
Object index does not exist in OD |
ObdSubindexNotExist |
0x0032 |
Subindex does not exist in object index |
ObdReadViolation |
0x0033 |
Read access to a write-only object |
ObdWriteViolation |
0x0034 |
Write access to a read-only object |
ObdAccessViolation |
0x0035 |
Access not allowed |
ObdUnknownObjectType |
0x0036 |
Object type not defined/known |
ObdVarEntryNotExist |
0x0037 |
Object does not contain VarEntry structure |
ObdValueToLow |
0x0038 |
Value to write to an object is to low |
ObdValueToHigh |
0x0039 |
Value to write to an object is to high |
ObdValueLengthError |
0x003A |
Value to write is to long or to short |
ObdIllegalFloat |
0x003B |
Illegal float variable |
ObdWrongOdBuilderKey |
0x003F |
OD was generated with demo version of tool ODBuilder |
NMT
Error |
Code |
Description |
|---|---|---|
NmtUnknownCommand |
0x0040 |
Unknown NMT command |
NmtLifeguardVsHeartbeat |
0x0041 |
One of life guarding or heartbeat was configured but the other one is already configured |
NmtBootupNotPossible |
0x0042 |
Bootup message can not be sent in this NMT state |
NmtHbcWrongCfg |
0x0043 |
Configuration of Heartbeat Consumer was wrong |
NmtmSlaveNodeExist |
0x0044 |
NMT slave node can not be added because it does already exist |
NmtmNoFreeSlaveEntry |
0x0045 |
No free entry to add a new NMT slave node |
NmtmSlaveEntryNotExist |
0x0046 |
NMT slave node was never added |
NmtStateError |
0x0047 |
Error has occured during NMT state machine |
NmtmInvalidSlaveNodeId |
0x0048 |
Not a valid Slave Node Id |
SDO client
Error |
Code |
Description |
|---|---|---|
SdocInitError |
0x0050 |
Initial. or changing parameter not successful |
SdocInvalidParam |
0x0051 |
One of the function parameter is invalid |
SdocClientNotExist |
0x0052 |
Selected SDO client does not exist |
SdocBusy |
0x0053 |
SDO client is already busy |
SdocTransferError |
0x0054 |
An error occured during SDO transfer |
SdocWrongMultiplexor |
0x0055 |
An SDO response was received with wron multiplexor |
SdocEntryAlreadyDefined |
0x0056 |
Client entry is already defined |
SdocNoFreeEntry |
0x0057 |
No free client entry found in SDO server table |
SdocConfigOrder |
0x0058 |
SDO server
Error |
Code |
Description |
|---|---|---|
SdosInitError |
0x0060 |
Initial. or changing parameter not successful |
SdosServerNotExist |
0x0061 |
Selected SDO server does not exist |
SdosBusy |
0x0062 |
SDO server is already busy |
SdosSizeMismatch |
0x0063 |
|
SdosNoFreeEntry |
0x0064 |
No free server entry found in SDO server table |
SdosEntryAlreadyDefined |
0x0065 |
Server entry is already defined |
SdosConfigOrder |
0x0066 |
|
SdosWrongDlc |
0x0067 |
|
SdosWrongCcs |
0x0068 |
PDO module
Error |
Code |
Description |
|---|---|---|
PdoNotExist |
0x0070 |
Selected PDO does not exist |
PdoLengthExceeded |
0x0071 |
Length of PDO mapping exceedes 64 bis |
PdoGranularityMismatch |
0x0072 |
Configured PDO granularity is not equal to supported granularity |
PdoInitError |
0x0073 |
Error during initialisation of PDO module |
PdoErrorPdoEncode |
0x0074 |
Error during encoding a PDO |
PdoErrorPdoDecode |
0x0075 |
Error during decoding a PDO |
PdoErrorSend |
0x0076 |
Error during sending a PDO |
PdoErrorSyncWin |
0x0077 |
The SYNC window runs out during sending SYNC-PDOs |
PdoErrorMapp |
0x0078 |
Invalid PDO mapping |
PdoVarNotFound |
0x0079 |
Variable was not found in function PdoSignalVar() |
PdoErrorEmcyPdoLen |
0x007A |
The length of a received PDO is unequal to the expected value |
PdoWriteConstObject |
0x007B |
Constant object can not be written (only TxType, Inhibit-, Event Time for CANopen Kit) |
PdoErrorRxEventTimer |
0x007C |
If an RPDO is configured with Event Timer, but PDO is not received after this time CcmCbError() will be |
LsssResetNode |
0x0080 |
NMT command reset node has to be processed after LSS configuration |
LsssInvalidNodeId |
0x0081 |
No valid NodeId is configured -> wait until it is configured with |
EmccNoFreeProducerEntry |
0x0090 |
No free entry to add a Emergency Producer |
EmccNodeIdNotExist |
0x0091 |
Selected NodeId was never added |
EmccNodeIdInvalid |
0x0092 |
Selected NodeId is outside of range (0x01 until 0x7F) |
EmccNodeIdExist |
0x0093 |
Selected NodeId already exist |
Dynamic OD
Error |
Code |
Description |
|---|---|---|
DynNoMemory |
0x00A0 |
No memory available |
DynInvalidConfig |
0x00A1 |
Invalid configuration in segment container |
Heartbeat
Error |
Code |
Description |
|---|---|---|
HbcEntryNotExist |
0x00B0 |
Heartbeat Producer node not configured |
HbcEntryAlreadyExist |
0x00B1 |
NodeId was already defined in heartbeat consumer table (object 0x1016) |
HbcNoFreeEntry |
0x00B2 |
Configuration manager
Error |
Code |
Description |
|---|---|---|
CfgMaConfigError |
0x00C0 |
Error in configuration manager |
CfgMaSdocTimeOut |
0x00C1 |
Error in configuration manager, Sdoc timeout |
CfgMaNoErrorCb |
0x00C2 |
No error callback function is used |
CfgMaNoFreeConfig |
0x00C3 |
No free entry in internal list for configuratio |
CfgMaNoConfigData |
0x00C4 |
No data for configuration found in 0x1F22 |
CfgMaInvaildSdoc |
0x00C5 |
The SDO Client Index is not in Rang 0x1280 util 0x1300 |
CfgMaConfigwithErrors |
0x00C6 |
Configuration of node finished, but with errors |
CfgMaConciseCorrupt |
0x00C7 |
Concise DCF is corrupt |
LSS master
Error |
Code |
Description |
|---|---|---|
LssmIllegalMode |
0x00D0 |
Illegal LSS mode (operation / configuration) |
LssmIllegalState |
0x00D1 |
Function was called in illegal state of LSS master |
LssmBusy |
0x00D2 |
LSS process is busy with an previous service |
LssmIllegalCmd |
0x00D3 |
Illegal command code was set for function LssmInquireIdentity() |
LssmTimeout |
0x00D4 |
LSS slave did not answer a LSS service |
LssmErrorInConfirm |
0x00D5 |
LSS slave replied an error code for a LSS service |
CCM
Error |
Code |
Description |
|---|---|---|
CcmStoreUnvalidState |
0x00E0 |
Memory device not available due device state |
CcmStoreHwError |
0x00E1 |
Hw error due device access |
SDO router
Error |
Code |
Description |
|---|---|---|
SdorInvalidNetworkId |
0x00F0 |
Invalid netwird-ID |
SdorWrongRoutingNetwork |
0x00F1 |
Port number is the own instance |
SdorInvalidPortNr |
0x00F2 |
Invalid port number |
SdorNoSdocAvailable |
0x00F3 |
No SDO client is available |
SdorWaitingNetworInd |
0x00F4 |
NOT AN ERROR: network indication has been started for next router - SDO server has to wait for the |
SDRO
Error |
Code |
Description |
|---|---|---|
SrdoNotExist |
0x0100 |
Selected SRDO does not exist |
SrdoGranularityMismatch |
0x0101 |
Configured SRDO granularity is not equal to supported granularity |
SrdoCfgTimingError |
0x0102 |
Configuration is not ok (Timing) |
SrdoCfgIdError |
0x0103 |
Configuration is not ok (CobIds) |
SrdoCfgCrcError |
0x0104 |
Configuration is not ok (CRC) |
SrdoNmtError |
0x0105 |
An action was tried in a wrong NMT state |
SrdoInvalidCfg |
0x0106 |
An action was tried with an invald SRDO configuration |
SrdoInvalid |
0x0107 |
An action was tried with an invald SRDO |
SrdoRxTxConflict |
0x0108 |
An transmission was tried with an receive SRDO (or the other way) |
SrdoIllegalCanId |
0x0109 |
The CanId is invalid |
SrdoCanIdAlreadyInUse |
0x010A |
The CanId is already in use |
SrdoNotInOrder |
0x010B |
The two messages of a SRDO are not in order |
SrdoSctTimeout |
0x010C |
Timeout of SCT |
SrdoSrvtTimeout |
0x010D |
Timeout of SRVT |
SrdoCanIdNotValid |
0x010E |
One of received CAN-IDs are not equal to configured one |
SrdoDlcNotValid |
0x010F |
One of received CAN-DLC are not equal to configured one |
SrdoErrorMapp |
0x0110 |
Wrong values in mapping found |
SrdoDataError |
0x0111 |
Data of CAN messages are not invers |
SrdoLengthExceeded |
0x0112 |
Length of SRDO mapping exceedes 64 bit per CAN-message |
SrdoNotHandledInApp |
0x0113 |
The SRDO error was not handled in AppSrdoError() |
SrdoOverrun |
0x0114 |
A RxSRDO was received but the pevious one was not else processed |
SDO manager
Error |
Code |
Description |
|---|---|---|
SdomListFull |
0x0120 |
List for registration of possible SRD Clients is full |
SdomBusy |
0x0121 |
SDO Manager works |
SdomInternStructFull |
0x0122 |
An internal structure is full |
SdomErrorCbInternError |
0x0123 |
For Errorcallback function to indicate an internal error |
SdomErrorCbError |
0x0124 |
For Errorcallback function to indicate a Error |
SRD client
Error |
Code |
Description |
|---|---|---|
SrdBusy |
0x0130 |
SRD Client is not in State Idle |
SrdNotRegistered |
0x0131 |
SRD Client not registered to SDO Manager |
SrdNoAnswerSdom |
0x0132 |
SRD Client got no answer from SDO Manager |
SrdNotMasterMode |
0x0133 |
SRD Client MasterMode not TRUE |
SrdNotDynConnection |
0x0134 |
The connection to release is no dynamic connection |
SrdSdomNotUndefSdoc |
0x0135 |
SDO Manager did not undefine SDO Client after release connection was successfully requested |
CANopen manager
Error |
Code |
Description |
|---|---|---|
MgrTaskDeferred |
0x0140 |
Mgr performs task in background and informs the application, when it is finished |
MgrInvalidOperation |
0x0141 |
Calling MgrEnterOperational() or any other function call is not allowed in this situation |
MgrInvalidParam |
0x0142 |
Passed invalid parameters to a function (e.g. invalid node id) |
MgrSdomError |
0x0143 |
Error in SDO manager while in boot slave process |
MgrNoFreeEntry |
0x0144 |
No free entry in node list |
MgrNodeBusy |
0x0145 |
Mgr performs SDO transfers to the request slave node by itself; no other SDO transfer possible at the moment |
MgrSdocTypeAutoRunning |
0x0146 |
A SDO transfer with type , MgrSdocTypeAuto is already running |
Flying master
Error |
Code |
Description |
|---|---|---|
FlyMaNmtStart |
0x0150 |
NO ERROR: only information that Flying Master has established the NMT mode |
FlyMaNmtReset |
0x0151 |
NO ERROR: only information that Flying Master has sent NMT Reset Communication |