Interne und externe EtherCAT Synchronisierung
In einer Maschinensteuerung mit verteilten Komponenten (I/O, Antrieben, div. Mastern) kann es zweckmäßig sein, dass die Komponenten in engem zeitlichen Bezug zueinander arbeiten. In den Komponenten muss also lokal eine "Uhrzeit" vorhanden sein, auf die die Komponente (z. B. eine I/O-Klemme) jederzeit Zugriff hat.
Solche Anforderungen können sein:
- Mehrere Ausgänge in einer Steuerung müssen gleichzeitig gesetzt werden, unabhängig davon wann die betreffende Station die Ausgangsdaten bekommt.
- Antriebe/Achsen in einer Steuerung müssen synchron ihre Achsposition einlesen, unabhängig von der Topologie oder Zykluszeit.
Beide Anforderungen bedeuten, dass ein Synchronisierungsmechanismus zwischen den lokalen Uhrzeiten der Komponenten einer Steuerung besteht. - Wenn Eingänge auf die Steuerung einwirken, muss die (absolute) Zeit festgehalten werden - dies kann zur späteren Analyse hilfreich sein, wenn durch Analyse der Abfolge von Ereignissen Wirkungsketten nachvollzogen werden müssen.
Dies bedeutet, dass die in den Komponenten laufende Uhrzeit an eine global gültige Zeit, z. B. die Weltzeit nach Greenwich oder eine Netzwerkuhr, angekoppelt sein muss. - Tasks auf verschiedenen Steuerungen sollen synchron und ohne Phasenverschiebung laufen.
Die Begriffe "enger zeitl. Bezug" oder "gleichzeitig" können je nach Anforderung quantitativ umgesetzt werden: für einen "Gleichzeitigkeit" im 10 ms Bereich kann eine serielle Kommunikationsstruktur ausreichend sein, in manchen Bereichen sind hier 100 ns und weniger gefordert.

In Abb. Einfache I/O-Topologie ist eine einfache EtherCAT-Topologie dargestellt, bestehend aus Master, diversen E/A und einer Achse. In verschiedenen Komponenten solle nun eine lokale Uhrzeit betrieben werden. Die Aufgaben
- Synchronisierung der lokalen Uhren
- Ankopplung an einer übergeordneten Referenzzeit
- Tasksynchronisierung
werden im Folgenden besprochen.
Anforderung 1 + 2: Synchronisierung
In einem EtherCAT-System wird das Distributed-Clocks-Konzept (DC) zur Synchronisierung der lokalen Uhren in den EtherCAT-Komponenten benutzt. Weitere Angaben dazu siehe die separate Dokumentation.
Synchronisierung der lokalen EtherCAT-Teilnehmer
Allgemein:
- Auflösung der Uhrzeit 1 ns entsprechend 1 digit, Umfang 64 Bit entsprechend ca. 584 Jahre.
- Der EtherCAT-Master muss mit Synchronisierungsdatagrammen die verteilten Uhren im Rahmen der Systemgenauigkeit (EtherCAT: <100 ns) synchron halten.
- Nicht jeder EtherCAT-Teilnehmer muss dieses Feature unterstützen. Wenn ein Slave dieses Konzept nicht unterstützt, wird er vom Master nicht in die Synchronisierung mit aufgenommen. Wenn der verwendete EtherCAT-Master dieses Feature nicht unterstützt, ist DC auch in allen Slaves wirkungslos.
- Auch im EtherCAT-Master läuft eine solche Uhr, dort softwarebasiert.
- Im System wird eine der vorhandenen Clocks als Reference-Clock ausgewählt - auf sie werden alle anderen Clocks synchronisiert. Diese Referenzuhr ist üblicherweise eine der Uhren der EtherCAT-Slaves, nicht die des EtherCAT-Masters. Üblicherweise wird der erste EtherCAT-Slave in der Topologie, der die Distributed-Clocks unterstützt, als Referenzuhr automatisch ausgewählt.
- Es ist im Folgenden also zu unterscheiden zwischen
- dem EtherCAT-Master (die Software die mit Ethernet-Frames die EtherCAT-Slaves "verwaltet") und den von ihm verwalteten EtherCAT-Slaves.
- der Reference-Clock die üblicherweise im ersten DC-Slave sitzt und den ihr nachgeregelten Slave-Clocks, einschließlich der Uhr im EtherCAT-Master.
Zum Master:
- Der EtherCAT-Master muss in der Systemstartphase die lokalen Uhr der Reference-Clock und der anderen Slave-Clocks auf die aktuelle Zeit setzen und im Folgenden durch zyklische Synchronisierungsdatagramme die Abweichungen der Uhren untereinander minimieren.
- Bei Topologie Änderungen muss der EtherCAT-Master entsprechend die Uhren neu synchronisieren.
- Nicht jeder EtherCAT-Master unterstützt dieses Verfahren.
- Der EtherCAT-Master in der Beckhoff TwinCAT Automatisierungssuite unterstützt Distributed Clocks in vollem Umfang.
Zum Slave:
- Auf Grund der hohen erforderlichen Exaktheit wird diese lokale Uhr in Hardware (ASIC, FPGA) ausgeführt.
- Distributed Clocks wird im EtherCAT Slave Controller (ESC) in den Registern 0x0900 - 0x09FF verwaltet, konkret läuft in den 8 Byte ab 0x0910 die lokale synchronisierte Uhrzeit.

