Reputation:
If the data contains more than one value, how do I know what these values represent? And how do I break up the data into individual values? Am I right to say that the relationship between the PDOs and data to be transmitted are defined in the communication profile?
(I thank Matli for having explained that the CAN interface API probably has functions to retrieve the ID, data length and the data of a CANopen message. Based on the explanation, one could tell if the frame is a PDO and derive the sender node's ID from the COB-ID.)
Upvotes: 1
Views: 1056
Reputation: 21
There are two places in the OD, where you can get all the information you need about PDOs that swirl around the bus. That is provided you know of all the connected nodes:
For further information:
Process data exchange with PDOs ("Process Data Objects")
Upvotes: 1
Reputation: 28600
The relationship between PDOs and data is defined in the PDO mapping entries in the Object Dictionary. But that is probably not the easiest way to find out.
Since I don't know what device you are trying to communicate with, I cannot give you any information about its data output. You will have to consult the documentation for the device or ask the manufacturer. However, if you for example have a generic I/O module fully compliant with a specific Device Profile (e.g. 401 for generic I/O modules), it will probably have default mappings according to that device profile.
I recommend that you read CiA DS 301 and also any applicable device profile. Those documents are available from CiA
Upvotes: 2