Merging modern software development with electrons and metal
Random header image... Refresh for more!

Programming CANOpen Motion

How do you make a CANOpen motion control system move?  Your program creates the desired motions by sending the appropriate commands over the CAN bus using the vendor independent CiA 402 profile.

A CANOpen profile is a standard set of objects to interface to a particular device type, such as inputs, outputs, encoders, or motor drives.  A profile that is still being evaluated is called a Draft Standard; eventually it will become a CiA (CAN-in-Automation) standard.  So CiA 402 was originally called DS402, and is still often called DS 402.

Most CiA standards are available from the CAN in Automation web site for free by requesting the desired standards.  However, CiA 402 is not available.  I suspect the reason is that CiA 402 is now part of the IEC 61800-7-201 and IEC 61800-7-301 standards, and thus are only available from the IEC.

I was able to locate and download a copy of the older DS402 standard; there might be a few changes, but it should be good enough for my uses, and I also have the various manufacturers’ guides on how they implemented CiA 402.

Ease of use is one weakness of CANOpen.  I’ve been looking through DS 402 and although it may be well designed, it’s not easy to learn.  I think more vendors should do what Copley Controls does: provide a much easier to use interface that makes it much faster to get started with their drives.

Another approach is to have a motion controller that controls the CANOpen axes, such as the Schneider LMC (Lexium Motion Controller) series, the Elmo Maestro, and (for Ethernet PowerLink) the Balder NextMove E100.  In this case, your program interacts directly with the motion controller instead of the CANOpen drives.


1 Holger Zeltwanger { 02.23.12 at 11:16 pm }

Tony, you are right CiA has given the copyright of CiA 402 to IEC and is not more allowed to publish the CiA 402 profile standard. The IEC standard (61800-7-201/301) is complian to version 3.0 ov CiA 402 containing a second PDO mapping, the so-called type-specific mapping for servo/stepper or inverter.
To avoid misunderstandings: CiA 402 is not written for end-users! It is made for manufacturers of drives and motion controllers. Of course, they should provide an easy to use interface and programming/configuration tool. That is not the job of CiA, we just make the dictionary and the “grammar rules” (CANopen communication services). The tool is a product, and should be designed by the manufacturer. Nevertheless, any independent host-controller manufacturer can provide application software for the drives and motion controllers, which are quite similar for products compliant to CiA 402 (if they have the same functionality). There are some differences between the products on the market (and some claim CiA 402 compatibility, which they unfortunately don’t have). For more information you may contact (free-of-charge) the CiA users and manufacturers group.

2 Tony { 02.24.12 at 10:17 am }

Thank you very much for your comments.

I do think the CiA website could be much clearer that CiA 402 is not available separately from IEC 61800.

I am writing an interface DLL that I want to work with CANOpen drives from a variety of manufacturers (I’m testing using drives from Copley, AMC, Elmo, and Baldor). Most of the vendors provide CANOpen Guides specifying exactly how they implement CiA 402, but I wanted a copy of the standard so I could see what is required and what is optional, and compare their implementation to the standard (and to each other).

I know some issues are outside of CiA’s control, including the lack of standardized CAN drivers on Windows (Linux has socket-CAN). Most drive manufacturers do provide setup software (often using a serial port), but of the vendors I’ve looked at, only a few provide an easier layer for motion programming — and they’re not likely to support other companies’ drives, which eliminates a major reason for using CANOpen (the ability to mix and match vendors — so that is why I’m writing my own software).

3 Kim { 05.16.14 at 9:48 pm }

Just wanted to echo your comment about CANOpen and motor drives.
Its pretty ridiculous of CiA to have a standard published that cost about 1000Euro, when most of the other papers are free.
I guess that is why CAN is relatively slow at gaining foothold in lots of markets where it could be an ideal solution.
Where did you find your copy of the DS402 ?
I have been traveling the web but to no avail

4 Tony { 05.18.14 at 10:59 am }

The key is good google-fu, such as using filetype:pdf. I’ve sent an e-mail also.

5 Bas { 07.03.15 at 12:33 am }

Hi Tony,
would you share your google-fu? I seem to return to the various manufacturers documentation. I’m working on getting CANopen support for Machinekit (fork of linuxCNC) so I’d like to have a bit more background.

Leave a Comment