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:communication modeThere are 3 modes of device/node communication: master/slave, client/server and producer/consumer.letter of agreementProtocols used for communication, such as configuring nodes (SDO) or transmitting real-time data (PDO), etc.device statusA single device supports different states. A “master” node can change a “slave” node, including operations such as reset.object dictionaryEach device has an OD with entries specifying device configuration etc., which can be accessed via SDO.spreadsheetEDS is a standard file format for OD entries, which allows service tools to update devices.device settings fileDescribes 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 communication01 master/slaveOne 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: NMT02 Client/ServerThe 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: SDO03 Consumer/ProducerIn 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