[Searching] CANopen wrapper library for CAN interface

Has anyone programmed a library to handle CANopen devices on a simple CAN interface? E.g. the X20CS2770 doesn’t have CANopen, and handling multi part sdo reads etc. manually is very inconvenient. But since everything is described in the CANopen spec, it should be possible to have a little wrapper lib to make life easier?! Anyone has something like it? Would be highly appreciated (and save me some work…)! :slight_smile:

i will send you a Lib.

Hi @stephan.herbig, would it be possible to share the library here?

example project created with Automation Studio 4.7

CanOpMa_47.zip (162.2 KB)
CoMaDevice_en.pdf (73.4 KB)

3 Likes

Hi,

I am testing this library between two X20CS1070 cards but can’t make it work.
Can this library be used only for master-slave communication type or can also be used for direct data exchange between nodes?

Hello Andrius,

this library represents a CanOpen Master. In order to be able to establish communication between two X20CS1070 via CanOpen, a CanOpen slave is required on the second controller. This library does not offer this function.

Regards
Stephan

hello,

Did you try to use the CAN_lib library?

wit regards
sven

Hello Stephan,
Can we use above library CoMaDevice for preconfigured Salve Device by keeping enable input pSlave.Device.enable => FALSE, So that We can use Only PDO Read & write communication without Activating SDO, As we have preconfigured Slave Device

works great
thank you Stephan

Hello,

you can simply delete the data object from the software configuration. Then the slave starts with its preset values.

Regards
Stephan

Thank you for your feedback

Regards
Stephan

Hello Sven,

yes i use can_lib!

Regards
Stephan

Hi Stephan

I was using your wraper lib on top of a CAN interface to communicate with a slave. Your wrapper works and the description pdf looks ok but does not cover all. I am beginner and find it a bit hard to understand all- I would like to know if there is a decsription of how to send NMT command or just send a PDO (ID = 000 Data = 01 03 ( to slave 3)) to wake up the slave?
Thanks