I'm not familiar with the machine or fully understanding what you are doing. What described is standard J1939 specified behavior and is generally built right into the CAN bus controller hardware. What exactly do you wish to learn about CAN bus?
It has many levels depending on what you are doing. At a basic level the wikipedia article pretty much covers it. What you need to do then is get a couple of boards with can bus on them like say a couple of micro controller dev boards and play with those connected together. Although I have a kvaser CAN bus USB adapter that is real handy when I have a working system and want to snoop on it, unless it gets a valid message it won't show you anything. I am finding testing of my work is better done with a picoscope that can decode CAN bus. With the scope I can see the actual signals and the picoscope software does give some feedback like my missing acknowledge bit from a second device or if the message was valid as there is a hardware CRC check with CAN bus.
After that it is what do you want to run on top of the CAN bus, your own protocol, or one of the many. Automotive runs J1939, this is not to be confused with CAN bus 2.0 standard. the 2.0 standard was created for the hardware so that CAN bus could run the J1939 protocol but they are two very separate things and J1939 is covered by copyrighted standards that need purchasing. Essentially all it is, is a list of the message ID's and what data they hold. The other very popular standard is CAN Open that is rather more complex but is freely available, I am trying to crack this one myself.