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
2
votes
0 answers

.eds to .dbc for simulink implementation

I'm setting up some CAN blocks in simulink that needs .dbc files but the hardware manufacturer only provided .eds files. What tool should I use to convert the format for simulink implementation
Matti
  • 21
  • 2
2
votes
1 answer

How do I set up Python canopen with the usb2can interface?

I am trying to use the Python canopen library and the USB2CAN adapter to communicate with a canopen 402 device. So far I have not been able to get past the most basic example of defining the network. The script crashes consistently on the error:…
Kyle
  • 31
  • 5
2
votes
1 answer

CANopen windows library, multiple devices

I am going to write Windows application (for commercial use) which will send/receive and trace CANopen messages. The problem is I don't know what devices will be used by users of this app. Currently I have one requirement to support only USB-CAN…
Bytezar
  • 53
  • 2
  • 6
2
votes
1 answer

Is a CANopen Object Dictionary dynamically retrievable?

I have a device (Electric motor controller) that has some decent documentation about its CANOpen implementation. However, there are some entries that are missing or where I think the documentation is wrong. Is there an SDO or other way to have a…
SuperDuperTango
  • 1,398
  • 1
  • 14
  • 32
1
vote
0 answers

The problem of sending more than 4 TPDO using CANopenNode

I've been using the CANopenNode stack recently. When I used CANopenNode on stm32, I found that the problem occurred when I sent five TPDO(TPDO1~TPDO5): After starting, PDO1~TPDO4 were automatically sent, but TPDO5 was not sent. When I was running…
Ashenoneq
  • 11
  • 3
1
vote
0 answers

PLC4X with PEAK PCAN-USB

We are using a PEAK PCAN-USB adapter to exchange data with a CANopen device and are searching for an CANopen library for Java to accomblish this. The PLC4X API seems to be suitable for our project but we have to implement our application on a…
elbfisch
  • 11
  • 2
1
vote
1 answer

How much time does a node have to reply?

Is there a time limit for a node to respond to a message? Is there a difference between PDO and SDO messages in terms of response time? Or does this only depend on how the Master gets implemented? Is there any documentation about this?
Zeusz0
  • 23
  • 2
1
vote
0 answers

Should a CAN Bus-Off condition immediately reset the connection flags despite of Nodeguarding?

I am wondering whether a detected CAN Bus-Off condition should have a direct impact on the connection status flags in my CANopen Master. It is connected to CAN Nodes that handle analog and digital I/O. For each Node there is a flag in the CANopen…
arbyter
  • 11
  • 1
1
vote
0 answers

how to configure pdo mapping in xdd

I'm adding pdo object each in eclipse xdd editor. I looked for documents related to pdo mapping, but there is an error to be more precise It is confirmed normally in xdd editor, but an error occurs in B&R Automation Studio enter image description…
human1
  • 11
  • 3
1
vote
2 answers

What is the difference between RPDO and TPDO?

deviceA: nodeID: 1 deviceB: nodeID: 2 Device A sends an TPDO 181, so B gets an RPDO 181. Device B sends an TPDO 182, so A gets an RPDO 182. There is an address range for RPDOs, for example 200 + ID. If A sends data it will be an TPDO. When will a…
kitaprak
  • 39
  • 4
1
vote
1 answer

What is an application object in CANopen?

I can't see the difference between an object dictionary object and an application object. mapping of application objects into a PDO is determined by a corresponding default PDO mapping structure within the object dictionary But we don't map such…
kitaprak
  • 39
  • 4
1
vote
0 answers

Change Nodeguarding to Heartbeat

We know that we use Nodeguarding for the existence of nodes and of course, Heartbeat is also used. How can we change a system(NMT or M/S) that works in Nodeguarding mode to Heartbeat mode?
Sajadi
  • 154
  • 1
  • 12
1
vote
2 answers

CANopen TPDO comands read/write

Good day, I'm new to CANopen and have several issues related to a PDO input/output. I get following messages from the sensor: As far as I understand these are PDO messages. How can I decode the payload of it? Also, I have a manual for the sensor…
6ece9a
  • 13
  • 2
1
vote
1 answer

CanOpen communication (Python) 1 Slave and CAN-USB adapter

I am currently trying to implement simple communication between an I/O module as a CanOpen slave and my computer(Python script). The I/O module is connected to my computer with a PEAK USB-CAN adapter. My goal would be to read or write the…
RK88
  • 11
  • 1
1
vote
0 answers

Why does the Ethercat device stays in PREOP and does not go to OP mode, when CoE (CAN over Ethernet) is implemented on it?

I am working on a chip which is supposed to be functional as a slave for a PLC (master) through an EtherCAT connection. The chip includes an Atmega2560 and a LAN9252, which ist he EtherCAT slave. On first step in my project, I wrote the ESI file for…
Komorebi
  • 21
  • 8
1
2
3
9 10