[etherlab-users] Patch for Distributed Clock?

Graeme Foot Graeme.Foot at touchcut.com
Wed Jan 11 23:05:53 CET 2017


I've attached an hg changeset of the patches I use.  You can get the DC related ones from it.  If you look in the etherlab-dev forum you will also find Gavin's patchsets which will be more up to date.

Do a search for "etherlab-users dc" (or similar) to find posts related to how to set up distributed clocks.  eg:


But to answer you question:

A system requires one master clock that all other clocks in the system sync to.  That clock can either be the clock in the EtherCAT master or it can be a clock on one of the slaves (the dc reference slave).  Separate to that, all dc slaves on the bus need to be synced to a reference slave clock.  This should be the first slave on the bus that supports dc.  The EtherLAB master will automatically select this for you, or with the patch you can select it yourself.

Generally the EtherCAT master clock has too much jitter to provide a nice stable system, so instead I use option two where my dc reference slave is the master clock and I adjust the EtherCAT master clock to it (this is the default option used by TwinCAT).

Also note (as described in the post I linked to above), there are two levels of dc support in slaves.  DC clock level support (alot of simple IO slaves have this) and the ability to sync the IO to the dc clock (generally only more advanced slaves support this).  The DC reference slave only requires the DC clock level of support.

In your case, if your AX5206 slave is the first slave it can be both the reference slave and the DC clock master.


PS: Our system uses various IO modules and amps.  Our dc reference slave is often our first IO module (an EL1008).

From: Jiarui Lian <jerry at bertec.com>
Sent: Thursday, 12 January 2017 06:39
To: Graeme Foot
Subject: Patch for Distributed Clock?

Hi, Dear Mr. Graeme Foot:

I am studying IgH-EtherCAT-Master to control AX5206, and I saw your post in 2012:

* Would you mind to send a copy of the patch to me?
* And a question, when you said: "pick a ref slave and update my master time based on the ref slave time."
  Does your system consist of at least two slaves with DC capability?
     Master(Jitter) ---- Slave.1 (DC, Ref-to-Master) ---- Slave.2(DC, Ref-to-Slaves) ---- MoreSlaves
  In my case, I have only one slave with DC:
     Master(Jitter) ---- Slave.1(AX5206, DC) --- MoreSlaves
  Any suggestion to me?

Thanks, your help is appreciated!

Bertec Corp.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20170111/8d3fab48/attachment-0002.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: etherlabmaster-1.5.2-changesets.hg
Type: application/octet-stream
Size: 36595 bytes
Desc: etherlabmaster-1.5.2-changesets.hg
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20170111/8d3fab48/attachment-0003.obj>

More information about the Etherlab-users mailing list