Questions tagged [canopen]

CANopen is a communication protocol and device profile specification for embedded systems communication over CAN.

The basic CANopen communication and device profiles are given in the CiA 301 specification released by CAN in Automation (CiA), a non-profit organisation that "owns" and maintains the CANopen standard. As the name hints, it is an open standard and available for free if you register. You can register and download the standards from CiA here.

Profiles for more specialized devices are built on top of the basic CiA 301 profile, and are specified in numerous other standards, such as CiA 401 for I/O-modules and CiA 402 for motion control. They can be found at the above link as well.

Often these standards are still referred to as "DS301" etc because they were draft standards (DS) for a very long time, pretty much from the first version in 1995 up to the 4.2 version was released in 2011.

Tag usage
Please always use this tag together with the tag. CANopen being the network and application layers, CAN being the physical and data link layers.

In case of embedded systems programming, microcontroller programming etc make sure to also include as well as the relevant tag for the microcontroller and/or CAN controller you are using. Also include information about which protocol stack or CAN adapters you are using, if applicable. Some may have tags of their own, such as Vector .

Please note that Stack Overflow is a programming site: you may ask questions about CANopen programming, configuration and protocols here. Questions about hardware or the borderline between hardware/software should be asked at https://electronics.stackexchange.com instead, where CANopen questions are also on-topic.

More info at:

Open source CANopen protocol stack:

140 questions
21
votes
7 answers

How to program a simple CANopen layer

We have a robot project where the motor controllers use CANopen for communication. I need to communicate with these motor controllers using a master microcontroller. The problem is that I need to develop a CANopen layer in this microcontroller, but…
user150908
13
votes
1 answer

Java and CANopen

Background I am required to create a Java program on a laptop to receive/send CANopen messages. RJ45 is chosen to be the network's physical medium. I am new to CANopen and Java communications programming. Pardon me if I appear to be uninitiated. The…
frustratedone
6
votes
3 answers

What is PDO mapping?

After reading several CiA specifications, I am still having difficulty understanding PDO mapping, Process Image, and Process Data Exchange in CANopen. I know SDO is used for configuration settings in the pre-operational state and has protocol…
Vishwanath Kamath
  • 340
  • 2
  • 3
  • 14
5
votes
1 answer

EDS for CANopen and Modbus

The device I'm developing has to support both CANopen and Modbus (RTU and TCP) communications. Is there any format of Electronic Data Sheet (e.g EDS or XDD) that can be used to define both? I have tried using a couple of tools (Vector CANeds and…
Evil Dog Pie
  • 2,300
  • 2
  • 23
  • 46
4
votes
3 answers

What is Object dictionary in CANOpen?

I will use CANOpen in linux. In kernel, linux has socketcan and i have some questions for further implementation. 1-) How object dictionary looks like, is it a header file or EDS file? 2-) Do i need to use object dictionary for pdo and sdo…
onur aslan
  • 283
  • 3
  • 8
4
votes
4 answers

Does the .NET Micro Framework support the CAN bus?

I know that the .NET Micro Framework supports the I²C bus. Are there some libraries for CAN or CANopen too? If not, does it support CAN without using other peripherals? Can I build CAN support myself?
Markus Bruckner
  • 2,852
  • 2
  • 24
  • 29
3
votes
1 answer

EDS and Object Dictionary

What are the EDS and OD? How are they created and used? How it is that the OD comes in between the application and the CAN interface?
CANopen
3
votes
2 answers

CAN identifier and COB-ID

Hello I am a student studying canopen. What is the relationship between COB-ID and CAN identifier in Canopen? I read on the CIA homepage that COB-ID is not a CAN ID, but I do not understand it. For example, if a PDO is transmitted over a CAN bus, it…
Kevin Ryu
  • 41
  • 1
  • 1
  • 2
3
votes
3 answers

How to write a CanOpen stack?

I have a similar problem with this. How to program a simple CANopen layer . I read the answers but I have to program a CANopen layer on my own I cannot get a commercial one. So are there any basics of writing a CANopen stack (or layer I'm not…
İpek
  • 162
  • 1
  • 11
3
votes
2 answers

CANopen PDOs using the serial port

I am trying to understand the CANopen protocol. For now, I do not have any CAN hardware nor the CANopen stack to experiment with. I would like to know how to write a Java program to simply interpret CANopen messages that are received at the RS-232…
Frustratedone
3
votes
1 answer

CANopen over EtherCAT (CoE)

CANopen is point to point communication while EtherCAT is bus based. Point to point means there will be node address. But this is redundant in EtherCAT. So I was wondering how this node address bytes are handled in the CANopen over EtherCAT. I…
raghu rajappa
  • 81
  • 1
  • 11
3
votes
1 answer

How to setup PDO mapping?

I basically understand the concept of PDO mapping in CANopen networks. It allows to to broadcast real-time data with small header. how it is made? How do I setup my devices to know how to send/receive PDO's? Do I need some kind of software for…
user2449761
  • 1,169
  • 13
  • 25
2
votes
0 answers

Using XML and adding c# logic into it for configuration purposes

I'm working on software to configure a device for communication over CANOpen. In CANOpen there's the concept of an Object Dictionary (OD) which is shared between the consumer and the producer. It acts as a contract between communication…
Peter
  • 14,221
  • 15
  • 70
  • 110
2
votes
2 answers

Programming for the SAE J1939 standard

I'm trying to find information on how to program an embedded mobile controller such as the ifm R 360. Where could I find specific information on the programming language used, the required development environment and any other useful…
JcMaco
  • 1,258
  • 3
  • 16
  • 31
2
votes
3 answers

Implementing Python CANopen

I'm new to CANopen and I'm working to use it to interface between a microprocessor and a battery management system. I have a couple questions. Are the object dictionary, electronic datasheet, and device configuration files for things such as the…
David
  • 21
  • 1
  • 2
1
2 3
9 10