Supported platforms: CODESYS 3.5, CODESYS 3.5 SAFETY
|
Name of the Member |
Value |
Description |
|
CSDOStateIdle |
0 |
CSDO is in idle state and is ready for new transfer |
|
CSDOStateWaitDownloadResponse |
1 |
CSDO waits server to response for downloaded data |
|
CSDOStateWaitUploadResponse |
2 |
CSDO waits server to upload a datapacket |
|
CSDOStateWaitInitBlockDownloadResponse |
3 |
Waiting response for Initiate SDO block download protocol msg. |
|
CSDOStateBlockDownload |
4 |
Download the all segments of one block. |
|
CSDOStateWaitBlockDownloadResponse |
5 |
Waiting response for Download SDO block segment protocol msg. |
|
CSDOStateEndBlockDownload |
6 |
Transmit end SDO block download protocol msg. |
|
CSDOStateWaitEndBlockDownloadResponse |
7 |
Wait response to end SDO block download protocol msg. |
|
Name of the Member |
Value |
Description |
|
CSDOReqInit |
0 |
Initial status of transferring function block. SDO request is stopped. |
|
CSDOReqWaithChn |
1 |
Waiting for free CSDO channel. |
|
CSDOReqTransferOn |
2 |
Transfer going on. |
|
CSDOReqIdle |
3 |
Function block idle. |
Supported CANopen data type objects as in CiA DS301 (2014) and CENELEC EN50325-5 (2010).
PDO/SRDO mapping (16#0021) and Identity (16#0023) data objects are handled as an array of UNSIGNED32.
Since the enumeration is set as 'qualified only', generic numbering for application specific structures is included.
|
Name of the Member |
Default value (index) |
Object |
Description |
|
DefType_DEFTYPE |
0 |
|
Default type: Used with CANopenODAddLine when adding default type or default struct. Not handled as CANopen OD index. |
|
Deftype_BOOLEAN |
WORD#16#0001 |
Default type |
BOOL |
|
Deftype_INTEGER8 |
WORD#16#0002 |
Default type |
SINT |
|
Deftype_INTEGER16 |
WORD#16#0003 |
Default type |
INT |
|
Deftype_INTEGER32 |
WORD#16#0004 |
Default type |
DINT |
|
Deftype_UNSIGNED8 |
WORD#16#0005 |
Default type |
USINT |
|
Deftype_UNSIGNED16 |
WORD#16#0006 |
Default type |
UINT |
|
Deftype_UNSIGNED32 |
WORD#16#0007 |
Default type |
UDINT |
|
Deftype_REAL32 |
WORD#16#0008 |
Default type |
REAL |
|
Deftype_STRING |
WORD#16#0009 |
Default type |
STRING |
|
Deftype_Domain |
WORD#16#000F |
Default type |
STRUCT |
|
Defstruct_PDO_Communication |
WORD#16#0020 |
Default structure |
PDO communication parameter record |
|
Defstruct_SRDO_Communication |
WORD#16#0026 |
Default structure |
SRDO communication parameter record |
|
Name of the Member |
Data Type |
Description |
|
pData |
DWORD |
Pointer to data, used when data length is over 4 bytes. |
|
Data |
DWORD |
Data, used when data length is 4 bytes or less. |
|
Name of the Member |
Data Type |
Description |
|
NodeID |
BYTE |
The device's identification number in the CAN bus. |
|
itfCanChannel |
CANVXD_API.ICANVXD |
CAN channel interface |
|
pProtocols |
POINTER TO ProtocolEntry |
Pointer to first used protocol |
|
Name of the Member |
Data Type |
Description |
|
pData |
DWORD |
Pointer to data. |
|
FileSize |
UDINT |
Reserved memory size. |
|
DataSize |
UDINT |
Used buffer size. SDO download use this when downloading data. |
|
pFileName |
DWORD |
Pointer to the file name. |
|
Name of the Member |
Data Type |
Description |
|
Code |
WORD |
EMCY Error code. EMCY message bytes 0..1. |
|
Field |
ARRAY [1..5] OF BYTE |
Manufacturer specific Error Field. EMCY message bytes 3..7. |
|
RegisterMask |
BYTE |
Active bits for 1001h index. To be ORed into EMCY message byte 2 . |
|
Name of the Member |
Data Type |
Description |
|
Error |
EMCYObject |
EMCY object data. |
|
pPrev |
POINTER TO EMCYListObject |
Pointer to previous object for internal use. |
|
pNext |
POINTER TO EMCYListObject |
Pointer to next object for internal use. |
|
StateChangeTime |
TIME |
Time when EMCY state has changed. After sending this is zero. |
|
Active |
BOOL |
EMCY object activity status. |
|
Name of the Member |
Data Type |
Description |
|
pErrorRegister |
POINTER TO BYTE |
Error Register, data of OD index 1001h. |
|
pActiveEmcyCodes |
POINTER TO EMCYObject |
Linked list of active EMCYs. |
|
pCallback |
POINTER TO CANopenEMCYCallback |
Pointer to the first EMCY callback function. |
|
COBID |
DWORD |
COB-ID Emergency Object,data of OD index 1014h. |
|
InhibitTime |
TIME |
Inhibit time in milliseconds. |
|
InhibitTimeValue |
WORD |
InhibitTime EMCY (100us), data of OD index 1015h. |
|
LastTransmission |
TIME |
Last EMCY transmission time. |
|
Name of the Member |
Value |
Description |
|
NoError |
0 |
No error |
|
ODFull |
-1400 |
Object dictionary is full. |
|
SubIndexNotExist |
-1399 |
Subindex does not exist in object dictionary. |
|
TypedefMissing |
-1398 |
Typedef is missing in object dictionary. |
|
IndexZero |
-1397 |
Index is zero. |
|
IndexNotExist |
-1396 |
Index does not exist in object dictionary. |
|
TypedefIsNotTypedef |
-1395 |
Object's code is OD_DEFTYPE, but given TypeSpec is not DefType_DEFTYPE. |
|
DefstructMissing |
-1394 |
Default struct is not added to object dictionary. |
|
TypedefIsNotDefstruct |
-1393 |
Object's code is OD_RECORD, but given TypeSpec is not DefType_DEFSTRUCT. |
|
NotFound |
-1392 |
Requested item is not found. |
|
InputError |
-1391 |
Function input is erroneous. |
|
InterfaceError |
-1390 |
CAN interface returns an error. |
|
ProtocolDataMissing |
-1389 |
Requested protocol data is not added to device. |
|
NotInitialized |
-1388 |
Protocol is not initialized. |
|
DataError |
-1387 |
Error in handled data. |
|
Unsupported |
-1386 |
Unsupported input value |
|
CRCNotValid |
-1385 |
CRC value is invalid |
|
Timeout |
-1384 |
Timeout. |
|
NoFreeCSDOInstance |
-1383 |
No free slots for SDO client. |
|
SDOAbortReceived |
-1382 |
SDO client received an abort. |
|
COBIDError |
-1381 |
COB-ID out of range. |
|
InvalidChannel |
-1380 |
Invalid CAN channel. |
|
InvalidBitRate |
-1379 |
Invalid bit rate. |
|
InvalidCallback |
-1378 |
Invalid receive callback function block. |
|
UnsupportedStatus |
-1377 |
CAN interface does not support flag. |
|
ChannelNotInitialized |
-1376 |
Channel is not initialized. |
|
CallbackBufferFull |
-1375 |
Callback data buffer full. |
|
CallbackBufferEmpty |
-1374 |
Callback data buffer empty. |
|
COBIDAlreadyRegistered |
-1373 |
COB-ID is already registered. |
|
ChannelInitialized |
-1372 |
Channel is already initialized. |
|
CallbackError |
-1371 |
IReceiveCallback.Receive returned an error. |
|
BusNotOk |
-1370 |
NMT mandatory slave heartbeat is missing. |
|
Name of the Member |
Data Type |
Description |
|
pGFCParameter |
POINTER TO BYTE |
GFC parameter: OD index 16#1300 value. |
|
pGFCStatus |
POINTER TO BYTE |
Node's internal status. This value is to be included in SystemOk status. |
|
Name of the Member |
Data Type |
Description |
|
HeartBeat |
TON |
Timer for HB producer, including index 16#1017 data. |
|
pCallback |
POINTER TO CANopenHBCallback |
Pointer to the first heartbeat callback function. |
|
pHBCTimes |
POINTER TO DWORD |
Pointer to index 16#1016 data, i.e. first consumer time. |
|
Name of the Member |
Value |
Description |
|
Start |
BYTE#16#01 |
NMT command start node. |
|
Stop |
BYTE#16#02 |
NMT command stop node. |
|
Preoperational |
BYTE#16#80 |
NMT command enter to preoperational. |
|
Reset |
BYTE#16#81 |
NMT command reset node. |
|
ResetCommunication |
BYTE#16#82 |
NMT command reset communication. |
|
Name of the Member |
Data Type |
Description |
|
NmtState |
NMTState |
Current NMT state. Value can be forced also in IEC application. |
|
StateChanged |
BOOL |
CANopen device state has changed because of the NMT command through CAN-bus. This flag is on during one cycle. |
|
LastNmtCommand |
NMTCommand |
Value of the last received NMT command. If there is multiple NMT-commands for one cycle, only latest is seen in this variable. |
|
Name of the Member |
Value |
Description |
|
Reset |
BYTE#0 |
Reset slave if resetting activated. |
|
Initialize |
BYTE#1 |
Initialize configuration data. |
|
ConfiguringDelay1 |
BYTE#2 |
Set configuring delay after reset/bootup. |
|
Preoperational |
BYTE#3 |
Configuration disabled, set slave preoperational. |
|
CheckPresence |
BYTE#4 |
Wait for HB or SDO message from unit. |
|
ConfiguringDelay2 |
BYTE#5 |
Set configuring delay after reset/bootup. |
|
Configure |
BYTE#6 |
Configure unit if configuration exists. |
|
Start |
BYTE#7 |
Start unit. |
|
MonitoringDelay |
BYTE#8 |
Wait for interval time to be elapsed before monitoring. |
|
Monitor |
BYTE#9 |
Monitor the HB of the unit. |
|
Name of the Member |
Value |
Description |
|
BootUp |
BYTE#16#00 |
NMT state boot-up. |
|
Stopped |
BYTE#16#04 |
NMT state stopped. |
|
Operational |
BYTE#16#05 |
NMT state operational. |
|
Preoperational |
BYTE#16#7F |
NMT state pre-operational. |
|
NotAvailable |
BYTE#16#3E |
State missing. Heartbeat timed out. |
|
Unknown |
BYTE#16#3F |
State unknown, the default value. |
|
Name of the Member |
Value |
Description |
|
OD_NULL |
INT#0 |
A dictionary entry with no data fields. |
|
OD_CANopenDomain |
INT#2 |
Large variable amount of data e.g. executable program code. |
|
OD_DEFTYPE |
INT#5 |
Denotes a type definition such as a BOOL, INT, DWORD etc. |
|
OD_DEFSTRUCT |
INT#6 |
Defines a new record type e.g. the PDO communication parameter record. |
|
OD_VAR |
INT#7 |
A single value such as a BOOL, INT, DWORD etc. |
|
OD_ARRAY |
INT#8 |
A multiple data field object where each data field is a simple variable of the SAME basic data type e.g. array of DWORD etc. Sub-index 0 is of UNSIGNED8 and therefore not part of the ARRAY data. |
|
OD_RECORD |
INT#9 |
A multiple data field object where the data fields may be any combination of simple variables. Sub-index 0 is of UNSIGNED8 and therefore not part of the RECORD data. |
|
OD_EPEC |
INT#10 |
Sub-index 0 is part of the OD_EPEC data. |
The table above is according to DS-301. For more information refer to CiA standard DS-301 (Version 4.02).
|
Name of the Member |
Data Type |
Description |
|
InOrder |
BOOL |
Indicates if the OD is organized by index numbers. |
|
NextFree |
UINT |
The line number of the next free OD line. |
|
EntryCount |
UINT |
The amount of the OD lines. |
|
pODEntry |
POINTER TO ODEntry |
The pointer to OD entry array |
|
pAdditionalData |
DWORD |
Pointer to any additional data. |
|
Name of the Member |
Data Type |
Description |
|
Index |
UINT |
OD index number. |
|
ObjectCode |
ObjectCode |
The index type. |
|
NumOfSubids |
USINT |
The amount of sub-indexes. |
|
TypeSpec |
DataType |
Index where the type is specified, see DataType (ENUM). |
|
ObjectAccess |
WORD |
Object access flags. |
|
Sub0data |
BYTE |
The data of object's subindex 0 when the data type is ARRAY, RECORD or DEFSTRUCT. |
|
IndexData |
DataUnion |
Index data. |
|
itfSDOHandler |
ICANopenSDOHandler |
Interface to additional SDO handler |
|
Name of the Member |
Value |
Description |
|
Not_Authenticated |
BYTE#0 |
Write access to password protected non-safety parameters denied. |
|
Authenticated |
BYTE#1 |
Write access to password protected non-safety parameters granted. |
|
Locked |
BYTE#2 |
Wrong password is given. Unit reboot required. |
|
Name of the Member |
Data Type |
Description |
|
COBID |
DWORD |
Sub-index 1: COB-ID. |
|
TransmissionType |
BYTE |
Sub-index 2: Transmission type. |
|
InhibitTime |
UINT |
Sub-index 3: Inhibit Time. |
|
Reserved |
USINT |
Sub-index 4: Reserved. |
|
EventTime |
UINT |
Sub-index 5: Event Timer. |
Sub-index 6: SYNC Start value not supported.
|
Name of the Member |
Data Type |
Description |
|
Count |
UINT |
Number of PDOs. |
|
pPDO |
POINTER TO CANopenPDO |
Pointer to the first PDO. |
|
Name of the Member |
Value |
Description |
|
NotValid |
BYTE#0 |
Does not exist / not valid. |
|
TransmitPDO |
BYTE#1 |
Transmit PDO. |
|
ReceivePDO |
BYTE#2 |
Receive PDO. |
|
Name of the Member |
Data Type |
Description |
|
pData |
DWORD |
Pointer to protocol data |
|
itfProtocol |
ICANopenProtocol |
Interface for protocol initialization and update |
|
Protocol |
ProtocolType |
See ProtocolType (ENUM). |
|
pError |
POINTER TO Errors |
Protocol error status. |
|
pNext |
POINTER TO BYTE |
Pointer to next protocol entry |
|
Name of the Member |
Value |
Description |
|
NoProtocol |
INT#0 |
|
|
OD |
INT#1 |
Object Dictionary (handled partly as protocols). |
|
NMT |
INT#2 |
Network Management |
|
SSDO |
INT#3 |
Server Service Data Object |
|
CSDO |
INT#4 |
Client Service Data Object |
|
PDO |
INT#5 |
Process Data Object |
|
SYNC |
INT#6 |
Synchronisation Object |
|
HB |
INT#7 |
HeartBeat |
|
GFC |
INT#8 |
Global Failsafe Command |
|
SRDO |
INT#9 |
Safety-Related Data Object |
|
EMCY |
INT#10 |
Emergency Data Object (not implemented) |
|
TS |
INT#11 |
Time Stamp Object (not implemented) |
|
LSS |
INT#12 |
Layer Setting Service (not implemented) |
|
USR1 |
INT#13 |
User specified protocol to be implemented |
|
USR2 |
INT#14 |
User specified protocol to be implemented |
|
USR3 |
INT#15 |
User specified protocol to be implemented |
|
Name of the Member |
Value |
Description |
|
Fault |
INT#-1 |
Slave configuration failed. |
|
NotStarted |
INT#0 |
Slave configuration not started. |
|
Busy |
INT#1 |
Slave configuration ongoing. |
|
Done |
INT#2 |
Slave configuration finished successfully. |
|
Name of the Member |
Data Type |
Description |
|
pHBCallback |
POINTER TO CANopenHBCallback |
Pointer to Heartbeat callback FB instance. |
|
KeepAlive |
BOOL |
In Monitoring state, enable changing to Start state when node enters pre-operational state from operational state. |
|
Reset |
BOOL |
Enables sending NMT reset to node at start of configuration sequence. |
|
Mandatory |
BOOL |
Enables setting of BusNotOk error after configuration timeout delay if the node is not operational. |
|
QueryWithSDO |
BOOL |
Enables sending of consecutive SDO queries to node to determine its presence. |
|
DisableStart |
BOOL |
Disables the sequence to send NMT start to node. |
|
ConfigurationDelay |
UDINT |
Delay (ms) that configuration waits after reset before operation. |
|
SDOQueryInterval |
UDINT |
Interval time (ms) for consecutive SDO queries. |
|
pSlaveConfiguration |
POINTER TO CANopenNMTConfigureSlave |
Pointer to slave configuring FB instance. |
|
ConfigurationTimeout |
UINT |
Delay time (s) of BusNotOk error. Possible SDO polling is also stopped after delay. |
|
TimeSinceLastHeartbeat |
UDINT |
Time (ms) since last received heartbeat message from the node. |
|
State |
NMTState |
Current state of the node. See NMTState enumeration. |
|
Phase |
NMTStartingPhase |
Current configuration/starting/monitoring phase of the node. |
|
BootUps |
USINT |
Number of received bootup messages. |
|
BootTimeStamp |
UDINT |
Time of last received bootup message. |
|
BootupReceived |
BOOL |
Bootup is used to detect slave presence when QueryWithSDO is not in use |
|
DelayTimer |
UDINT |
Delay timer value for starting sequence. |
|
PollingTimer |
UDINT |
Delay timer value for SDO polling. |
|
EnablePolling |
BOOL |
Internal variable for enabling SDO polling after delay. |
|
Name of the Member |
Data Type |
Description |
|
Index |
UINT |
OD index. |
|
SubIndex |
USINT |
OD subindex. |
|
NewValue |
DataUnion |
New data or pointer to new data. |
|
Size |
USINT |
Size of the value to write (number of bytes). |
|
State |
BYTE |
State of the index/subindex: 0 = Not written, 1 = Written, 2 = Fault. |
|
AbortIfError |
BOOL |
TRUE = Abort configuration in case of error. FALSE = Continue to next or jump to given line of configuration data table. |
|
JumpToLineIfError |
INT |
Next configuration to handle in case of error. Value G_CANOPEN_SLAVE_CONFIG_STEP_IF_ERROR (-1) steps to next configuration without a jump. |
|
Name of the Member |
Data Type |
Default value |
Description |
|
COBID |
DWORD |
0 |
COBID of the PDO |
|
TransmissionType |
BYTE |
0 |
Transmission type of the PDO |
|
InhibitTime |
WORD |
0 |
Inhibit time of the PDO |
|
EventTime |
WORD |
0 |
Event time of the PDO |
|
State |
BYTE |
0 |
State of the PDO configuration: 0 = Not written, 1 = Written, 2 = Fault |
|
ConfigureInhibitTime |
BOOL |
TRUE |
TRUE = TPDO inhibit time is configured. FALSE = TPDO inhibit time is not configured. |
|
ConfigureEventTime |
BOOL |
TRUE |
TRUE = TPDO event time is configured. FALSE = TPDO event time is not configured. |
|
ConfigureMappings |
BOOL |
TRUE |
If TRUE PDO mappings are configured to slave unit |
|
PDONumber |
WORD |
WORD#1 |
Communication and mapping indexes are determined by PDO number |
|
Name of the Member |
Data Type |
Description |
|
COBID |
DWORD |
SYNC COB-ID, data of OD index 0x1005. |
|
Count |
USINT |
Number of the received SYNC messages. |
|
MaxCount |
USINT |
SYNC counter maximum value, data of OD index 0x1019. |
|
CyclePeriod |
UDINT |
Communication cycle period, data of OD index 0x1006. |
|
Name of the Member |
Value |
Description |
|
SDO_DL_Ind |
0 |
Beginning of SDO data transfer to OD index, data is unchanged. |
|
SDO_DL_End |
1 |
Data is transferred to index. Data content is the new data. |
|
SDO_UPL_Ind |
2 |
Beginning of SDO data upload from OD index, the requested data is not sent yet. |
|
SDO_UPL_End |
3 |
Data is transferred from index to the CAN bus. |
|
Name of the Member |
Data Type |
Description |
|
SDOTransmissionActive |
BOOL |
SDO transmission in progress |
|
Toggle |
BYTE |
Normal transfer toggle mask |
|
MUXinfo |
DWORD |
MUX = index*100h + subindex, for example 100900h |
|
Post |
SDOTransferPhase |
See SDOTransferPhase (ENUM). |
|
pData |
DWORD |
Pointer to the data to be transferred |
|
Unitsize |
DWORD |
(Sub)index size in bits |
|
SDO_Parameters |
ARRAY [0..1] OF DWORD |
Receive and transmit COB-IDs. Data of index 1200h, for example 16#601,16#581 when node-ID is 1 |
|
Timeout |
TON |
SDO timeout timer |
|
SDOCallbackReturn |
DWORD |
Return value from additional SDO handler |
|
SDO_1F50Handling |
BOOL |
Used to block abort messages for certain indices. |
|
SDO_1F50hTransferLastStamp |
TIME |
Last time stamp for SDO transfer. |
|
Name of the Member |
Data Type |
Description |
|
InfoDirection |
SRDOType |
Sub-index 1: 0 = not valid, 1 = SRDO producer, 2 = SRDO consumer. |
|
SCT |
UINT |
Sub-index 2: Refresh Time (for producer) / Safeguard Cycle Time (for consumer), (ms). |
|
SRVT |
USINT |
Sub-index 3: SR Validation Time, (ms). |
|
TransmissionType |
BYTE |
Sub-index 4: Transmission type as defined in EN 50325-4. |
|
COBID_1 |
DWORD |
Sub-index 5: SRDO COB-ID for plain SR data, shall be an odd number. |
|
COBID_2 |
DWORD |
Sub-index 6: SRDO COB-ID for bitwise inverted SR data, shall be COBID_1 + 1 (even number) |
|
Name of the Member |
Data Type |
Description |
|
Count |
UINT |
Number of SRDOs. |
|
pSRDO |
POINTER TO CANopenSRDO |
Pointer to the first SRDO. |
|
Name of the Member |
Value |
Description |
|
NotValid |
BYTE#0 |
Does not exist / not valid. |
|
TransmitSRDO |
BYTE#1 |
Transmit SRDO. |
|
ReceiveSRDO |
BYTE#2 |
Receive SRDO. |
Source file topic100421.htm
Last updated 26-Aug-2026