How to use IOComponent with EtherCAT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2800.1619" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN
class=031565208-18022009>Hi,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=031565208-18022009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=031565208-18022009>I'd like to extend
our control system prototype implemened in OROCOS with EtherCAT communication
ability. I studied the OCL EtherCAT demo example and the IOComponent API
reference. Before starting the implementation I want to make sure, wether I
understood everthing correctly.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=031565208-18022009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=031565208-18022009>Here is a rough
draft of my design:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=031565208-18022009>- a TastContext,
which handles EtherCAT communication (configuring master,
receive/transmit)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=031565208-18022009>- <SPAN
class=031565208-18022009>implementations of
Analog/DigitalOutput/InputDevices&nbsp;writing/reading to buffer(s) provided
by&nbsp;the EtherCAT task</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=031565208-18022009><SPAN
class=031565208-18022009>- other tasks write/read IOs via ports/methods provided
by the IOComponenet.</SPAN></SPAN></FONT></DIV>
<DIV><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></SPAN>&nbsp;</DIV>
<DIV><SPAN class=031565208-18022009><FONT face=Arial size=2>Am I on the rigtht
track?</FONT></SPAN></DIV>
<DIV><SPAN class=031565208-18022009><FONT face=Arial
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=031565208-18022009><FONT face=Arial size=2>best
regards,</FONT></SPAN></DIV>
<DIV><SPAN class=031565208-18022009><FONT face=Arial
size=2>Clemens</FONT></SPAN></DIV></BODY></HTML>

<pre>Important Notice:
This electronic transmission (including any attachments) is intended solely for the use and information
of the addressee(s). It may contain confidential or legally privileged information. Any unauthorized use
or disclosure of this message is strictly prohibited.If you are not the intended recipient, please notify
the sender immediately and delete the message and its attachments.
The sender does not guarantee the integrity of this transmission and shall therefore never be liable if
the message is altered or falsified nor for any virus, interception or damage to your system.

How to use IOComponent with EtherCAT

On Wednesday 18 February 2009 10:25:05 Fuchs Clemens wrote:
> Hi,
>
> I'd like to extend our control system prototype implemened in OROCOS
> with EtherCAT communication ability. I studied the OCL EtherCAT demo
> example and the IOComponent API reference. Before starting the
> implementation I want to make sure, wether I understood everthing
> correctly.

We should seriously consider removing the EtherCat demo, because the EtherCat
Master Library (EML) it requires is no longer available due to license/patent
issues. There's an alternative library available on Berlios:
http://developer.berlios.de/projects/soem
but no Orocos component bindings are available.

>
> Here is a rough draft of my design:
> - a TastContext, which handles EtherCAT communication (configuring
> master, receive/transmit)
> - implementations of Analog/DigitalOutput/InputDevices writing/reading
> to buffer(s) provided by the EtherCAT task
> - other tasks write/read IOs via ports/methods provided by the
> IOComponenet.
>
> Am I on the rigtht track?

>From what I can see, that's ok. The IOComponent can benefit from some
improvements/rework (also discussed not so long ago) so you might have to
improve it (or skip it). There's nothing wrong with an application specific IO
Adaptor component.

Peter