Class A - Master Synchronisation (DCM)

Synchronisation zwischen Master und Slaves

Zur Synchronisation der Busteilnehmer (Slaves) wird bei EtherCAT das Verfahren Distributed Clocks (DC) verwendet. Hierbei wird der erste DC-fähige Slave am Bus als Referenz Clock definiert. Die hochgenaue Uhrzeit der Referenz Clock wird mit Hilfe des EtherCAT Masters an alle Slaves verteilt. Dazu sendet der EtherCAT Master ein zyklisches ARMW-Kommando um die Buszeit aus dem Register 0x1234 des Clock Masters auszulesen und in das entsprechende Register der DC-Slaves zu schreiben.
Über den integrierten Regler führen die Slaves die lokale Zeit nach. Damit die geforderte Genauigkeit kleiner 1 us gewährleistet werden kann, müssen zusätzlich noch die Laufzeiten der EtherCAT Frames zwischen den einzelnen Slaves kompensiert werden. Dazu bestimmt jeder Slave die Zeit zwischen abgehendem und zurückkehrendem Frame. Der Master berechnet dann anhand der Topologie die Abstände zwischen den Slaves und schreibt die entsprechenden Korrekturwerte in das Register 0x0928 des EtherCAT Slave Controllers.

Basierend auf der Bus-Zeit werden in den Slaves die SYNC Impulse erzeugt, deren Frequenz in der Regel dem EtherCAT Bustakt entspricht. Versendet der EtherCAT Master z. B. die zyklischen Daten im 1 ms Takt, so liegt die SYNC Impuls Takt ebenfalls bei 1ms. Dieser SYNC Impuls steht auf der Slave-Seite einerseits als digitales Ausgangssignal zur Ansteuerung von Hardwarekomponenten und andererseits als Interruptquelle für die Slave-Software zur Verfügung.
Wichtig ist hierbei, dass alle Slaves bereits mit neuen Daten versorgt sind bevor der SYNC Impuls auf den Slaves ausgelöst wird. Dazu kann zwischen dem Eintreffen der zyklischen Daten und dem SYNC Impuls ein gewisser zeitlicher Abstand projektiert werden.

Der Bustakt für den EtherCAT Master wird in der Regel von einem quarzgetriebenen Timer erzeugt. Bedingt durch die Tatsache, dass zwischen diesem Timer und der ebenfalls quarzgetriebenen Uhrzeit des DC Clock Masters eine Drift existiert, kann nicht ohne weiteres ein konstanter Abstand zwischen dem Sendezeitpunkt der zyklischen Daten und dem SYNC Impuls gewährleistet werden.

Damit dieser Abstand trotzdem auf einen vorgegebenen konstanten Wert eingestellt werden kann, muss der EtherCAT Master mit dem DC Clock Master synchronisiert werden. Dieses Verfahren nennt man Distributed Clocks Master Sync (DCM).

Umgesetzt werden kann dies auf zwei unterschiedliche Weisen:
- Nachregelung des Timers des EtherCAT Masters (Master Shift)
- Schieben der Buszeit des Clock Masters (Bus Shift)

Der zum Einsatz kommende DCM-Regler bestimmt in regelmäßigen Abständen die Differenz zwischen der EtherCAT Master Zeit und der Clock Master Zeit. Unter Berücksichtigung des Sollwerts (Abstand des SYNC Impulses zum Timer-Interrupt im Master) berechnet der PI-Regel-Algorithmus die Stellgröße. Diese Stellgröße wirkt in der Variante „Master Shift“ auf den Timer des EtherCAT Masters und in der Variante „Bus Shift“ auf den Timer des DC Clock Masters.

Der Class A EtherCAT Master von acontis unterstützt beide Varianten.
Gerne beraten wir Sie, welches Verfahren für Ihren Einsatzzweck geeigneter ist.

Blue line: Start of cyclic task (Job-Task) driven by oscillator on master controller

Red line: DC-Sync signal based on System Time driven by oscillator in the slave.
Slave task is scheduled after DC-Sync is raised.

Without synchronizing both times, the EtherCAT frame (process data) may transmitted through the network while the slave task is scheduled.
This will cause the same issues as in free run mode.

  • Outputs (Master to Slave): Slave has no new data in one cycle, or will miss output data
  • Inputs (Slave to Master): Master has no new data, or will miss input data

DCM: Bus Shift Mode (default) Reference Clock controlled by Master/Controller Time

Bus Shift: DC Reference Clock follows the Master Clock/Timer

  • Adjust the Bus Time Register of the DC Reference Clock. The Ref.clock converge to this time.
  • The DC Ref. clocks time (EtherCAT system time) is distributed to the slaves behind the Ref.clock. The slaves will converge to the system time.

DCM: Master Shift Mode Master/Controller Time controlled by Reference Clock

Master Shift: Master Clock/Timer follows the DC Reference Clock

  • The timer frequency on Master controller is adjusted.
    E. g., if the timer is to fast, slow down the timer for one cycle and then switch back to the original frequency.
  • Pro: Reduced DCM controller error
  • Pro: Quality independent from cyclic frame send time jitter
  • Con: Requires enhanced OS-Layer:
    OsHwTimerGetInputFrequency(), OsHwTimerModifyInitialCount()
  • Con: Not available on all operating systems!

DCM Controller Set Value (default) “Controlling the time between cyclic frame and Sync0”

  • Minimum controller error depending on cyclic frame send time jitter
  • Frame send time depends on application execution time
  • App execution time should be nearly constant
  • The DCM controller is using a filter algorithm to deal with frame send time jitter
  • Works fine in most cases

DCM Controller Set Value (enhanced) “Controlling the time between start of cycle and Sync0”

  • Reduced DCM controller error
  • Quality independent from
    cyclic frame send time jitter
  • Requires enhance OS-Layer
  • OsHwTimerGetInputFrequency()
  • OsHwTimerGetCurrentCount()
  • Not available on all operating systems!