I have a question about Canopen hope someone has an answer! Lets frist start with the facts so that we can confirm them as we go. We have 4 TPDOs and 4 RPDOs in each canopen node. Each TPDO/RPDO is mapped to some data in the object dictionary. Now since I have only 8 byte size packets I can only map 32 bytes of object dictionary data to all the available Tpdos/Rpdos at one time??? Is this correct? If so isn't this a serious limitation? How do we get around this? Thanx in advance
The 4 TPDO and 4 RPDO per node is the default
setup for a CanOPEN implementation. But, being open, you can really have anything you want so long as the hardware supports it. Also, you can always use SDO's to request/receive information. It is just that PDO's are more efficient. The default addressing scheme (every CAN message needs a unique COBid) saves addresses for 127 nodes to each have 4 TPDO's and 4 RPDO's. If you are never using all the nodes, then you can set up those COB id's for the nodes you do have.
From my personal very limited
experience with CanOpen it seems that it would not be the first choice for something very data or character intensive like an HMI unless the hardware on both ends was very customized to accomplish this. For remote I/O drops where there is a lot of bit data and maybe an analog or two it seems ideal.
I'm sure there are more people here with much more experience. If you are just diving into CANopen you should definately get yourself a book on the subject. The best book out there that is well worth the $40 is "Embedded Networking with CAN and CANOpen" by Pfeiffer, Ayre, and Keydel.