Distributed Clocks

Verteilte Uhren

Distributed Clocks (Verteilte Uhren) sorgen dafür, dass digitale Ausgänge synchron aktualisiert werden können und dass digitale Eingänge synchron erfasst werden können. Sie erlauben, dass eingehende Ereignisse mit einem genauen Zeitstempel versehen werden können (Latch Signals), dass synchrone Ausgangssignale (Sync Signals) erzeugt werden können und synchrone Interrupts hergestellt werden können.

Es gibt DC-Teilnehmer, die eine eigene Systemzeit haben und die die volle Funktionalität ermöglichen, die Distributed Clocks bieten. Weiterhin gibt es EtherCAT-Slave-Geräte, die eine lokale Uhr haben, jedoch nur die Messung von Laufzeitverzögerungen unterstützen. Geräte mit drei oder mehr Ports müssen mindestens diese reduzierte Funktionalität eingebaut haben. Schließlich gibt es Slaves, die keine DC-Funktionalität integriert haben. Sie haben maximal zwei Ports und ihre Laufzeitverzögerung wird wie die Verzögerung auf einer einfachen elektrischen Leitung behandelt.

Die Distributed Clocks werden zwischen den EtherCAT-Teilnehmern synchronisiert. Für die Synchronisierung wird eine Referenzuhr bestimmt. Typischerweise verwaltet der Teilnehmer, der sich als erster hinter dem Master befindet und ein DC-Teilnehmer ist, die Referenzzeit. Der EtherCAT-Master benutzt seine Uhr, um die Referenzuhr zu initialisieren. In der Folge wird jedoch auch der EtherCAT-Master nach dieser Referenzuhr synchronisiert.

Alle lokalen Uhren laufen anfangs unabhängig von der Referenzuhr. Die lokalen Uhren der DC-Teilnehmer werden in drei Schritten mit der Referenzuhr synchronisiert, so dass schließlich jeder DC-Teilnehmer die Systemzeit innehat. Zuerst wird die Laufzeitverzögerung zwischen den lokalen Uhren gemessen. Als nächstes wird der Offset der Uhren der DC-Teilnehmer in Bezug auf die Referenzuhr kompensiert. Schließlich wird die Drift zwischen lokaler Systemzeit und der Referenzuhr regelmäßig korrigiert.

Zur Messung der Laufzeitverzögerung sendet der Master einen Frame aus. Mit Hilfe der verteilten lokalen Uhren werden Zeiten bestimmt, an denen der ausgesendete Frame die Ports der Slaves erreicht, und entsprechende Zeitstempel vergeben. Auf diese Weise werden zwischen den Ports der Slaves Laufzeitdifferenzen gemessen. Der Master liest alle Zeitstempel und berechnet die Verzögerungszeiten zwischen allen Teilnehmern entsprechend der Topologie des EtherCAT-Netzwerks.

Nachdem die Laufzeitverzögerung im EtherCAT-Netzwerk bekannt ist, kann die Systemzeit auf die DC-Teilnehmer verteilt werden. Die lokale Zeit jedes DC-Teilnehmers wird mit der Systemzeit der Referenzuhr verglichen. Die Differenz aus diesem Vergleich wird kompensiert, indem sie individuell zu jedem DC-Teilnehmer geschrieben wird. Alle DC-Teilnehmer bekommen dieselbe Systemzeit.

Die Drift zwischen Referenzuhr und lokaler Uhr eines DC-Teilnehmers muss regelmäßig kompensiert werden. Dazu werden Zeitdifferenzen zu den DC-Teilnehmern gemessen und lokale Uhren neu eingestellt.

External Mode

Als Default-Einstellung stellt in einem Master-Slave-System das erste Slave-Gerät, welches DC-Unterstützung braucht, die Referenzuhr. Der External-Mode dient dazu, zwei oder mehr separate Master-Slave-Systeme miteinander zu synchronisieren. Eine Möglichkeit, den External-Mode einzurichten, besteht darin, die Klemme EL6692 zu verwenden. Diese Klemme kann zum Beispiel in das Sync-Master-System eingesetzt werden. Ausgehend von dem Sync-Master-System können dann mehrere Sync-Slave-Systeme synchronisiert werden. Aus den Referenzsignalen der separaten Systeme errechnet das Sync-Master-System ein gemeinsames taktsynchrones Referenzsignal.

Distributed Clocks

Distributed Clocks 1:

DC Mode

Automatic DC Mode Selection: Als Standardeinstellung ist dieses Kontrollkästchen angewählt. Die Reference-Clock wird automatisch ausgewählt.

DC in use: Wenn dieses Kontrollkästchen angewählt worden ist, dann kann die Auswahl der Reference-Clock und der Synchronisierungsrichtung manuell vorgenommen werden. Wenn nur ein EtherCAT-Gerät in der Konfiguration vorhanden ist und wenn DC-Slave-Geräte genutzt werden, dann muss als Synchronisierungsrichtung „Independent DC Time (Master Mode)“ benutzt werden (Ausnahme: Externe Synchronisierung).

