tags:

views:

128

answers:

1

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.

My next question would be, if the data contains more than 1 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?

+1  A: 

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

matli