Anwendung mit TwinCAT im Detail

Prozessdaten

Die EL2252 stellt sich nach dem Einlesen/manuellen Einfügen im System Manager wie folgt dar (Abb. Default-Darstellung der EL2252):

Anwendung mit TwinCAT im Detail 1:
Default-Darstellung der EL2252

Beschreibung der Prozessdaten

Anwendung mit TwinCAT im Detail 2:

Datentyp mit 64 Bit Breite

Ein Datentyp mit 64 Bit Breite ist in TcEthercat.lib als T_DCTIME oder in TcUtilities.lib als T_LARGE_INTEGER definiert.

Die Prozessdaten der EL2252 können um eine Eingangsvariable erweitert werden, die lokal in dieser EL2252 laufende Distributed-Clocks-Zeit. Dazu ist im Reiter "Prozessdaten" der EL2252 im Feld "Sync Manager" der unterste Eintrag "Inputs" (SM3) zu markieren. Nun kann im Feld darunter "PDO Zuordnung" der Eintrag 0x1A00 aktiviert werden (Abb. Aktivierung der Eingangsvariable SysTime). Nach einem Neuladen der Konfiguration (Taste F4) oder Start im Konfig-Modus wird bei den Prozessdaten nun zyklisch die in der EL2252 laufende Distributed-Clocks-Zeit als SysTime angezeigt.

Anwendung mit TwinCAT im Detail 3:
Aktivierung der Eingangsvariable SysTime
Anwendung mit TwinCAT im Detail 4:

EL2252-0000-0018

Wenn Sie Ihre TwinCAT-Konfiguration mit der EL2252-0000-0018 offline konfigurieren oder eine entsprechende EL2252 scannen, steht Ihnen hier auch das PDO Feedback als Byte zur Verfügung. Damit kann das Eintreten des Schaltauftrages kontrolliert werden (siehe Beispielprogramme).

Die Variable SysTime kann nun zyklisch als 64 Bit Prozessdatum mit der übergeordneten Steuerung verknüpft werden (Abb. Prozessabbild der EL2252 im Vollausbau).

Anwendung mit TwinCAT im Detail 5:
Prozessabbild der EL2252 im Vollausbau

Ermittlung einer 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 oder direkt von der EL2252 bezogen werden. Prinzipiell sind dieses Methoden absolut gleichwertig, da über den Distributed-Clocks-Abgleich innerhalb des EtherCAT-Netzwerks alle lokalen Uhren in allen Slaves im Rahmen der angegebenen Genauigkeit dieselbe Distributed-Clocks-Zeit vorhalten.

Anwendung mit TwinCAT im Detail 6:

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.

Übernahme aus der EL2252: das Prozessdatum SysTime muss wie o.a. in der EL2252 aktiviert werden und kann dann mit der PLC verknüpft werden. Ebenso kann der Wert natürlich aus einem anderen EtherCAT Slave entnommen werden, der seine lokale Distributed-Clocks-Zeit als Prozessdatum zur Verfügung stellt, wie z. B. eine EL1252.

Übernahme aus dem EtherCAT Master: 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 (64 Bit)" zu aktivieren, (Abb. Aktivierung der Anzeige der Master-Distributed-Clock).

Anwendung mit TwinCAT im Detail 7:
Aktivierung der Anzeige der Master-Distributed-Clock

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

Anwendung mit TwinCAT im Detail 8:
Erweitertes Prozessabbild des EtherCAT Masters
Anwendung mit TwinCAT im Detail 9:

SYSTIME

Der Wert SysTime einer Klemme oder auch 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 (s. Abb. Erweitertes Prozessabbild des EtherCAT Masters) 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 EL2252) auf einer so eingelesenen SysTime basieren, sind 2-3 PLC-Zykluszeiten Puffer zu berücksichtigen. Deutlich zweckmäßiger ist die Verwendung einer EL2252 mit anderen EtherCAT-Slaves, die einen Zeitstempel aufgrund Umgebungseinflüssen wie z. B. die EL1252 erzeugen.

Berechnung des gewünschten Ausgabezeitpunktes

Anwendung mit TwinCAT im Detail 10:

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 Schaltzeitpunkt der EL2252 muss mind. 2 Task-Zyklen in der Zukunft liegen, da sonst die Prozessdatenreihenfolge nicht eingehalten werden kann.

Reihenfolge der Prozessdatenübermittlung

Die Prozessdaten zur EL2252 müssen in zwei Zyklen übermittelt werden:

Zyklus n: StartTime nach Berechnung, Activate = 0 und Ausgangsbits Output/Tristate nach Zielzustand

Zyklus n+1: Activate = 3

Zyklus n+2 und folgende: Activate = 3 und Ausgangsbits halten bis der Zielzustand eingetreten ist. Dann kann ein neuer Schaltzeitpunkt mit seinem Zielzustand übermittelt werden.

Beispielprogramm

In einem Beispielprogramm werden EL2252 und EL1252 zur Ausgabe von Pulsen genutzt. Dabei ist je eine Version mit und ohne Feedback-Nutzung enthalten.