CANopen COB-ID Calculator
Use this CANopen COB-ID Calculator to calculate standard CAN identifiers for CANopen communication objects from a node ID. Find EMCY, TPDO, RPDO, SDO and heartbeat COB-IDs, or decode a CAN identifier to identify its likely CANopen communication function and node number.
| Object | Base COB-ID | Formula | Calculated |
|---|
-
What Is a CANopen COB-ID Calculator?
A CANopen COB-ID Calculator determines the default CAN identifier used by a CANopen communication object. CANopen is built on Classical CAN, so network messages are transmitted using CAN identifiers. The identifier associated with a CANopen communication object is commonly called its COB-ID.
Many default CANopen COB-IDs are calculated by adding the node ID to a fixed base identifier. This provides predictable identifiers for emergency messages, Process Data Objects, Service Data Objects and heartbeat traffic.
This calculator generates the standard predefined connection-set identifiers for node IDs 1 through 127 and can also decode a raw COB-ID to determine which default communication function it most closely represents.
What Does COB-ID Mean?
COB means Communication Object. A COB-ID identifies the CAN frame associated with that communication object.
For standard CANopen using 11-bit CAN identifiers, a COB-ID can represent network management, synchronization, emergency communication, PDO traffic, SDO communication or heartbeat/node-guarding traffic.
CANopen COB-ID Table
| Communication Object | Default COB-ID | Node Specific? |
|---|---|---|
| NMT | 0x000 | No |
| SYNC | 0x080 | No |
| EMCY | 0x080 + Node ID | Yes |
| TPDO1 | 0x180 + Node ID | Yes |
| RPDO1 | 0x200 + Node ID | Yes |
| TPDO2 | 0x280 + Node ID | Yes |
| RPDO2 | 0x300 + Node ID | Yes |
| TPDO3 | 0x380 + Node ID | Yes |
| RPDO3 | 0x400 + Node ID | Yes |
| TPDO4 | 0x480 + Node ID | Yes |
| RPDO4 | 0x500 + Node ID | Yes |
| SDO Server Tx | 0x580 + Node ID | Yes |
| SDO Server Rx | 0x600 + Node ID | Yes |
| Heartbeat / Node Guarding | 0x700 + Node ID | Yes |
How to Calculate a CANopen COB-ID
Identify the CANopen node number, normally from 1 through 127.
For example, TPDO1, RPDO1, SDO server transmit or heartbeat.
Each object type has a predefined base identifier.
For node-specific default objects, COB-ID equals the base identifier plus the node ID.
CANopen COB-ID Example for Node 5
Suppose the CANopen node ID is 5.
CANopen TPDO COB-IDs
TPDO means Transmit Process Data Object. From the perspective of the CANopen node, a TPDO carries process data transmitted by that node.
TPDO1
Default COB-ID = 0x180 + Node ID.
TPDO2
Default COB-ID = 0x280 + Node ID.
TPDO3
Default COB-ID = 0x380 + Node ID.
TPDO4
Default COB-ID = 0x480 + Node ID.
CANopen RPDO COB-IDs
RPDO means Receive Process Data Object. An RPDO carries process data received by the CANopen node.
RPDO1
Default COB-ID = 0x200 + Node ID.
RPDO2
Default COB-ID = 0x300 + Node ID.
RPDO3
Default COB-ID = 0x400 + Node ID.
RPDO4
Default COB-ID = 0x500 + Node ID.
CANopen SDO COB-ID
Service Data Objects are used for access to the object dictionary and other configuration-style communication.
For the default SDO server connection:
CANopen Heartbeat COB-ID
The default heartbeat and node-guarding CAN identifier is:
Heartbeat messages are used by CANopen network management to communicate node state and help detect unavailable devices.
CANopen EMCY COB-ID
EMCY means Emergency Object. It allows a CANopen node to communicate an internal error condition to the network.
NMT and SYNC COB-IDs
NMT
Network Management commands use CAN identifier 0x000 rather than adding a target node ID to the COB-ID.
SYNC
The predefined SYNC communication object uses CAN identifier 0x080.
These differ from most node-specific predefined identifiers because their default CAN identifier itself does not include the node ID.
How to Decode a CANopen COB-ID
A default CANopen COB-ID can often be decoded by determining which predefined identifier range contains it and subtracting the corresponding base value.
What Is the CANopen Predefined Connection Set?
The predefined connection set is the standard mapping that assigns commonly used CAN identifiers according to communication function and node ID. It allows newly configured CANopen nodes to communicate using predictable identifiers without every COB-ID needing to be manually chosen.
For example, the first TPDO for a node is obtained from 0x180 plus the node ID, while heartbeat uses 0x700 plus the node ID.
Can CANopen COB-IDs Be Changed?
Yes. The predefined connection set describes default identifiers, but CANopen communication parameters can permit identifiers to be configured. PDO communication parameters in particular can assign a COB-ID different from the predefined node-ID-based value.
CANopen COB-ID vs CAN Identifier
In many practical CANopen discussions, COB-ID is used to refer to the CAN identifier associated with a communication object. However, CANopen communication parameter entries may contain additional control bits alongside the identifier value.
This calculator focuses on the actual standard 11-bit CAN identifier portion used by the predefined connection set.
Node ID Range in CANopen
Standard CANopen node IDs occupy the range 1 through 127. Node ID zero is not normally assigned as an ordinary CANopen device node number.
The calculator therefore rejects node IDs outside the range 1–127 when generating node-specific COB-IDs.
Common CANopen COB-ID Mistakes
Adding Node ID to NMT
NMT uses COB-ID 0x000; the target node is carried in the message data.
Adding Node ID to SYNC
The predefined SYNC identifier is 0x080.
Mixing TPDO and RPDO
Transmit and receive PDOs use different base identifier ranges.
Reversing SDO Direction
0x580 + node is the server response direction; 0x600 + node is the request direction.
Assuming PDO COB-ID Is Always Default
PDO communication parameters may remap the identifier.
Using Node ID Above 127
Standard CANopen node IDs use a seven-bit node-number range.
CANopen COB-ID Calculator FAQs
What is a CANopen COB-ID?
How do I calculate TPDO1 COB-ID?
How do I calculate RPDO1 COB-ID?
What is the SDO COB-ID for node 5?
What is the heartbeat COB-ID for node 5?
What is the EMCY COB-ID for node 5?
What is the CANopen NMT COB-ID?
What is the CANopen SYNC COB-ID?
What is TPDO?
What is RPDO?
Can PDO COB-IDs be changed?
What node ID range does CANopen use?
How do I decode COB-ID 0x185?
How do I decode COB-ID 0x705?
Is COB-ID the same as node ID?
Calculate CANopen PDO, SDO and Heartbeat COB-IDs
Enter a CANopen node ID to generate its predefined EMCY, PDO, SDO and heartbeat identifiers, or enter a raw CAN identifier to determine its likely default CANopen communication function.