EEVblog Electronics Community Forum
Products => Computers => Programming => Topic started by: Simon on December 20, 2023, 01:13:18 pm
-
I'm now starting to babble in canopen. The problem is that as one message ID carries all the data traditional CAN monitoring programs don't really work. Is there anything out there that is free or not too expensive that is worth using. At the moment I'd like to look at the sequence of message responses to see if I am getting the device into it's active state properly but with Kvaser canking I will obviously only ever see the last response or I will have to trawl through log files.
I don't mind trying a linux thing, I have a RPi P400 but "canopen-monitor" on github failed to install I can't spend days trying to work out why.
-
You can try busmaster (https://rbei-etas.github.io/busmaster/), the database files you can write are really useful for normal CAN or J1939.
However it's not CANopen and I am not that familiar with the ID used in CANopen...
Python can also talk with kvaser drivers, so you can also ask chatgpt to write something for you ;)
-
In J1939 every ID identifies the data it carries, so you can create a DBC file that species what this is in each ID and a program like my canking will filter out the data into lines with the data as interpreted by the DBC file. With CANOpen there are a handful of ID's and in the mode I am working right now one ID to send to a device and 1 ID in response. The data is identified by the contents of the message. The system uses an object dictionary of indexs and sub indexes to reference the data sent from the same ID followed by the data so only 4 bytes of data are sent for the SDO protocol that I need to use to start up. But because the ID is not unique to the data contained in the message, J1939 types of decoding are not that useful beyond seeing what the last response was.