Network Technology FAQs
CANopen FAQ
SAE J1939 FAQ
LIN FAQ
CAN Signals FAQ
CANopen is a CAN-based higher layer protocol originally developed for industrial control systems. The family of specifications includes also different device profiles as well as frameworks for specific applications. CANopen networks are also used in off-road vehicles, maritime electronics, medical equipment, and railways. The very flexible application layer and many optional features are well suited for designing tailored networks.
• Auto configuration of the network
• Easy access to all device parameters
• Device synchronisation
• Cyclic and event-driven data transfer
• Synchronous reading or setting of inputs, outputs or parameters
• Open and vendor independent, and standardized in EN50325-4
• Supports interoperability of different devices
• High speed real-time capability
• Modular - covers simple to complex devices
• User-friendly - wide variety of support tools available
The CiA has published device profiles for such things as:
• Generic I/O modules,
• Drives and motion controllers,
• Measuring devices and closed-loop controllers,
• Encoders,
• Proportional hydraulic valves.
• Door control units, and
• Railway brakes.
For special application fields CiA has developed frameworks for:
• CANopen framework for safety-relevant communication,
• CANopen framework for programmable devices, and
• CANopen interface profile for IEC 61131-3 compliant devices.
Any CANopen device can be seen as a generic device. This generic device is connected to CAN on one side
and connected to application specific I/O data on the other side. The application is the key knowledge
of the device manufacturer. The interface between the application and CAN is realized by an object dictionary.
The object dictionary is unique for any CANopen device and represents the whole access to its implemented
application in terms of data as well as in terms of configuration. To gain access to the object dictionary
each CANopen device has to realize a CANopen protocol stack. This CANopen protocol stack is a piece of
software, which normally is implemented on the same controller that is used by the application software.
The CANopen protocol stack consists of different functions for different purposes.
Process Data Object (PDO) is used to transmit the application data. The application data is transmitted without
any protocol overhead in broadcast.
Service Data Object (SDO) is used to gain access to all device parameters. SDO is used for direct
device-to-device communication.
Error Control is used to validate that any device is working proper in terms of CANopen communication.
Network Management is used to control the network in terms of CANopen communication and indirectly in terms
of system behaviour.
The object dictionary represents the complete access to the application program of the device in terms of
application data as well as in term of configuration parameters. The object dictionary gain access:
• to all data types used in the device,
• to the communication parameters (to configure the device in terms of communication), and
• to the application data and configuration parameters.
Process Data Objects are used to transmit any process data for the process control. The process data are
transmitted without any protocol overhead and by use of the producer/consumer communication model. That
means that any kind of input device, this includes devices with physical inputs like digital inputs and
sensors, as well as devices with logical inputs such as control units, is transmitting its input data
enveloped in a PDO. This PDO is being received by any CANopen device within the network, but only some
specific devices are interested in, this depends on system configuration. These devices are called consumers.
Such a consumer could be any kind of output device, this includes devices with physical outputs like digital
outputs or drives, as well as devices with logical outputs such as control units.
In conclusion the PDOs are transmitted in broadcast and without any confirmation back to the transmitting
device.
Within a device itself the PDO accessing scheme using an indirect addressing to compile the content of a PDO
from the desired application objects or to recompile the application data from a received PDO.
PDOs are characterized in two ways according to
• its communication behaviour represented by the PDO communication parameters, and
• its content represented by the PDO mapping parameters.
Service Data Objects are used to establish a peer-to-peer connection between two CANopen devices. This kind
of connection is based on a Client/Server based mechanism.
The SDO server is the device that is serving the object dictionary to which the access is required.
The SDO client is the device that wants to access the object dictionary of a specific device.
The SDO service is based on two CAN messages with different identifiers. One message is used by the SDO
client and the second message is used by the SDO server.
One SDO client is able to have up to 127 SDO client channels, which is required as if the SDO client is able
to access up to 127 different devices at the very same time.
One SDO server is able to have up to 127 SDO server channels, which is required as if the SDO server is able
to serve up to 127 different clients at the very same time. In minimum one SDO server channel the so-called
default SDO channel, is required.
There are three different methods for SDO down-/upload:
• expedited SDO transfer,
• normal (segmented) SDO transfer, and
• SDO Block transfer.
Emergency objects are used to transmit information about the status of the application.
Today any application does have possibilities to detect faults and errors, such as overload at a digital
output, short at a digital output, or something like this.
The emergency message can be produced by any device in the network and can be consumed by any device in the
network as well. The message itself contains an emergency code that is divided into a standardized part and a
manufacturer specific part. This opens the way to classify fault or an error in a standard way as well as to
provide more specific information for service.
As any device is able to be consumer of this message, there is an immediate reaction on any fault or error
possible without a specific action request from a controller device. This increases the system reaction time.
Go to the CAN in Automation website www.can-cia.com