Distributed Clocks Einstellungen

Grundlagen

Die EL2212 verfügt beim DC-Betrieb über eine Besonderheit: üblicherweise wird die DC-Einheit im ESC vom EtherCAT-Master verwaltet. Bei der EL2212 verwaltet jedoch der lokale Controller die Startzeit und setzt entsprechende Werte im ESC.

Distributed Clocks Einstellungen 1:
EL2212 DC-Schema

Der Controller (B) erhält Zeitstempel, Aktivierung und Sollzustände als normale Prozessdaten vom ESC (A). Er parametriert den ESC auf die nächste Startzeit. Beim angesetzten Zeitpunkt teilt dies der ESC dem Controller über das SYNC-Signal mit, dieser steuert dann entsprechend die Ausgangsstufen an.

Aus diesem Grund können im TwinCAT Systemmanager die entsprechenden DC-Einträge trotz DC-Modus nicht verändert werden, die EL2212 kann dennoch als ReferenceClock verwendet werden.

Distributed Clocks Einstellungen 2:
EL2212 DC-Einstellungen

Ermittlung der aktuellen Distributed-Clocks-Zeit

Wird in einem PLC-Zyklus eine aktuelle Angabe über die Distributed-Clocks-Zeit benötigt, kann diese über eine Eingangsvariable des EtherCAT Masters verlinkt werden.

Distributed Clocks Einstellungen 3:

Funktionen für Datentypen mit 64 Bit Breite

Zur Verarbeitung der 64 Bit Zahlen in Beckhoff TwinCAT stehen in der Library TcUtilities.lib eine Auswahl an Funktionen zur Verfügung. Hier sind längere Ausführungszeiten erforderlich als mit 32 Bit Standard-Datentypen. Ein Datentyp mit 64 Bit Breite ist in TcEthercat.lib als T_DCTIME oder in TcUtilities.lib als T_LARGE_INTEGER definiert.

Der EtherCAT Master kann eine Kopie der aktuellen Distributed-Clock-Master-Clock anzeigen. Dazu ist im Gerät EtherCAT Karteireiter EtherCAT Erweiterte Einstellungen Distributed Clocks die Einstellung "Show DC System Time (64bit)" zu aktivieren, (siehe entsprechende Abbildung).

Distributed Clocks Einstellungen 4:
Aktivierung der Anzeige der Master-Distributed-Clock

Dadurch stellt sich das Prozessabbild des EtherCAT Masters nun dar wie in der folgenden Abbildung:

Distributed Clocks Einstellungen 5:
Erweitertes Prozessabbild des EtherCAT Masters
Distributed Clocks Einstellungen 6:

SYSTIME

Der Wert DcSysTime des EtherCAT Masters ist mit Bedacht zu verwenden und soll nur als grobe Orientierung dienen, in welchem Zeitbereich (Größenordnung: 1-2 Task-Zyklen) sich das Distributed-Clocks-System gerade aufhält.
Der Grund dafür ist, dass die lokale Uhrzeit in der Klemme bereits einige µs vor dem abholenden Frame in entsprechende Puffer gelesen wird. Danach benötigt der EtherCAT-Strang einige Zeit um das Prozessdatum zum Master zu transportieren. Die Online-Anzeige im TwinCAT System Manager ist wegen des Visualisierungscharakters bestenfalls im 3stelligen Millisekundenbereich genau. Aber auch in einer PLC kann das Prozessdatum SysTime unterschiedlich veraltet sein: je nachdem wann im Programmcode die Auswertung erfolgt, ist das Prozessdatum bereits einige µs/ms älter geworden. Sollen Reaktionen im EtherCAT-Strang (z.B. einer Ausgangsklemme EL2212) auf einer so eingelesenen SysTime basieren, sind 2-3 PLC-Zykluszeiten Puffer zu berücksichtigen.

Deutlich zweckmäßiger ist die Verwendung einer EL2212 mit anderen EtherCAT-Slaves, die einen Zeitstempel aufgrund Umgebungseinflüssen wie z.B. die EL1252 erzeugen.

Alternativ können auch zur NC/PLC-Laufzeit Funktionen aufgerufen werden, die sofort die aktuelle DC-Zeit zurückliefern wie z.B. F_GetCurDcTickTime. Siehe dazu die Hinweise zu den TwinCAT Zeitquellen in der EtherCAT-System-Dokumentation (Link).

Prozessdaten

Für den Betrieb der EL2212 ist die Aktivierung der dafür vorgesehenen Prozessdaten nötig.

Beispiel eines Ablaufs mit aktivierten Distributed Clocks

Es ist folgender Ablauf bei der Anwendung der EL2212 mit aktivierten Distributed Clocks einzuhalten:





Distributed Clocks Einstellungen 7:

  1. Berechnung des Ausgabezeitpunktes:
    • Ermittlung der aktuellen Distributed Clocks Zeit im 64 Bit Format, z.B. durch die eingeschaltete DC System Time des EtherCAT-Masters
    • Berechnung und Schreiben des gewünschten Ausgabezeitpunktes Start time mit 64 Bit-Operationen
  2. Setzen der gewünschten Ausgabezustände der digitalen Signale:
    • die Ausgangsdaten Output und Tristate von Kanal 1 und 2
    • zugleich muss Activate = 0 sein
  3. Übertragen dieser Ausgangsdaten durch den EtherCAT-Zyklus an die EL2212
  4. Im darauf folgenden Zyklus: Aktivierung des Ausgabezeitpunktes:
    • Activate = 3 setzen (Übergang von 0 nach 3 aktiviert die Startzeit)
  5. Die EL2212 wartet nun wie o.a. bis der Startzeitpunkt eintritt und gibt dann die Ausgangsdaten an die Leistungsstufe aus
    • bis zum Eintritt des Schaltereignisses müssen Activate und die Ausgangsbits Output/ Tristate dem Zielzustand entsprechend gehalten werden
    • bei Spannungsverlust oder Abschaltung der Klemme geht der Startzeitpunkt verloren und muss von der Steuerung neu gesetzt werden
  6. Optional: Vergleich der Eingangs mit den Ausgangsdaten:
    • Feedback-Byte mit dem gewünschten Ausgangsbild vergleichen, um den Schaltvorgang zu registrieren
    • ggf. kontrollieren, ob die Startzeit schon abgelaufen ist, falls das Schreiben der Startzeit zu zeitkritisch geschehen ist
  7. Deaktivieren der Startzeit:
    • Activate = 0 setzen, zur Vorbereitung der folgenden Aktivierungsphase

Es kann immer nur ein Schaltereignis je EL2212 definiert werden, das sich auf alle 4 Ausgangsvariablen Output und Tristate von Kanal 1 und 2 zugleich auswirkt.

Je EtherCAT-Zyklus kann nur ein Schaltereignis definiert werden.

Es ist zulässig, das Schreiben der Ausgangsdaten Soll-Ausgangszustände, Startzeit und Activate = 0 im gleichen EtherCAT-Zyklus durchzuführen.