TimeSynchronization
Die BACnet TimeSynchronization kann auf der lokalen Zeit basieren. In diesem Fall müssen sich der Zeitmaster und die Zeitempfänger in der gleichen Zeitzone befinden. Wenn sich die Geräte in unterschiedlichen Zeitzonen befinden, kann stattdessen UTC-TimeSynchronization verwendet werden. Dazu muss die Eigenschaft UTC_Offset im Device-Objekt auf den Offset in Minuten zur UTC gesetzt werden. Darüber hinaus muss die Sommerzeitinformation vom Gerät bereitgestellt und zusätzlich zur UTC-Zeit berechnet werden.
Die Implementierung eines BACnet-Servers erfordert normalerweise keine besonderen Maßnahmen. Wird eine TimeSynchronization-Nachricht empfangen, wird die interne Uhr der Steuerung aktualisiert.
Wenn die Steuerung als Zeitmaster fungiert, bietet der Funktionsbaustein FB_BACnet_Adapter zwei Methoden, um Uhren in anderen BACnet-Devices zu synchronisieren.
TimeSync
TimeSyncEx
TimeSynchronization ist ein unbestätigter Service. Eine Antwort der Zeitempfänger an den Zeitmaster wird nicht erwartet. Alle Geräte, die die Zeitsynchronisationsmeldung empfangen, müssen ihre lokale Uhr einstellen.
Beispiel für eine Zeitmasterfunktionalität:
VAR
stDateTimeSync : ST_BA_DateTime;
bSuccess : BOOL;
bSync : BOOL;
END_VAR
------------------------------------------------------------------
If bSync then
bSync := FALSE;
bSuccess := BACnet_Globals.DefaultAdapter.TimeSync(pDateTime := ADR(stDateTimeSync), bSendBroadcast := TRUE);
END_IF