It is worth noting that with the introduction of CAN FD, CANopen FD, as the next generation CANopen standard, may play an increasingly important role.
Compared with the CAN bus and the J1939 protocol, the CANopen protocol adds the following six core concepts:
There are 3 modes of device/node communication: master/slave, client/server and producer/consumer.
Protocols used for communication, such as configuring nodes (SDO) or transmitting real-time data (PDO), etc.
A single device supports different states. A “master” node can change a “slave” node, including operations such as reset.
Each device has an OD with entries specifying device configuration etc., which can be accessed via SDO.
EDS is a standard file format for OD entries, which allows service tools to update devices.
Describes vendor independence such as I/O modules (CiA 401) and motion control (CiA 402)
In a CANopen network, multiple devices need to communicate, for example in an industrial automation setup you might have a robotic arm with multiple servo motor nodes and a control interface/PC node. In order to facilitate communication, there are three modes in CANopen, each of which is closely connected with the CANopen protocol we are discussing. The three modes are briefly described below:
Three modes of CANopen communication
One node (such as the control interface) acts as the application master or master controller. It requests data from slave devices such as servo motors. This process is used for diagnostics or status management. In standard applications, there can be 0 to 127 slaves. Please note: In a single CANopen network, there can be different host controllers sharing the same data link layer.Service example: NMT
The client sends a data request to the server, and the server replies with the requested data. For example, use this mode when the application master needs to get data from the OD of the slave. Reading from the server is an “upload” and “writing” is a “download” (the term is taken from a server-side perspective).Service example: SDO
In this mode, producer nodes broadcast data to the network and are consumed by consumer nodes. Producers send this data on request (pull model) or without a specific request (push model).Service Example: Heartbeat