Is there a resource that describes how CANopen frames are constructed down to the byte level?
I'm trying to decode a hex dump from a CAN bus, see the image below. The high-level CAN messages that created this data are:
# Parameter: Node Id
NodeId = 127 # Node Id
#-----------------------------------------------------------------------------------------------------------------------
# Initialisation
mc.Can.SdoWr(NodeId, 0x3000, 1, 1) # Reset error register
mc.Can.SdoWr(NodeId, 0x3000, 1, 0x77) # Relative positioning 150 counts
Best Answer
Generally I've found that actual device manuals usually have the easiest to understand descriptions of the CANopen protocol. They are hands on, and seem to have a much more practical approach than many other materials.
For example this one I found quite easy to follow: http://www.a-m-c.com/download/sw/dw300_3-0-3/CAN_Manual300_3-0-3.pdf
Over at stackoverflow other people have asked similar questions and they've gotten a good amount of answers: https://stackoverflow.com/questions/1232624/how-to-program-a-simple-canopen-layer