PDO Management is implemented as a static array in the firmware. For each node there is space reserved for 10+10 PDOs, regardless of their actual usage. The limitations are thus set by the available RAM on the respective board type.
To cope with this limitations, it is recommended to register only PDOs actually active at the CANopen Master API by calling function COP_CreatePDO(). On the 其他 hand, for reasons of clarity it is good practice to use the numbers of the PDOs in the order they are present at the device, i.e. CANopen Master API PDO#1 = device’s 1400/1800 etc.
Contrary to the statement given in the user manual in the description of this particular function (chapter 5.3.1) it is possible to call this function more than once for the same PDO in order to 改变 former settings. This offers some dynamics for the PDO management. Usually, reconfiguring resp. overwriting an already declared CANopen Master API PDO should be done only if the corresponding actual device PDO communication parameters 改变, in particular, the COB-ID.
If you still need more PDOs for a particular node, you can use the 10+10 PDOs of a not existing node. For this, call COP_AddNode() for an unused NodeID with "passive" settings (i.e. no node monitoring) and use all this 节点´ PDOs as you wish.
With CANopen Master API 6 these limits are pushed up to a maximum of 16+16 depending on the CAN board utilised, while the standard PDO count is increased from 10 to 12 for all boards.
When programming CANopen Master API, we adapt to the existing physical CANopen slave devices’ PDOs. This means, we create corresponding/matching CANopen Master API PDOs to the slave’s PDOs. By this “creation”, internal records and 连接ions of the CANopen Master API are being set up, but no 改变 to the slave’s PDO configuration takes place. If you want to do the latter, you have to use the SDO-related function set of CANopen Master API and write to the slave’s PDO communication and mapping parameters Object Dictionary entries. Afterwards, you still had to “create” a matching CANopen Master API PDO that mirrors the slave alterations.
Apart of that, CANopen Master API up to V5 is not aware of this so called “Predefined Connection Set” COB-ID allocation rule.
For CANopen Master API 5:
CAN interface board |
max.Nodes |
max. R/TPDOs per node |
iPC-I 320 (ISA/PCI) |
32 |
10 |
tinCAN4 |
32 |
10 |
USB-to-CAN compact |
32 |
10 |
iPC-I 165 (ISA/PCI) |
127 |
12 |
USB-to-CAN II |
127 |
12 |
tinCAN161 |
127 |
16 |
iPC-I XC16 (PCI/PCIe) |
127 |
16 |
|
|