CANopen stack errors¶
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 |