EtherCAT-Synchronisation

Vom EtherCAT-Master werden sogenannte EtherCAT-Telegramme (ECT) an alle angeschlossenen EtherCAT-Slave-Controller (ESC) gesendet. Ein ESC ist eine elektronische Baugruppe, die in einem bestimmten Zeitabstand (Takt) immer gleichlaufende Abfolgen von Berechnungen und/oder Datenkopieraktionen. basierend auf dem ECT durchführt. Welche Informationen des ECT wie verarbeitet werden, wird in der Konfigurationsdatei des ESC beschrieben. Im Bereich der Antriebstechnik ist es auf Grund der sehr kurzen Zykluszeiten extrem wichtig, dass die Synchronität der Daten und der Slaves immer gewährleistet ist. Die Synchronität der Slaves wird über sogenannte "Distributed Clocks" realisiert und kann in der EtherCAT-Dokumentation nachgelesen werden. Die folgende Beschreibung behandelt ausschließlich die Synchronisation der Daten.

EtherCAT-Synchronisation 1:

EtherCAT-Master

Der EtherCAT-Master liest die AX5000-Konfig.-Datei und beschreibt während des Startens des Systems einmalig beim ESC die entsprechenden Register mit "DT0= 250 µs" und "DT1= NC-Zykluszeit". Diese Werte werden vom ESC immer neu aus dem Register gelesen und bedienen Sync0 und Sync1. Geht der Inhalt dieses Registers verloren oder werden die Werte im laufenden Betrieb überschrieben, führt dies bei Sync0 und / oder Sync1 zu Problemen.

EtherCAT-Slave-Controller (ESC)

Der ESC des AX5000 sendet zur Synchronisation regelmäßig (DT0undDT1) zwei Signale (Sync0 und Sync1) an die CPU des AX5000.

Sync0

Die Interrupts "i" von "Sync0" werden standardmäßig alle 250 µs gesendet, bleibt ein Interrupt aus (siehe F0), generiert die CPU den Fehlercode F414 und die angeschlossenen Achsen werden mit der "EStop-Rampe" zum Stillstand gebracht.

Weitere Fehlermeldungen:
Die Sync0-Zykluszeit darf nur auf 62,5 µs, 125 µs oder 250 µs konfiguriert werden, sonst generiert die CPU den Fehlercode F409.
Wenn die Synchronisation "Sync0" im ESC nicht aktiviert ist, generiert die CPU den Fehlercode F410.
Wenn die Impulslänge des Interrupts nicht mehr dem Standard entspricht generiert die CPU den Fehlercode F411.
Bei allen Fehlermeldungen werden die angeschlossenen Achsen mit der "EStop-Rampe" zum Stillstand gebracht.

Sync1

Die Interrupts "i" von "Sync1" werden standardmäßig entsprechend der NC-Zykluszeit gesendet. Diese Zykluszeit ist immer ein vielfaches von Sync0 und beträgt standardmäßig 1 ms.  Beim Ausbleiben eines Interrupts (siehe F1) generiert die CPU ebenfalls den Fehlercode F414 und die angeschlossenen Achsen werden mit der "EStop-Rampe" zum Stillstand gebracht.

Weitere Fehlermeldungen:
Die Sync1-Zykluszeit muss ein Vielfaches der Sync0-Zykluszeit sein und muss identisch mit den Parametern "S-0-0001 und S-0-0002" sein, sonst generiert die CPU den Fehlercode F412.
Wenn die Synchronisation "Sync1" im ESC nicht aktiviert ist, generiert die CPU den Fehlercode F413.
Wenn die Impulslänge des Interrupts nicht mehr dem Standard entspricht generiert die CPU den Fehlercode F411.
Bei allen Fehlermeldungen werden die angeschlossenen  Achsen mit der "EStop-Rampe" zum Stillstand gebracht.

Ende des Telegramms (EOT)

Der ESC liest das ECT, sobald es ankommt, der richtige Zeitpunkt ist kurz vor Sync1. Die für den ESC bestimmten Daten werden dann aus dem ECT gelesen und in den Datenbereich vom SyncMan2 geschrieben. Das EOT liegt also eine kurze Zeit (DT2) hinter dem Interrupt von Sync1, anschließend wird der Status von SyncMan2 auf "SyncMan beschrieben" gesetzt. Nur wenn dieser Status zum Zeitpunkt Sync1 auf "SyncMan beschrieben" steht, kopiert sich die CPU die Daten vom SincMan2 in den eigenen Speicherbereich. Wenn der Status nicht auf "SyncMan beschrieben" steht (siehe F2), werden die Daten nicht kopiert, wenn die Daten 2x hintereinander nicht kopiert werden können, generiert die CPU den Fehlercode F415 und die angeschlossenen  Achsen werden mit der "EStop-Rampe" zum Stillstand gebracht.

EtherCAT-Synchronisation 2:

Jitter!

Die Toleranz für das Vorhandensein des Telegramms zum richtigen Zeitpunkt, bedingt durch "Jitter" usw,  ist NULL. Der EtherCAT-Master muss dafür sorgen, dass die Daten rechtzeitig im SyncMan2 eintreffen.

EtherCAT-Synchronisation 3:

Besonderheiten zur Diagnosemeldung F415 "Verteilte Uhren: Prozessdaten-Synchronisation"

Während des Betriebs der Maschine wird das Echtzeitverhalten permanent überwacht. Ein wichtiger Bestandteil dieser Überwachung ist die Synchronisation aller am Datentransport beteiligten Hard- und Softwarekomponenten. Die folgenden Abbildungen stellen ein vereinfachtes Beispiel für diesen Datentransport da. Der Fokus ist auf die Antriebs-Tasks "NC" und "SPS" gerichtet.

