CANOpen PDO assignment.

"John Dammeyer" <[email protected]>
Newsgroups gmane.comp.hardware.bus.can
Message-ID <573C0D50BA2F4DFD886D2E08440D89AE@asus>
I've been trying to write up a short description on the difference between
the standard transmit and receive PDOs and I'm having trouble explaining
the difference.  Here's why.

From a master/slave perspective a transmit PDO is one the slave sends to
the master.  The receive PDO is the one that it programs in a filter so
that the message makes it through to the slave.

For the Master, each Transmit PDO is really a receive PDO and each Receive
PDO is really a Transmit PDO.

But I've always thought one of the up sides of CANOpen is that it
functions well as a masterless system.  So two slave class devices can use
PDOs to hold multple bits of information and other slave devices pick out
what they need.  Who uses the standard Transmit PDO and who uses the
Receive and for which direction?

As each message on the bus has to be unique the sender of the PDO will
always put their Node ID in the bottom 7 bits of the COB ID.  You really
can't have two nodes both sending a 0x182 Transmit PDO message so Node 3
will send 0x183 and node 5 will send 0x185.  IfNode 3 needs the
information in the Transmit PDO from Node 5 it's going to set filters to
receive the message with that COB ID.  Or should node 5 also be sending
identical information in a Receive PDO 0x205?

In trying to explain this I end up thinking the concept of default
Transmit and Receive PDOs are redundent and they should have been just
named PDOs without the Transmit or Receive adjective.

Or am I missing something?

John Dammeyer




"ELS! The Solution"
Automation Artisans Inc.
http://www.autoartisans.com/ELS/
Ph. 1 250 544 4950
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.