TwinCAT Zeitquellen

In der Beckhoff TwinCAT Automatisierungssuite können mehrere unabhängige Zeitquellen ausgewertet werden. Siehe dazu auch das Beispielprogramm.

Angaben zur Architektur:

Name

BIOS Motherboard

CPU Zeit

Windows/NT Zeit

TwinCAT/TC Zeit

Distributed Clocks/DC Zeit

Beschreibung

RTC (RealTimeClock), batteriegespeist auf dem Motherboard

CPU Counter aus der Hardware der Steuerung, nicht geregelt

Initialisiert durch RTC

Lokale Systemzeit des Windows-Betriebssystems (NT)

Initialisiert durch RTC

Fortlaufende TwinCAT-Uhr

Initialisiert durch Windows

Die Startzeit des aktuellen Task-Zyklus' wird zurückgegeben.

Initialisiert durch TwinCAT.

Daten

 

64 bit
Auflösung: 100 nsPC Base

ab 1.1.1601 00:00
Auflösung: 1 ms
Umfang: Struktur mit Jahr, Monat, Tag, Stunde usw.

ab 1.1.1601 00:00
Auflösung: 100 ns
Umfang: 64 bit

ab 1.1.2000 00:00
Auflösung: 1 ns
Umfang: 64 bit

Bezug

 

 

Lokal

Lokalzeit unter Berücksichtigung der eingestellten Zeitzone, meist also UTC

Lokalzeit unter Berücksichtigung der eingestellten Zeitzone, meist also UTC

PLC-Format

 

T_ULARGE_INTEGER

TIMESTRUCT

T_FILETIME

T_DcTime

Aufruf

 

GetCpuCounter

NT_GetTime()

GetSystemTime()

F_GetActualDcTime()
(ab TwinCAT 2.11)

F_GetCurDcTickTime()
(= GetSystemTime)

F_GetCurDcTaskTime()
(ab TwinCAT 2.11)

Aktualisierung

 

bei jedem Aufruf, auch mehrmals innerhalb eines PLC-Zyklus

 

bei jedem Basistick (System Manager | BaseTime)

ActualDcTime
bei jedem Aufruf, auch mehrmals innerhalb eines PLC-Zyklus


TickTime
bei jedem Basistick
(System Manager | BaseTime)


TaskTime
bei Zyklusbeginn der Sync-Task

beispielsweise Verwendung

kann durch den PLC-Baustein Nt_SetTimeToRtcTime zur Korrektur der NT-Zeit verwendet werden

relative Zeitmessungen

Logging, Zeitstempelung auf Betriebssystemebene

hochgenaue relative zeitbasierte Aktionen innerhalb eines oder über mehrere Task-Zyklen

- hochgenaue relative zeitbasierte Aktionen innerhalb des EtherCAT-Systems
- endgültiger Bezug zu Globalzeit durch externe Synchronisierung möglich

Manipulationsmöglichkeit

 

 

- durch den PLC-Baustein Nt_SetTimeToRtcTime kann sie auf die aktuelle RTC-Zeit geändert werden, dies löst auch eine Korrektur der RTC-Zeit aus

ACHTUNG
eine Verwendung dieser Funktion in Verbindung mit EtherCAT Distributed Clocks Systemen wird nicht empfohlen

- Synchronisierung auf Netzwerkebene (SNTP, NTP)


 

Synchronisierung zu externer Referenzzeit ab TwinCAT 2.11
 

Tab. 1: Zeitarchitektur, benötigte Bibliotheken: TcEtherCAT.lib, TcUtilities.lib, TcSystem.lib

Einsatzszenario 1: Lokale Steuerung ohne netzwerkseitige Zwangssynchronisierung

Die lokale Windowsuhr ist freilaufend und kann durch Nt_SetTimeToRtcTime an die RTC gekoppelt werden. Beim Einsatz von Distributed Clocks Komponenten wird diese Möglichkeit nicht empfohlen!

Es wird die Verwendung der TC- oder DC-Uhr empfohlen, wenn absolute Zeitbezüge benötigt werden.

Ideal ist die Kopplung der DC-Zeit an eine externe Referenzzeit durch entsprechende EtherCAT-Komponenten.

Einsatzszenario 2: Lokale Steuerung mit netzwerkseitiger Zwangssynchronisierung

Die lokale Windowsuhr wird durch eine Netzwerkuhr/-server/Internet Zeitserver zyklisch mit der Weltzeit synchronisiert.

Eine Kopplung der Windowsuhr durch Nt_SetTimeToRtcTime an die RTC wird nicht empfohlen.

Es wird die Verwendung der TC- oder DC-Uhr empfohlen. Der Bezug zur Absolutzeit kann applikationsseitig durch Offsetberechnung zur NT-Zeit hergestellt werden.

Ideal ist die Kopplung der DC-Zeit an eine externe Referenzzeit durch entsprechende EtherCAT-Komponenten.

Einsatzszenario 3: Lokale Steuerung mit externer Referenzzeit über EtherCAT

Durch Kopplung der DC-Zeit an eine externe Zeitquelle (GPS, Funkuhr, PTP/IEEE1588, EtherCAT) steht eine in Frequenz und Phase synchronisierte stetige Zeit zur Verfügung. NT- und TC-Zeit werden in der Applikation nicht benötigt.

TwinCAT Zeitquellen 1:

Übliche Zeitsynchronisation

Die auf Betriebssystemebene übliche Zeitsynchronisation arbeitet in diskreten Intervallen von mehreren Sekunden bis Tagen. Im Synchronisationsfall führt dies zu einer sprunghaften/unsteten Änderung der unterlagerten Zeit! Davon betroffen sind übliche Netzwerksynchronisationen (SNTP, NTP u.ä.) oder auch Nt_SetTimeToRtcTime. Die Applikation muss diese sprunghaften Änderungen der "Absolut"zeit erwarten!
Alle von Beckhoff in EtherCAT integrierten Verfahren arbeiten mit stetiger, nicht sprungbehafteter (Auf)Synchronisation.