Synchronize updateHook() with EtherCAT slaves' distributed clock signal?

Hi Luca,

On Fri, Jun 22, 2012 at 4:39 AM, Luca Magnabosco
<magnabosco [dot] luca [..] ...>wrote:

> An example could be done thinking to SOEM/Orocos_master:
> This component reads data from EtherCAT slaves [hardware] but doesn't
> generate the control command.
> The control command could be generated form a component linked to the
> Master that receive data and decide how to control the slaves.
> Control data are then passed to the master that send it to the slaves.
> Another thing that has to be considered is that the master "has to run
> with its particular period" * while the controller can have any period
> but the components have to be synchronised.
>
> *Using DC clock this period it's not fixed but can change a bit to
> keep the master synchronised with the Slave's "DC signal".
> This part of the synchronisation between the Master and the hardware
> slaves has been already solved.
>

How do you synchronize the EtherCAT master with the hardware?

We use EtherLab's EtherCAT Master in user space to communicate with our
slave cards, and we would like to phase shift (so to speak) the master
relative to the slave cards' 1 kHz loop.

Is this something that SOEM does, or is there a way to deploy an Orocos
Component such that it starts at a specific system time? (Or is there
another way to specify the phase shift?)

Soo-Hyun Yoo
Dynamic Robotics Laboratory
Oregon State University