Search code examples
network-programmingcanopen

PDO and Nodes in CANopen


I am currently reading about CANopen and I have difficulties understanding the difference between these terms:
- Node and slave: Does a slave represent a node ?
- PDO Mapping: What is PDO mapping and how it works ?
- What is an index and a sub-index ?
- Which one is correct: A node includes 4 TPDOs and 4 RPDOs or a PDO includes 127 node


Solution

  • I am new at CanOpen but so far I learnt:

    You can think nodes as points on a line. We connect devices to the communication line via nodes. So both master and other devices(slaves) are connected to a node. We use nodes to identify master and slaves' adresses. When sending an SDO w/r request to a slave you need to specify a COB-ID(11bits) which includes fucntion code(4bits) and node ID(in other words target adress)(7bits).

    I'm also confused about PDO mapping. So I'm gonna pass that one.

    There is a thing called object dictionary. It is like a look up table, a guide that you can find some informations. It is in can drive I think. Those informations are necessary for both slaves and master. But how can they access? Via indexing. All the infos in the OD have an index and some of them also have subindexes if it is necessary. So I think indexes are for navigation.

    CanOpen protocol supports 127 nodes. So you can add maximum 127 seperate devices. PDO's are used to communicate between those nodes. So I think TPDO and RPDO numbers depending on your application.