# CANopen frame format?

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


-

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: http://stackoverflow.com/questions/1232624/how-to-program-a-simple-canopen-layer

-