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
1
vote
1 answer

Canopen auto addressing with LSS, how to architect the system

I am new to Canopen and need to architect a system with the following characteristics: 1 canopen Master (also a gateway) multiple canopen slave nodes, composed by multiple instances of the same device (with unique SNs, as required by LSS) I would…
Gustavo Laureano
  • 556
  • 2
  • 10
1
vote
2 answers

CANOpen Multi client Single server SDO communication

As SDO communication is for peer to peer communication. Is there a way a CANOpen server can communicate with two different clients at same time for same object? For example: Node-1 (Server): ID-5, OD:6023h, Length:100 bytes Node-2 (Client):…
Sandeep Thota
  • 135
  • 1
  • 11
1
vote
3 answers

Must all CANopen Indexes have at least one subindex?

I'm fairly new to CANopen protocol and creating a slave device for analog readings. My question related to access some of the indexes on SDO layer. In the official documents CIA 301 and CIA 404, in all indexes, subindex 0x00 defines how many entries…
e-zeki
  • 11
  • 3
1
vote
1 answer

no sdo response recieved

I'm working on creating a virtual canopen slave with python to communicate with an existing master. when running my script I keep getting this error "no sdo response recieved". As far as I know, I need an sdo server to send response to the master,…
Hayfa
  • 11
  • 1
1
vote
2 answers

CANOPEN SYNC timeout after enable Operation

I am a newbie in CANOPEN. I wrote a program that read actual position via PDO1 (default is statusword + actual position). void canopen_init() { // code1 setup PDO…
HoanTV
  • 23
  • 5
1
vote
1 answer

Configure .eds file to map channels of a CANopen Client PLC

In Order use a PLC as a Client (formerly “Slave”), one has to configure the PDO channels, since the default values of the manufacturer are often not suitable. In my case, I need the PDOs so send INT valued instead of the default UNSIGNED8 (see.…
Dr No
  • 118
  • 5
1
vote
0 answers

Trying to add CANopenNode library but getting errors

https://github.com/Alphatronics/mbed-os-example-canopen trying to add this library for stm32f429zi nucleo but couldn't been able to do so. Tried install both manually and with mbed studio. While manually installing with "mbed import…
1
vote
1 answer

CANOpen same object mapped to multiple TPDOs

I have a slave device with multiple TPDOs (4) for sending certain sensor data. Each TPDO has about 4 bytes of data and I want to insert a 'count' in the frame to indicate data is not stale. My plan is to create an object entry for this and map it to…
embedcrazy
  • 11
  • 1
1
vote
1 answer

Are unused bytes set to zero in response to SDO reads?

I send and SDO request to read a 1 byte value like this: |11 bit COD-ID | byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 | | 0x0601 | 0x40 | index | subindex | 0x00 | 0x00 | 0x00 | 0x00 | and the…
knivil
  • 787
  • 3
  • 11
1
vote
1 answer

Tools to convert CANopen raw data using *.dbc file?

I'm pretty new with CANopen, and also a little bit shooting in the dark... I would like to know if there are tools or packages in R or Python to convert raw data logged from a CANopen device, to human readable values, with a *.dbc file? Does…
Julien
  • 139
  • 13
1
vote
1 answer

What is the correct operation of a CANopen inhibit timer?

I understand that the operation of a CANopen inhibit timer is to ensure a minimum time between successive transmissions of the same message, but the specification does not make it clear what to do if the data changes during the inhibit time (and the…
iChal
  • 85
  • 1
  • 6
1
vote
2 answers

TwinCAT CoE: Write to SDO

I'm pretty new to the EtherCAT/CANopen universe and trying to implement a custom slave. The slave is passing conformance test so far and want to write to one of my Slave Data Objects, the slave is attached to a CX5120, which is found by the XAE and…
DK999
  • 33
  • 1
  • 7
1
vote
1 answer

CAN BUS protocol stack

Can someone explain to me what is CAN BUS protocol stack? Is it CAN BUS+ higher layers, like CANopen with 7 layers or something else, and can someone explain how can I use CAN stack, how I connect it with CAN bus, and why I need it? Thank you
aztaztazt
  • 15
  • 3
1
vote
1 answer

Codesys and CANopen multisame NodeID

If I have Codesys project with CANopen manager and I add a CANopen slave node to the CAN with node id 19, the system is clear to me, but if I add two same sensor devices with same factory preset nodeid 19, how do I change the nodeID of either of…
1
vote
1 answer

CAN bus idle detection

For CAN, the frame starts when SOF (0) is encountered. But let’s say our system just now joined the CAN bus. How will it be able to detect the start of a new CAN Frame? The EOF is of seven recessive bits plus three IFS (inter frame spacing) bits..so…
1 2
3
9 10