Externe TwinCAT Synchronisierung
Beispiel: Bridge Klemme EL6692
Verwendung der Beispielprogramme Dieses Dokument enthält exemplarische Anwendungen unserer Produkte für bestimmte Einsatzbereiche. Die hier dargestellten Anwendungshinweise beruhen auf den typischen Eigenschaften unserer Produkte und haben ausschließlich Beispielcharakter. Die mit diesem Dokument vermittelten Hinweise beziehen sich ausdrücklich nicht auf spezifische Anwendungsfälle, daher liegt es in der Verantwortung des Kunden zu prüfen und zu entscheiden, ob das Produkt für den Einsatz in einem bestimmten Anwendungsbereich geeignet ist. Wir übernehmen keine Gewährleistung, dass der in diesem Dokument enthaltene Quellcode vollständig und richtig ist. Wir behalten uns jederzeit eine Änderung der Inhalte dieses Dokuments vor und übernehmen keine Haftung für Irrtümer und fehlenden Angaben. |
Im vorliegenden Beispiel werden zwei Beckhoff IPC mit TwinCAT 2.11, b1539 untereinander synchronisiert. Ein PC ist die Master-Clock, der andere (Slave-Clock) synchronisiert seine "Zeit" auf ihn auf. EtherCAT als Feldbus stellt dabei die nötigen Betriebsmittel zur Verfügung, insbesondere den EtherCAT eigenen Synchronisierungsmechanismus der Distributed Clocks.
Der Vorgang erfolgt nach den Erläuterungen im vorangegangenen Kapitel.
Zu Beachten ist:
- Der Master-PC arbeitet autonom auf Basis seiner DC-Zeit
- Der Slave-PC regelt nach dem TwinCAT-Start seine Distributed Clocks Zeit dem Master-IPC nach:
- Beim EtherCAT-Start wird der erstmalige Offset zwischen beiden Zeiten festgestellt.
- Die nachfolgende Regelung hält diesen Offset konstant und gibt ihn bekannt.
- Die Nachregelung wird kontinuierlich vollzogen.
- Für den Fall, dass die Synchronisierung aussetzt (Verbindung unterbrochen, Neustart eines der Systeme) ist das Verhalten wie folgt
- Setzt die Regelung im Slave-PC wieder ein, wird dort ein erneuter Offset berechnet und bekanntgegeben.
- Die Applikation hat diesen Offset deshalb ständig zu beachten.
- Für Aufgaben in Bezug auf die jeweilige Stationshardware (EtherCAT Slaves, Klemmen) muss weiterhin die lokale DC-Zeit verwendet werden.
- Die EtherCAT-Zykluszeit muss in beiden Systemen identisch sein.
- Werden in beiden Systemen unterschiedliche Konfigurationen verwendet, d.h. es kommen eine unterschiedliche Anzahl/Typen/Reihenfolge an Slaves zum Einsatz, werden auch die jeweils automatisch berechneten Shiftzeiten differieren.
Beispiel: in beiden Systemen arbeitet jeweils eine EL2202-0100, die beide gleichzeitig ihren Ausgang schalten sollen. Da unterschiedliche Output-Shiftzeiten berechnet wurden, wird eine konstante Differenz gemessen werden.
Es ist dann im System mit der kleineren Output-Shifttime die des anderen Systems einzutragen.
Hinweis | |
Beeinflussung von Geräten bei Veränderung der Shiftzeiten Seiteneffekte in Bezug auf die Funktion der anderen Slaves bei Veränderung dieser Shiftzeiten sind zu bedenken! |
- Im geregelten System unterliegt der Zeitoffset zwischen den Systemen gewissen Schwankungen.
Beispielprogramm (Download), TwinCAT 2.11
Beachten Sie im Programm die nach Bedarf erfolgte Verwendung von "signed" und "unsigned" 64 Bit-Variablen.
Topologie
Station Master: EK1100, EL2202, EL6692
Station Slave: EK1100, EL2202
Synchronisiert wird in diesem Beispiel über die EL6692, Richtung PrimarySide --> SecondarySide (RJ45 Anschluss). Auch eine Synchronisierung in der anderen Richtung ist möglich.
EL6692 Dokumentation Bitte beachten Sie die Angaben in der Dokumentation zur EL6692 zum Systemverhalten dieser Klemme. |
Demoprogramm
In diesem Demoprogramm wird auf der Slave-Seite die eigene lokale DC-Zeit aus der ReferenceClock im EtherCAT-Strang mit dem Offset verrechnet, der sich aus der Zeitdifferenz zum externen Synchronisierungsgerät ergibt. Diese Verrechnung macht demzufolge nur auf einer Plattform Sinn, die Synchronisierungslave zu einem Master ist.
Der Synchronisierungsweg kann sein
- ein anderes EtherCAT-System, Mittel: Beckhoff EL6692 Bridge Klemme (dieses Beispiel)
- ein IEEE1588-System, Mittel: Beckhoff EL6688 PTP-Klemme
- ein beliebiger Zeitgeber mit Zeitinfo (GPS, Funkuhr), Mittel: TwinCAT Supplement "Externe Synchronisierung"
Das Prinzip:
TwinCAT bekommt zyklisch (z. B. sekündlich) ein Pärchen (64 Bit, Einheit 1 ns) aus Internem (DC) und externem Zeitstempel. Diese beiden Zeitstempel sind ursprünglich zum selben Zeitpunkt gewonnen. Aus der erstmaligen Differenz wird der Offset zwischen beiden Zeitbasen berechnet und im System Manager | Gerät EtherCAT | InfoData
bekanntgegeben. Weiterhin regelt das Slave-TwinCAT aus dem Verlauf der beiden Zeitstempel zueinander die lokale eigene DC-Zeit nach.
Berechnungen:
- aktuelle Regelabweichung = DcToExtOffset - (Externer Zeitstempel - Interner Zeitstempel)
Dieser Wert ("signed", 64 Bit) wird mit einer Applikationsspezifischen Schranke verglichen, bei Einhaltung wird die Gültigkeit der Zeit ausgegeben - lokale synchronisierte Zeit = lokale DC-Zeit + DcToExtOffset
Diese "nuLocalTime" ("unsigned", 64 Bit) kann nun für Datalogging und Ereignisse mit Zeitbezug zur Master-PC-Clock verwendet werden.
Einrichtung TwinCAT 2.11
Im folgenden Ablauf wird das Gesamtsystem wie folgt eingestellt:
- EL6692 primäre Seite (E-Bus): Sync Master (also Referenzuhr)
- EL6692 sekundäre Seite (RJ45-Buchsen): Sync Slave (also synchronisierte Seite)
Die Synchronisierungsrichtung der Zeit kann auch andersherum eingerichtet werden, den Hinweisen ist dann sinngemäß zu folgen.
Sync Master Seite
Zeitstempel PDO Das Aktivieren der Zeitstempel-PDO ist für die TwinCAT-Software der jeweiligen Seite der Hinweis, dass diese synchronisiert werden soll, also der SyncSlave ist. |
Nun kann TwinCAT auf dieser Seite aktiviert und gestartet werden. Alle Teilnehmer müssen in OP sein, WorkingCounter = 0, keine LostFrames. Die Zeitstempel der EL6692, PrimarySide bleiben auf 0, da die SecondarySide noch nicht konfiguriert wurde.
Sync Slave Seite
Die EL6692, SecondarySide wird entsprechend Abb. EL6692 PrimarySide auf DC stellen und PDO 0x1A02 aktivieren zur Darstellung der Zeitstempel auf DC und 0x1A02 umgestellt.
Nach einem Reload der Konfiguration (oder Neustart im ConfigMode, FreeRun) kann durch GetConfiguration auf der SecondarySide die Synchronisierungsrichtung ausgelesen werden, s. Abb. SecondarySide der EL6692.
Nach dem Neustart ist dem EtherCAT Master die DC-Funktion der EL6692 bekannt, deshalb bietet er nun im DC-Dialog diese EL6692 als ExternalSyncDevice an.
Für die Auswertungen ist die Verknüpfung der folgenden Variablen nötig, s. Abb. Slave Seite.
Hinweis | |
Demoprogramm Die nachfolgenden Screenshots und Angaben beziehen sich ausschließlich auf das hier besprochene PLC-Demoprogramm und den darin beispielhaft dargestellten Code, nicht auf Analysefunktionen des System Manager. Beachten Sie dazu auch den Hinweis. |
Auf der Slave-Seite kann mit der enthaltenen Visualisierung der Synchronisierungsstart beobachtet werden.
Sofort nach dem Start steht auf der Slave-Seite nur die lokale DC-Zeit zur Verfügung.
Nach dem Erhalt der ersten Zeitstempel über die EL6692 ist der Offset bekannt, er beträgt hier rd. 3 Minuten Unterschied in der Zeit der verwendeten IPC. Die Einsynchronisierung hat begonnen, in diesem Beispiel ist ein Fenster von ± 10 µs zu erreichen.