RE: CANOpen PDO assignment.
"John Dammeyer" <[email protected]>
| Newsgroups | gmane.comp.hardware.bus.can |
|---|---|
| Message-ID | <8CDEA710E4D3466CAAE6A9E6F82E2526@asus> |
Heinz, Indirectly you've answered my question. Although 301 and 401 talk about default TPDO and RPDO COBIDs in reality there is no such thing. They are all just PDO COBIDs from 0x181 through to 0x57F and how you use them within a node determines if they are a TPDO or a RPDO. The only hard and fast rule is the lower 7 bits 'should' be the CANOpen Node ID of the sender to avoid any possibility of collisions. Even Christian, Andrew and Olaf's "CAN and CANOpen" book really don't address this aspect other than mentioning that some nodes 'Receive' a TPDO and 'Send' a RPDO and how to map the Object Dictionary in a way to make the data show up at the right spot. Microchips CANOpen stack, in order to be small and fast, has so many levels of indirection and macro processing definitions that it's extremely hard to follow what they are doing. And it had some bugs. And yet, the basics of CANOpen with SDOs and PDOs, can make it a simple system to describe. As long as the dynamic configuration etc. is left for later chapters. It's easy to get lost in the overall universality of CANOpen. Like the expression. When you are up to your ass in alligators it's hard to remember that you were there to drain the swamp. And to drain the swamp all you need to do is pull the drain plug. Thanks for the feedback. John Dammeyer > > And this brings up a new question. What are CANOpen implementers actually > doing with RPDOs and TPDOs. Are 99.9% of the CANOpen systems really just > Master/Slave? > > No, they aren't. CANopen lives from its configurability. You have to configure, and this is done typically with the RPDOs, The COB-ID and often the mapping too. Most often you have digital Inputs mapped to a Transmit PDO lets say with Id 181. Other nodes that should receive this one, one is putting this input RPDO to relays, another node is only displaying these inputs Node 1 has a (pre-defined) TPDO on 0x181 Node 2 a (configured) RPDO on 0x181 Node 3 a (configured) RPDO on 0x181 > > Thanks > John Dammeyer Regards Heinz I'll send you one of our CANopen training slides in some minutes.