Anforderung 1 + 2: Synchronisierung
In einem EtherCAT-System wird das Distributed-Clocks-Konzept (DC) zur Synchronisierung der lokalen Uhren in den EtherCAT-Komponenten benutzt.
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.
Nachregelung TwinCAT-Clock Damit die PLC/NC-Tasks im Echtzeitkontext der Steuerung gleichzeitig mit den Distributed Clocks laufen, muss die allein echtzeitbestimmende TwinCAT-Uhr der DC-ReferenceClock nachgeführt werden. Wird mehr als 1 EtherCAT-System auf einer Steuerung eingesetzt, kann nur eines dieser Systeme die ReferenceClock stellen, der TwinCAT nachgeführt wird. Die anderen EtherCAT-Systeme wiederum müssen dann der TwinCAT-Uhr folgen. |
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.