Distributed Clocks & TwinCAT PLC

Distributed Clocks & TwinCAT PLC 1:

Gültigkeit der nachstehenden Einstellungen

Nachfolgende Ausführungen basieren auf TwinCAT 2.11 build 1539. Neuere Ausgaben können eine abweichende Oberflächengestaltung aufweisen, die Verwendung bleibt aber sinngemäß die gleiche. Teilfunktionen können schon in Vorgängerversionen enthalten sein, es ist jedoch zu beachten, dass ggf. auf dem Ziel- wie auch dem Programmiersystem die gleiche TwinCAT Version (z. B. 2.11) vorliegen muss, um die aktuellsten Funktionen zu unterstützen.

Aus der Sicht der PLC ist TwinCAT 2.11 eine stetige Weiterentwicklung von TwinCAT 2.10. Die PLC-Bibliotheken wurden um weitere Features ergänzt. Für die Verwendung mit Distributed Clocks-Funktionen sind insbesondere folgende Bibliotheken von Interesse:

Diese Bibliotheken sind in jeder TwinCAT-Installation enthalten.

Distributed Clocks & TwinCAT PLC 2:
PLC-Libraries

Arbeiten mit DC-Zeiten in der Steuerung

Die Distributed-Clock-Zeit hat aus der Sicht der Steuerung folgenden Eigenschaften:

Zur Bearbeitung von DC-Zeiten werden folgende 3 Datentypen empfohlen

Distributed Clocks & TwinCAT PLC 3:

64- vs. 32-Bit-Darstellung

Manche EtherCAT-Slaves können die DC-Zeit nur als 32-Bit-Wert darstellen bzw. als Prozessdatum verarbeiten. Um durch Überlauf verursachten Problemen (alle 4.2 Sekunden) entgegenzuwirken wird jedoch dringend empfohlen, in der Steuerung generell nur mit 64-Bit-Zeiten zu rechnen.

    • An die PLC gelieferte 32-Bit-Zeiten sind um den aktuellen High-Teil zu erweitern
    • An die HW ist in diesem Fall nur der Low-Part (untere 32 Bit) zu liefern

    In diesem Beispielprojekt
    Distributed Clocks & TwinCAT PLC 4: (Download) ist ein Funktionsblock enthalten, der zyklisch eine 32-Bit-DC-Zeit um den High-Part zu 64 Bit ergänzt.

    example_32bitdcextension.zip

    Auslesen der DC-Zeit

    Wie beschrieben, gibt es auf einem TwinCAT-PC mehrere Zeitquellen, deren maßgebliche für das EtherCAT-System die Distributed Clock Zeit ist. Üblicherweise ist der erste DC-fähige Slave die EtherCAT Masterclock, die Steuerung mit Ihrer Software-Ausprägung der DC-Clock wird dieser Masterclock nachsynchronisiert. Damit steht in der Steuerung die aktuelle DC-Zeit zur Verfügung.

    In der PLC gibt es 4 Möglichkeiten, zur Laufzeit der Task an die aktuelle DC-Zeit, die "Jetzt"-Zeit zu gelangen.

    Distributed Clocks & TwinCAT PLC 5:

    Kompatibilität

    Die Funktionen F_GetActualDcTime und F_GetCurDcTaskTime können erst ab der TwinCAT Version 2.11 (auf Programmier- und Zielsystem) benutzt werden.

    Beispiel:

    Konfiguriert wird eine PLC-Task im System Manager mit 500 µs Zykluszeit und 100 µs Basistick (Base Time).

    Distributed Clocks & TwinCAT PLC 6:
    Beispielkonfiguration mit 500 µs Zykluszeit
    Distributed Clocks & TwinCAT PLC 7:
    Beispielkonfiguration mit 500 µs Zykluszeit

    Die Bewertung der o.a. Beschaffungswege ermöglicht Abb. Wege zum Auslesen der DC-Zeit:

    Distributed Clocks & TwinCAT PLC 8:
    Wege zum Auslesen der DC-Zeit

    Zur Laufzeit des PLC-Programms werden nun die 3 Funktionen F_Get... an beliebiger Stelle aufgerufen, dann liefern sie ab TwinCAT 2.11 zurück:

    Der Inhalt von DcSysTime kommt aus der feldseitigen Masterclock - dieser Kopiervorgang unterliegt zeitlichen Schwankungen und schreitet daher nicht exakt mit cycle time fort. Dies gilt ebenfalls für andere lokale DcSystem-Zeiten, die als Prozessdatum aus der HW übertragen werden.