Beispiel 1

  1. Der CPU-Timer sendet regelmäßig Interrupts (Default: Basiszeit = 1 ms)
  2. Gemäß den Regeln der Taskverwaltung werden nun die einzelnen Tasks abgearbeitet.
  3. Taskverwaltung:
    Da die Task durch mehr oder weniger Rechenvorgänge auch mehr oder weniger Zeit in Anspruch nimmt, sollte direkt nach dem Einsprungpunkt (a) am Anfang der Task das "I/O-Update" parametriert werden. Damit ist eine Quelle für fehlerhafte Synchronisation ausgeschlossen.
    Eine weitere Fehlerquelle ist eine ungünstige Priorisierung der einzelnen Tasks (siehe unten)
  4. Nach dem "I/O-Update" werden die resultierenden Daten an das TwinCAT-IO-System übergeben und anschließend per EtherCAT-Telegramm an die angeschlossenen Geräte versendet. Das EtherCAT-Telegramm durchläuft jedes physikalisch angeschlossene Gerät und übergibt bzw. übernimmt nur die Daten für dieses Gerät.
  5. Die Reihenfolge der Task-Berechnung hängt u.a. von der Priorisierung der Tasks ab. Wenn eine Task eine höhere Priorität hat, wird sie auch zuerst gerechnet und kann ihre Daten an das TwinCAT-IO-System schicken, welches dann das Telegramm versendet. Probleme tauchen meistens dann auf, wenn einzelne Task unterschiedliche Zykluszeiten haben, siehe unten.
EtherCAT-Synchronisation 4:

Priorisierung

In der folgenden Grafik wird die Auswirkung der Priorisierung auf die Synchronisation der Daten beschrieben.

Annahmen:

Sync1 = 3 ms
NC-Zykluszeit = 3 ms
NC-Priorität = 10
SPS-Zykluszeit = 2 ms
SPS-Priorität = 5
NC-Daten sollen zyklisch zum Antrieb übertragen werden. Die SPS benötigt zwar Rechenzeit, es werden aber keine Daten zum Antrieb übertragen.

Auf Grund der höheren Priorität wird die SPS-Task immer vor der NC-Task gerechnet, diese Tasks beeinflussen sich beim Startzeitpunkt "0 ms" und dann, wiederkehrend alle "6 ms", also 2x Sync1. Der ESC erwartet aber bei jedem Sync1 (3 ms) das Ethercat-Telegramm.mit den NC-Daten. Das ist aber nicht gewährleistet, weil die höher priorisierte SPS-Task immer vor der NC-Task berechnet wird und somit bei einem sychronen Mapping den Telegrammstart verzögert. Aus diesem Grund kommt das Telegramm der NC alle 6 ms etwas später und kann  dadurch bei den AX5000 den Fehler F415 verursachen.

EtherCAT-Synchronisation 5:

Beispiel 2

  1. Der CPU-Timer sendet regelmäßig Interrupts (Default: Basiszeit = 1 ms)
  2. Gemäß den Regeln der Taskverwaltung werden nun die einzelnen Tasks abgearbeitet.
  3. Taskverwaltung:
    Da die Task durch mehr oder weniger Rechenvorgänge auch mehr oder weniger Zeit in Anspruch nimmt, sollte direkt nach dem Einsprungpunkt (a) am Anfang der Task das "I/O-Update" parametriert werden. Damit ist eine Quelle für fehlerhafte Synchronisation ausgeschlossen.
    Eine weitere Fehlerquelle ist eine ungünstige Priorisierung der einzelnen Tasks (siehe unten)
  4. Nach dem "I/O-Update" werden die resultierenden Daten an das TwinCAT-IO-System übergeben und anschließend per EtherCAT-Telegramm an die angeschlossenen Geräten versendet. Das EtherCAT-Telegramm durchläuft jedes physikalisch angeschlossene Gerät und übergibt bzw. übernimmt nur die Daten für dieses Gerät.
  5. Die Reihenfolge der Task-Berechnung hängt u.a. von der Priorisierung der Tasks ab. Wenn eine Task eine höhere Priorität hat, wird sie auch zuerst gerechnet und kann ihre Daten an das TwinCAT-IO-System schicken, welches dann das Telegramm versendet. Probleme tauchen meistens dann auf, wenn einzelne Task unterschiedliche Zykluszeiten haben, siehe unten.
EtherCAT-Synchronisation 6:

Priorisierung

In der folgenden Grafik wird die Auswirkung der Priorisierung auf die Synchronisation der Daten beschrieben.

Annahmen:

Sync1 = 3 ms
NC-Zykluszeit = 2 ms
NC-Priorität = 5
SPS-Zykluszeit = 3 ms
SPS-Priorität = 25
NC-Task bedient nur Geräte der SyncUnit 1, synchrones Mapping
SPS-Task bedient nur Geräte der SyncUnit 2, synchrones Mapping
NC- und SPS-Daten sollen zyklisch übertragen werden.

Auf Grund der höheren Priorität wird die NC-Task immer vor der SPS-Task gerechnet und das Telegramm wird dementsprechend auch zuerst versendet, diese Tasks beeinflussen sich beim Startzeitpunkt "0 ms" und dann, wiederkehrend alle "6 ms", also 2x Sync1. Der ESC erwartet aber bei jedem Sync1 (3 ms) ein Ethercat-Telegramm. In der SyncUnit 1, welche von der NC bedient wird, ist das ohne Probleme möglich, da die höher priorisierte NC das Telegramm immer im gleichen Zeitraster versendet. Das Telegramm der SPS kommt allerdings alle 6 ms etwas später und kann dadurch bei den AX5000 der SyncUnit 2 den Fehler F415 verursachen.

EtherCAT-Synchronisation 7: