CANopen Programmer's Manual - Maccon.de
CANopen Programmer's Manual - Maccon.de
CANopen Programmer's Manual - Maccon.de
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>CANopen</strong> Programmer’s <strong>Manual</strong> 1: Introduction<br />
SDO vs. PDO: Design Consi<strong>de</strong>rations<br />
Differences Between SDO and PDO<br />
As stated earlier, SDOs and PDOs can both be <strong>de</strong>scribed as channels through which CAN<br />
messages are sent, and both provi<strong>de</strong> access to a <strong>de</strong>vice’s object dictionary, but each has<br />
characteristics that make it more appropriate for certain types of data transfers.<br />
Here is a review of the differences between SDOs and PDOs, and some <strong>de</strong>sign consi<strong>de</strong>rations<br />
indicated by those differences:<br />
SDO PDO Design Consi<strong>de</strong>rations<br />
The accessed <strong>de</strong>vice always confirms<br />
SDO messages. This makes SDOs<br />
slower.<br />
PDO messages are unconfirmed. This<br />
makes PDOs faster.<br />
One SDO transfer can send long blocks A PDO transfer can only send small<br />
of data, using as many CAN messages amounts of data (up to eight bytes) in a<br />
as required.<br />
single CAN message. Mapping allows<br />
very efficient use of those eight bytes.<br />
Asynchronous. Synchronous or asynchronous. Cyclic<br />
or acyclic.<br />
The SDO employs a client-server<br />
communication mo<strong>de</strong>l. The <strong>CANopen</strong><br />
master is the client. It reads from and<br />
writes to the object dictionaries of<br />
<strong>de</strong>vices. The <strong>de</strong>vice being accessed is<br />
the server.<br />
All communications can be performed<br />
through the SDO without using any<br />
PDOs.<br />
The PDO employs a peer-to-peer<br />
communication mo<strong>de</strong>l. Any <strong>de</strong>vice can<br />
send a PDO message, and a PDO<br />
message can be received and<br />
processed by multiple <strong>de</strong>vices.<br />
The <strong>CANopen</strong> master application uses<br />
SDO messages to map the content of<br />
the PDO, at a cost of increased CPU<br />
cycles on the <strong>CANopen</strong> master and<br />
increased bus traffic.<br />
To transfer 8 bytes or less at real-time<br />
speed, use a PDO. For instance, to<br />
receive control instructions and transmit<br />
status updates.<br />
To transfer large amounts of low priority<br />
data, use the SDO.<br />
Also, if confirmation is absolutely<br />
required, use an SDO.<br />
Use PDO when synchronous or<br />
broadcast communications are<br />
required. For instance, to communicate<br />
set points from the master to multiple<br />
<strong>de</strong>vices for a multi-axis move, or to<br />
have a <strong>de</strong>vice broadcast its status.<br />
If the application does not benefit from<br />
the use of a PDO for a certain transfer,<br />
consi<strong>de</strong>r using SDO to avoid the extra<br />
overhead. For instance, if an object’s<br />
value is updated only once (as with<br />
many configuration objects), the SDO is<br />
more efficient. If the object’s value is<br />
updated repeatedly, a PDO is more<br />
efficient.<br />
Copley Controls 27