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, (Abb. Aktivierung der Anzeige der Master-Distributed-Clock).

Ermittlung der aktuellen Distributed-Clocks-Zeit 1:
Aktivierung der Anzeige der Master-Distibuted-Clock

Dadurch stellt sich das Prozessabbild des EtherCAT Masters nun dar wie in Abb. Erweitertes Prozessabbild des EtherCAT Masters:

Ermittlung der aktuellen Distributed-Clocks-Zeit 2:
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 EL2595 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.