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.
Abb.162: 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.
Abb.163: 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.
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).
Abb.164: Aktivierung der Anzeige der Master-Distributed-Clock
Dadurch stellt sich das Prozessabbild des EtherCAT Masters nun dar wie in der folgenden Abbildung:
Abb.165: Erweitertes Prozessabbild des EtherCAT Masters
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:
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
Setzen der gewünschten Ausgabezustände der digitalen Signale:
die Ausgangsdaten Output und Tristate von Kanal 1 und 2
zugleich muss Activate = 0 sein
Übertragen dieser Ausgangsdaten durch den EtherCAT-Zyklus an die EL2212
Im darauf folgenden Zyklus: Aktivierung des Ausgabezeitpunktes:
Activate = 3 setzen (Übergang von 0 nach 3 aktiviert die Startzeit)
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
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
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.