CANopen® is a robust and low cost serial protocol that offers enhanced diagnostic and control capabilities with medium-level bandwidth. While older than some other networks, it remains a favorite among many motion control designers. And no, it has nothing to do with electric can openers; it’s a highly configurable ‘open’ protocol based on CAN (Controller Area Network) communication. ADVANCED Motion Controls has over 40 marketed CANopen servo drives and can create custom CANopen servo drives as well.
History
In 1993, a new protocol was initially developed in a project led by Dr. Gerhard Gruhler and Dr. Mohammed Farsi as a prototype. They handed their prototype off to CiA, who refined it and published it in 1995 as communication profile DS-301: CANopen.
Since CANopen’s release, it soared in popularity. In addition to its previous uses in the automotive, manufacturing, and medical industries, it is now used in robotics, material handling, and many other industries that use motion control.
How CANopen works
CANopen is a higher layer protocol. Like any network, CANopen networks are made up of device nodes connected together. In motion control, servo drives typically make up most of the network nodes, though a controller and other devices can also be incorporated.
Messages are sent in packets called frames along the network line known as the CAN bus. A CANopen frame has a Communication Object Identifier (COB-ID) containing a 4-bit function code, a 7-bit node ID, and control bits. The frame also has a 4-bit data length field, and 0 to 8 bytes of data.
All nodes in a CANopen network have an object dictionary. The object dictionary contains parameters of the node such as its address (indexed location within the network), device name, object code, data type, read/write access, and indication of optional and mandatory parameters. Essentially, this defines if, when, and how a node will interpret and respond to data frames sent through the network. While all nodes will see each message, only the node specified in the frame’s node ID will respond to it.
SDOs and PDOs
Most message frames are Service Data Objects (SDO) or Process Data Objects (PDO). SDOs are typically sent by the master node to read and write to another node’s object dictionary, changing its configuration. The node initiating the SDO communication is called the client node and the targeted node is called the server node. The server node will respond to the SDO frame while other nodes will ignore it.
PDOs can be sent by any node in the network without being called to by the master node. PDOs are useful for updating information that can change frequently such as sensor feedback or power output. Unlike SDOs, PDOs can contain multiple parameter values and don’t require a response.
Capabilities
Object dictionaries give CANopen devices a high degree of configurability, allowing for lots of customization. CANopen is also tried and true technology, having been around for decades and still being used regularly. Choosing a CANopen network can also keep costs down while maintaining good performance, especially since the price per node is usually much less than that of other networks. In general, CANopen servo drives are less expensive than servo drives that use EtherCAT or other Ethernet-based networks.
While many favor CANopen for its robust nature and ease of implementation, it does have its tradeoffs. Unlike EtherCAT or Ethernet POWERLINK, CANopen is not a “realtime” network. This means it isn’t capable of sending updates faster than one millisecond. For reference, CANopen updates at about a 130 ms rate. CANopen networks can also suffer from perfomance issues when the physical CAN bus is in the range of hundreds of feet long.
Check out our CANopen servo drive models. You can also see CANopen in action in our 5 Ball Toss demo.