Re: CANOpen PDO assignment.
| Newsgroups | gmane.comp.hardware.bus.can |
|---|---|
| Message-ID | <OF512F8110.5BC642A0-ONC2257AA7.0025A780-C2257AA7.0026AE33@LocalDomain> |
Hello John,
In CANopen, you don't need to have an application master - there may be
e.g. CiA-401 HMI and
CiA-408 hydraulic drives connected together to provide simple open-loop
drive behavior. Only
NMT-master functionality is needed in one device for starting up the
communication. NMT-master
functionality can be implemented in any node and it can be enabled and
disabled via the object
dictionary. Maybe you are confused, because traditionally
application-programmable devices
have been used as NMT-masters, but that is mostly old-fashioned thinking
of system designers,
not restriction of CANopen itself.
I presented some example implementations without application master in
last iCC:
http://www.can-cia.org/fileadmin/cia/files/icc/13/saha_02.pdf
Signal connections are always application specific, which means that there
cannot be a generic
common PDO mappings and communication parameters for all possible
applications. Default
CAN-IDs for PDOs are just default and they may be changed from design to
design.
RPDO of consuming device shall be TPDO of producing device or there does
not exist a valid
connection. TPDOs and RPDOs define the "direction" from individual device
point of view - the
directions are not global to a network.
Best regards,
-H
"John Dammeyer"
From: "John Dammeyer" <[email protected]>
To: "'Canlist'" <[email protected]>
Date: 30.10.2012 07:20
Subject: [CANLIST] CANOpen PDO assignment.
Sent by: [email protected]
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
This e-mail is confidential and it is intended only for the addressees. Any review, dissemination, distribution, or copying of this message by persons or entities other than the intended recipient is prohibited. If you have received this e-mail in error, kindly notify us immediately by telephone or e-mail and delete the message from your system. The sender does not accept liability for any errors or omissions in the contents of this message which may arise as a result of the e-mail transmission.