03.03.2013 Views

CANopen Programmer's Manual - Maccon.de

CANopen Programmer's Manual - Maccon.de

CANopen Programmer's Manual - Maccon.de

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!