I am a student studying CANopen. What is the relationship between a COB-ID and CAN identifier in CANopen?
I read on the CiA homepage that COB-ID is not a CAN ID, but I do not understand it.
For example, if a PDO is transmitted over a CAN bus, it will be converted from a CANopen frame to a CAN frame. Will the CAN identifier not be converted using the node ID of the COB-ID?
At this time, the COB-ID varies according to the function code, but it is more confusing in that the CAN identifier has only one per device.
How does CANopen convert identifiers when sending messages via the CAN bus?
Node ID and COB ID are different things.
Node ID is the hard coded ID of a CANopen device (in the connector).
COB ID is the CAN identifier (11 bits or 29 bits) and the RTR
bit 1: for request, 0: for data
The CAN identifier contains in itself the priority.
In some(?) CANopen standards, like CiA-301, some COB-ID ranges or values are reserved.
See:
CAN bus, Frames
CiA-301 V4.2.0 §7.3.5 (to download you need to have a login, but it is free of charge)
Node-ID is basically the name of the device on the CAN line. If you want to control the device, you need to reach it with that name. Every device has a different Node-ID, so you can control each device individually. You can create that name and you can change if you want. The devices usually come with a default Node-ID. You can see it in datasheet of the device. For example, default Node-ID=1.
COB-ID(s) contains the node-ID(s) and there is a standard for COB-ID(s).
COB-ID
As you can see the table on the link. If you want to use PDO for send and receive the data, for example you want to use PDO1 and your device's node-ID is 1.
So your COB-ID is 180 + node-ID = 181 (you can get data (information) from the device) with PDO1
And 200 + node-ID = 201 (you can send the data (command) to the device) with PDO1.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With