Uhrzeitsynchronisation
In dieser Beschreibung steht der Begriff Uhrzeit für die Kombination aus Datum und Uhrzeit (Date und Time).
BACnet Uhrzeitsynchronisation
Die Uhrzeitsynchronisation erfolgt bei BACnet über zwei Dienste:
TimeSynchronization synchronisiert die Uhrzeit auf Basis der lokalen Uhrzeit, d. h. Zeitgeber und Zeitempfänger müssen sich in derselben Zeitzone befinden.
Bei der Verwendung von UTCTimeSynchronization (UTC=Universal Time Coordinated) wird die Uhrzeit als GMT (Greenwich Mean Time = Ortszeit London) übertragen. Der Zeitgeber rechnet vor dem Senden die Uhrzeit in GMT um. Anhand der lokalen Einstellungen UTC_Offset und DaylightSavingsStatus (im Device Objekt des Servers) wird dann vom Zeitempfänger wieder auf die lokale Zeit umgerechnet.
UTC_Offset gibt den Wert in Minuten relativ zu GMT an. Ein positiver Wert ist westwärts von GMT, ein negativer Wert ostwärts von GMT zu verwenden.
Westeuropa hat einen Offset von -60 Minuten zu GMT. Dies ist als Defaultwert im TwinCAT BACnet-Server festgelegt und muss ggf. bei Einsatz in anderen Zeitzonen mit Verwendung von UTC angepasst werden.
![]() |
|
TwinCAT als BACnet Zeitempfänger
Empfängt ein TwinCAT Controller eine BACnet Uhrzeitsynchronisation, wird die interne Uhrzeit des Controllers mit dieser Uhrzeit gestellt.
TwinCAT als BACnet Zeitgeber
Wird ein TwinCAT Controller als BACnet Zeitgeber verwendet, muss dieser die exakte Uhrzeit von einer externen Stelle ermitteln, z. B. durch Verwendung des NTP-Dienstes auf einen externen NTP-Server (NTP = Network Time Protocol). Als öffentlich verfügbarer Zeitserver steht z. B. time.windows.com zur Verfügung.
Für die Übernahme der Zeit und ggf. Aussendung im Netzwerk steht die Methode TimeSyncEx im FB_BACnet_Adapter
zur Verfügung.
Als Parameter werden folgende Werte an den Aufruf übergeben:
Name | Typ | Beschreibung |
---|---|---|
pDateTime | ST_BA_DateTime | Pointer auf eine Struktur vom Typ ST_BA_DateTime (siehe Bibliothek Tc3_BA2_Common). In dieser Struktur wird das zu setzende Datum und die Uhrzeit übergeben bzw. im Falle von eSyncMode = 3 zurück geliefert. |
eSyncMode | E_BACnet_TimeSyncMode | Enumeration
|