In Abb. Abbildung DC auf die Topologie wurde beispielhaft der 3. EtherCAT-Slave als DC-Reference-Clock ausgewählt - nach dessen lokaler Uhrzeit werden nun alle anderen Ausprägungen der verteilten Uhren nachgeregelt, also alle anderen EtherCAT-Slaves und die Uhr im EtherCAT-Master. Dies geschieht durch Synchronisierungsdatagramme, die der EtherCAT-Master zyklisch verschickt.
Durch dieses Verfahren ist gewährleistet, dass in allen DC-unterstützenden Teilnehmern jederzeit lokal auf eine Uhrzeit zurückgegriffen werden kann, die im Rahmen der DC-Synchronisierungsgenauigkeit in allen Teilnehmern gleich ist.
Das System arbeitet nun auf Basis der Zeitbasis der ausgewählten DC-Reference-Clock bzw. deren lokalem Taktgeber/Quarz mit TDC. Diese Zeitbasis wird durch Produktions-/Fertigungsschwankungen kaum jemals gleich der amtlichen Sternzeit/koordinierte Weltzeit UTC TUTC oder einer anderen Referenzzeit sein. Das bedeutet, 1 msUTC entspricht nie exakt 1 msDC, TDC≠ TUTC. Über längere Zeiträume können auch Driftvorgänge das Verhältnis verändern. Solange DC für relative Vorgänge innerhalb des EtherCAT-Systems verwendet wird, spielt diese Abweichung von der UTC keine Rolle. Soll die DC-Zeit z. B. für Datenlogging mit globalem Zeitmaßstab verwendet werden, muss die ZeitbasisDC zur ZeitbasisUTC synchronisiert werden. Dies wird im Kapitel der Anforderung 3 beschrieben.
Anforderung 3: übergeordnete Globalzeit - Absolutzeit
Soll die Zeitbasis TDC einer übergeordneten Zeitbasis nachgeregelt werden, ist dazu die Zeitbasis und das Verfahren zu wählen. Üblicherweise werden gängige Synchronisationsprotokolle zur Synchronisation verwendet, Zeitquellen und Synchronisationsverfahren können sein
- Quellen: Weltzeit UTC, Netzwerkzeit, benachbarte Steuerung, Funkuhren (in Mitteleuropa: DCF77)
- Verfahren: GPS, Funkuhren, NTP (NetworkTimeProtokoll), SNTP (Simple NTP), PTP (IEEE1588), DistributedClocks DC
Erreichbare Synchronisationsgenauigkeiten liegen dabei (je nach Hardware) bei
- NTP/SNTP: ms-Bereich
- PTP: < 1 µs
- DC: < 100 ns
Dabei sind die folgenden beiden Regelungsziele zu erreichen:
- die Frequenz der unterlagerten Zeitbasis ist der übergeordneten nachzuführen.
- ein ggf. bestehender Offset zwischen beiden Absolutzeiten muss nicht unbedingt zu 0 geregelt werden, es reicht ihn bekanntzugeben und konstant zu halten. Der Offset wird max. um ±½ Zykluszeit angepasst.
![]() | Externe EtherCAT-Synchronisation Externe Synchronisationsquellen (EL6688, EL6692 u.a.) können erst ab TwinCAT 2.11 verwendet werden. In früheren Versionen von TwinCAT haben solche EtherCAT-Slaves keine sinnvolle Funktion. |
Wird eine übergeordnete Master-Clock in ein EtherCAT-System eingebunden, wird dazu üblicherweise ein spezieller EtherCAT-Teilnehmer für den physikalischen Anschluss verwendet. Dieser kann, da er beide Zeitbasen beobachtet, die Zeitdifferenz ermitteln.
Bitte informieren Sie sich unter www.beckhoff.de über die für diesen Zweck geeigneten aktuell verfügbaren Produkte.