Reference Clock – Select…:In das Textfeld ist in der Regel der erste EtherCAT-Teilnehmer eingetragen, der Distributed Clocks (DC) Funktionalität unterstützt. Die Schaltfläche „Select...“ ist zur Zeit ohne Funktion. Entscheidend für die Auswahl der Referenzuhr sind die Slave-Geräte-Einstellungen. Beachten Sie die Beschreibung für „Use as potential Reference Clock“ in den Slave-Geräte-Einstellungen.

Independent DC Time (Master Mode): Einer der EtherCAT-Teilnehmer, üblicherweise der erste EtherCAT-Teilnehmer, der Distributed Clocks (DC) unterstützt, ist die Reference Clock. Alle anderen DC-Teilnehmer werden diesem EtherCAT-Teilnehmer nachgeregelt.

DC Time controlled by TwinCAT Time (Slave Mode): Die DC-Reference Clock wird der lokalen TwinCAT-Zeit nachgeregelt. Diese Einstellung wird benutzt, wenn auf einer Steuerung mehrere EtherCAT-Systeme jeweils mit Distributed-Clock-Funktion betrieben werden. Dieser Nachführungsmodus hat jedoch eine verringerte Genauigkeit. Bei einer Anforderung von hoher Genauigkeit muss der externe EtherCAT-Verteiler CU2508 benutzt werden.

DC Time controlled by External Sync Device (External Mode): Wenn das EtherCAT-System nach einer übergeordneten Uhr nachgeregelt werden soll, kann unter „External Sync Device – Select…“ eine externe Uhr ausgewählt werden.

DC Time controlled by CCAT Time: Die Referenzuhr vom CCAT-Gerät wird für die Regelung der Distributed-Clock-Zeit verwendet. Beim CCAT handelt es sich um eine Beckhoff-interne Software-Schnittstelle und Hardware-Schnittstelle für verschiedene Bussysteme. (Das CCAT-Interface kann zum Beispiel den E-Bus oder den K-Bus ansprechen.)

Einstellungen

Kontinuierliche Laufzeitmessung: Wird dieses Kontrollkästchen angewählt, werden zyklisch während der Laufzeit die zeitlichen Abstände zwischen den Teilnehmern vermessen. Dieser Prozess findet auch beim EtherCAT-Start statt. Es wird empfohlen, diese Funktion zu deaktivieren.

Sync Fenster Überwachung: Wird dieses Kontrollkästchen aktiviert, wird im Bit 12 (0x1000) der EtherCAT-Eingangsvariablen „DevState“ angezeigt, ob alle DC-Teilnehmer ihre lokalen Uhren innerhalb des im Textfeld „Sync Fenster (µs)“ angegebenen Fensters halten. Zur Messung der Uhrzeit wird ein zyklisches BRD-Kommando auf x092C (Register im EtherCAT-Slave. Systemzeit Differenz. Enthält Fehler der Regelung in Nanosekunden.) verwendet. Die Anzeige „DC not in sync“ ist nur verwertbar, wenn der erste EtherCAT-Teilnehmer auch die Reference Clock beinhaltet.

Sync Fenster (µs): Dieses editierbare Textfeld enthält das Zeitfenster, in dem alle DC-Teilnehmer ihre lokalen Uhren halten müssen, um „in sync“ zu sein. Wird das Kontrollkästchen „Sync Fenster Überwachung“ aktiviert, werden hier in das Textfeld automatisch 2 µs eingetragen.

Zeige DC System Time (64 Bit): Wird dieses Kontrollkästchen aktiviert, wird den Eingängen des EtherCAT-Masters die Eingangsvariable „DcSysTime“ vom Typ UDINTARR2 hinzugefügt. Sie zeigt die aktuelle DC-Zeit als Kopie aus der Masterclock an. Das Auslesen der DC-Zeit verbraucht Ressourcen vom Feldbustransport. Alternativ können PLC-Bausteine verwendet werden, um die aktuelle DC-Systemzeit in Erfahrung zu bringen.

Dc Sync Task: Die Task, die die Distributed-Clocks regeln soll, kann in der Dropdown-Liste ausgewählt werden.

SYNC Shift Time (µs)

Percent of cycle time: Im Beispiel beträgt der erste Summand für die Outputs etwa 30% der Zykluszeit. In die Shift-Zeit werden die Framelängen und die Delays der einzelnen Slaves mit einkalkuliert.

For Outputs: Der erste Summand beinhaltet die automatisch von TwinCAT berechnete Shift-Zeit für alle EtherCAT-Slave-Geräte, die als Ausgangsbaugruppe deklariert sind. Mit dem zweiten Summand kann der Anwender zusätzlich eingreifen und die PDI-Pulse um positive oder negative Zeitwerte verschieben.

For Inputs: Der erste Summand beinhaltet die automatisch von TwinCAT berechnete Shift-Zeit für alle EtherCAT-Slaves-Geräte, die als Eingangsbaugruppe deklariert sind. Mit dem zweiten Summand kann der Anwender zusätzlich eingreifen und die PDI-Pulse um positive oder negative Zeitwerte verschieben.