Herunterladen Inhalt Inhalt Diese Seite drucken

Beckhoff EL6688 Dokumentation Seite 103

Ieee-1588-ptp-external-synchronisation-interface
Vorschau ausblenden Andere Handbücher für EL6688:
Inhaltsverzeichnis

Werbung

Wie berechnet sich eine absolute Zeit, wie beispielsweise die UTC?
Sofern eine externe Zeitquelle (z. B. ein GPS-gestützter PTP-Master) über die EL6688 mit TwinCAT
verbunden ist, lässt sich die UTC Zeit über folgende Formel berechnen (siehe Beispiel Projekt für TC2 bzw.
TC3) (Verweis Beispiel PLC-Projekt [} 97]):
UTCabsolut :=F_GetCurExtTime64 (DcToExtTimeOffset, DcToTcTimeOffset) – UTC_Offset_NSec
oder
UTCabsolut :=F_ ConvTcTimeToExtTime64 (GetCurDcTaskTime64(), DcToTcTimeOffset,
DcToExtTimeOffset) – UTC_Offset_NSec
• UTCabsolut - Task aktuelle UTC Zeit als Abstand in Nanosekunden vom 1.1.2000 00:00.
• F_GetCurExtTime64() - liefert die Startzeit (ExtTime, als T_DCTIME64 alias ULINT) der Task in der sie
aufgerufen wurde.
• F_GetCurDcTaskTime64() - liefert die Startzeit (TcTime, als T_DCTIME64 alias ULINT) der Task in der
sie aufgerufen wurde.
• F_ConvTcTimeToExtTime64()- konvertiert TcTime in ExtTime.
(GetCurExtTime64, GetCurDcTaskTime64 sowie ConvTcTimeToExtTime64 sind Teil der SPS Bibliothek
Tc2_EtherCAT.lib)
• DcToTcTimeOffset - während des TwinCAT-System-Starts wird die TC Zeit durch die Windowsuhr
initialisiert. Sofern die externe Uhr während des Systemstarts auch zur Verfügung steht, werden
Abweichungen zwischen diesen Uhren hiermit ausgeglichen.
• UTC_Offset_NSec - da TwinCAT intern mit der TAI Zeit arbeitet müssen bisher eingeführte
Schaltsekunden abgezogen werden (Stand 2017: 37 Sekunden) (siehe auch EL6688-CoE:
CurrentUtcOffset (0xFA80.0B)).
• DcToExtTimeOffset - um größere Abweichungen, die während des Betriebs (z. B. durch Verlust der
Verbindung zur externen Uhr) zwischen der externen Uhr und der DC Zeit entstehen, zu händeln,
welche sich nicht mehr automatisch ausregeln lassen, nutzt TwinCAT diese Offset-Variable.
Wieso ist mal DcToTcTimeOffset = 0 und mal DcToExtTimeOffset = 0?
Während der Entwicklungsphase einer Steuerung ist die Einstellung "Auto Boot" unter "Boot Settings" des
TwinCAT-Systems möglicherweise noch auf "Config Mode". Sofern dies der Fall ist, kann TwinCAT während
der Startphase (selbst bei physikalischer Verbindung zwischen PTP Master und EL6688) nicht auf die
externe Uhr zugreifen - somit bleibt DcToTcTimeOffset = 0 und der Unterschied wird von TwinCAT in
DcToExtTimeOffset eingetragen.
Erst durch Setzen der Einstellung "Auto Boot" auf "Run Mode (Enable)" kann TwinCAT während der
Startphase auch auf die externe Uhr zugreifen und somit den Offset verarbeiten und in der Variable
"DcToTcTimeOffset" speichern.
Wie wird aus einer T_DCTIME64 Variable etwas Menschenlesbares?
sXXX := DCTIME64_TO_STRING(tXXX)
• tXXX - 503764149978700026 - DCTIME64 alias ULINT: Zeit als Abstand in Nanosekunden vom
1.1.2000 00:00
• sXXX - '2015-12-18-14:29:09.978700026' - STRING(29):
• DCTIME64_TO_STRING() - Verwandelt eine T_DCTIME64 zu einem 29 Zeichen langen String. Teil
von SPS Bibliothek: Tc2_EtherCAT
Fehler in PTP Diagnose: PTP State wechselt nicht von „LISTENING" zu „SLAVE"
• Kontrollieren Sie die Übereinstimmung der PTP Settings zwischen PTP Master und EL6688 (CoE:
0xF882).
• Kontrollieren Sie die Netzwerkeinstellungen zwischen dem PTP Master und der EL6688 (CoE:
0xF8E0). IP-Adresse muss ungleich Null sein.
EL6688
Version: 2.9
Inbetriebnahme
103

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis