The CANopen object dictionary interfaces the protocol and the application software. It contains references for all used data types and stores all communication and application parameters.
The Object Dictionary is structured in these areas:
Index | Object Dictionary Area |
---|---|
0x1000 – 0x1FFF | CoE Communication Area (Configured by the SDK). |
0x2000 – 0x5FFF | Manufacturer Specific Area (Configured by the end user). |
0x6000 – 0xFFFF | Profile Area such as CiA402, MPD… (Configured by the end user). |
These objects inform about the device identity, software and hardware version, SyncManager assignment, PDO mapping configuration among other settings. These objects are created automatically by the SDK using the information provided by API functions. The index number is divided into a main index and a subindex in order to mark and arrange associated parameters. The subindex is separated by a colon ":". For instance, typically the communication area looks like this. On the right column the API call can be found.
Index | Name | API Function |
---|---|---|
0x1000 | Device Type | EC_API_SLV_setDeviceType |
0x1001 | Error Register | EC_API_SLV_setErrorRegister |
0x1008 | Manufacturer Device Name | EC_API_SLV_setProductName |
0x1009 | Hardware Version | EC_API_SLV_setHwVersion |
0x100A | Software Version | EC_API_SLV_setSwVersion |
0x100B | Reserved | |
::::::: | ::::::: | ::::::: |
0x1017 | Reserved | |
0x1018 | Identity | |
0x1018:01 | Vendor ID | EC_API_SLV_setVendorId |
0x1018:02 | Product Code | EC_API_SLV_setProductCode |
0x1018:03 | Revision Number | EC_API_SLV_setRevisionNumber |
0x1018:04 | Serial Number | EC_API_SLV_setSerialNumber |
0x1019 | Reserved | |
::::::: | ::::::: | ::::::: |
0x15FF | Reserved | |
0x1600 | 1st RxPDO | Generated automatically based on end user PDO configuration |
0x1601 | 2nd RxPDO | Generated automatically based on end user PDO configuration |
::::::: | ::::::: | ::::::: |
0x17FF | 512th RxPDO | Generated automatically based on end user PDO configuration |
0x1800 | Reserved | |
::::::: | ::::::: | ::::::: |
0x19FF | Reserved | |
0x1A00 | 1st TxPDO | Generated automatically based on end user PDO configuration |
0x1A01 | 2nd TxPDO | Generated automatically based on end user PDO configuration |
::::::: | ::::::: | ::::::: |
0x1BFF | 512th TxPDO | Generated automatically based on end user PDO configuration |
0x1C00 | Sync Manager Types | Generated by the SDK |
0x1C01 | Reserved | |
::::::: | ::::::: | ::::::: |
0x1C0F | Reserved | |
0x1C10 | Sync Manager 0 PDO Assignment | Generated by the SDK |
0x1C11 | Sync Manager 1 PDO Assignment | Generated by the SDK |
0x1C12 | Sync Manager 2 PDO Assignment | Generated by the SDK |
0x1C13 | Sync Manager 3 PDO Assignment | Generated by the SDK |
::::::: | ::::::: | ::::::: |
0x1C30 | Sync Manager 0 Synchronization | Generated by the SDK |
0x1C31 | Sync Manager 1 Synchronization | Generated by the SDK |
0x1C32 | Sync Manager 2 Synchronization | Generated by the SDK |
0x1C33 | Sync Manager 3 Synchronization | Generated by the SDK |
::::::: | ::::::: | ::::::: |
0x1FFF | Reserved |
These objects are customer specific and therefore are completely configurable. There are three* types of objects supported by the SDK:
Enumerators would be the fourth object type, but it is not supported by the SDK now.
The objects must be configured with a variety of parameters. These are listed below:
The EtherCAT SDK provides with a set of functions to get some information of the object or read or write the object data. These help functions are available with the CoE suffix. For further information please refer to the documentation.
Function | Description |
---|---|
EC_API_SLV_CoE_getObject | Get object from Object Dictionary |
EC_API_SLV_CoE_getObjectData | Read object data |
EC_API_SLV_CoE_setObjectData | Write object data |
EC_API_SLV_CoE_getObjectEntryCount | Get number of object entries |
EC_API_SLV_CoE_getObjectType | Get object type from Beckhoff Stack |
EC_API_SLV_CoE_getObjectEntry | Get object entry from Object Dictionary |
EC_API_SLV_CoE_getObjectEntryData | Read object entry data |
EC_API_SLV_CoE_setObjectEntryData | Write object entry data |
EC_API_SLV_CoE_subIdx0WrFlag | Modify subindex 0 access flag |
This object area is reserved for profiles. There are several profiles supported by EtherCAT, such as CiA402, Modular Device Profiles, IO-Link Master, FSoE Master and so on. The EtherCAT SDK provides functions to configure CiA402 profile. However, normally the objects in this area must be configured by the end customer. Please refer to CiA 402 Example for motion control profile.