Die unterschiedlichen Zeitbasen lassen sich hierarchisch anordnen - beim Start des jeweiligen Systems wird die aktuelle absolute Zeit vom jeweils unterlagerten System übernommen, ggf. wird eine Synchronisierung Top-Down wirksam, falls externe Zeitbasis bzw. DC-Komponenten im System vorhanden sind.
Nachregelung Lokalzeit vs. übergeordnete Absolutzeit
Die lokale DC-Zeit wird im Synchronisierungsfall nicht der übergeordneten Absolutzeit vollständig angeglichen, sondern nur auf einen konstanten Offset nachgeregelt. Dem Anwender wird dieser Offset als Prozessdatum zur Verfügung gestellt. Dabei wird der Offset um ±½ Zykluszeit korrigiert, damit beide Tasks in Phase laufen.
- Wenn TwinCAT den EtherCAT-Master startet, wird umgehend das lokale DC-System in den Slaves in Betrieb genommen und synchronisiert.
- Ein ExternalReference-Slave wie z. B. EL6688 (IEEE1588 PTP) liefert aber erst nach einigen Sekunden eine mit der übergeordneten Uhr abgestimmte Referenzzeit.
- Sobald diese externe Referenzzeit zur Verfügung steht, wird der Offset zur Lokalzeit berechnet, um ±½ Zykluszeit korrigiert, damit beide Tasks in Phase laufen und dem Anwender in den Info-Daten des EtherCAT-Masters zur Verrechnung mit seinen lokalen Zeitwerten zur Verfügung gestellt.
- Ab diesem Zeitpunkt wird dieser Offset je nach gewählter Regelungsrichtung konstant gehalten.
Systemverhalten TwinCAT
Ausfall der externen Referenzclock
Fällt das Signal der externen Referenzclock aus, driften naturgemäß beide Zeitbasen wieder auseinander. Setzt das Signal wieder ein, wird auf den bisherigen Offsetwert stetig zurückgeregelt.
TwinCAT kann auch ohne Signal der externen Uhr starten, beim erstmaligen stabilen Empfang der externen Referenzclock wird der Offset wie oben beschrieben berechnet und beibehalten.
Einstellungen in TwinCAT 2.11
Ab TwinCAT 2.11 wird die externe Synchronisierung über EtherCAT unterstützt. Im entsprechenden Dialog kann die Synchronisierungsrichtung eingestellt werden.
Einstellungen Distributed Clocks Timing

- Independent DC Time: eine der EL Klemmen (üblicherweise die erste DC-unterstützende) ist die Referenzclock, alle anderen DC-Klemmen werden dieser nachgeregelt. Auswahl der Referenzclock im Dialog darüber.
- DC Time controlled by TwinCAT: die DC-Referenzclock wird der lokalen TwinCAT-Zeit nachgeregelt.
- DC Time controlled by External Sync Device: wenn das EtherCAT-System einer übergeordneten Uhr nachgeregelt werden soll, kann hier das External Sync Device ausgewählt werden.
Einstellungen Prozessdaten
TwinCAT 2.11 kann in den EtherCAT-Master-Infodaten die aktuellen Offsets in [ns] anzuzeigen.
- Diese Offsets werden nach dem EtherCAT-Start einmalig berechnet.
- Die Synchronisationsregelung hält diese Offsets konstant.
- Sollen auf dem aufsynchronisierten EtherCAT-System lokale DC-Zeitwerte (z. B. aus Zeitstempelklemmen EL1252) in den absoluten Bezug des übergeordneten EtherCAT-Systems gesetzt werden, muss der Anwender diesen Offset mit jedem lokalen Zeitstempel verrechnen.
Beispiel: tEL1252 Zeitstempel Kanal 1, Absolute Zeit = tEL1252 Zeitstempel Kanal 1, lokale DC Zeit + tExtToDcOffset

