354/395
Gebäudeautomatisierung
PROGRAM BACnetStartPRG
VAR
(* BACnet Init Case *)
BACnetInit : INT := 0; // init case counter
InitError : UINT := 0; // error counter
(* to set Timezone ... *)
TZI : TimezoneInformation;
(* get IP from PLC *)
FB_GetIP : ML_GetIpAddress; // from ML_BASE.library
(* IP als String *)
IPString : STRING;
(* IP als DWORD *)
dwIPAdr : DWORD;
(* IP als array of Byte *)
IPAdr : ARRAY [0..3] OF BYTE := [192,168,1,1]; // default
// TimeSync --> from
BACnetDefaultImpl.library
timeSync : BACnetDefaultimpl.TimeSync_SvcAppHook;
utcTimeSync : BACnetDefaultimpl.UTCTimeSync_SvcAppHook;
deviceDateTime : BACnetDefaultImpl.DeviceDateTime;
// trigger time sync of BACnet
TimeTON : TON;
TimeWait: TIME := T#1S;
END_VAR
IF UserVarGlobal.BACnetReady = FALSE THEN
// ...
// mandatory steps to initialize BACnet
// ...
CASE BACnetInit OF
0: (* set TimeZoneInformation of your local location in this example Germany *)
// iBias - unit mintues - distance to UTC
TZI.iBias := -60;
// iDaylightBias - unit minutes - distance daylight saving time UTC if exist in your country
TZI.iDaylightBias := -60;
TZI.szDaylightName := 'CEST'; // Timzone shortcut
TZI.szStandardName := 'CET'; // Timzone shortcut
TZI.ulDaylightDate := UserVarGlobal.g_ulDaylightDate; // last Sunday in Mar start daylight
TZI.ulStandardDate := UserVarGlobal.g_ulStandardDate; // last Sunday in Oct end daylight
(*
*)
SysTimeRtcSetTimezone(TZI); // set Timzone in runtime
(* ... *)
BACnetInit := BACnetInit + 1;
1: (* get/set IP-Adress and start BACnet-Server *)
// get IPAdress of control ...
FB_GetIP(Execute := TRUE);
(* run FB *)
IF FB_GetIP.Done THEN
Bosch Rexroth AG R911393282_Ausgabe 05
klarieren. Mit Hilfe der globalen Variablen kann man den Zeitpunkt der
Zeitumstellung jährlich anpassen.
Im Beispiel Programm werden dazu die "TimeSync" Plugins registriert.
7.
Das Starten und Stoppen des BACnet-Servers erfolgt mit dem SPS Pro‐
gramm "BACnetStartPRG", wie im folgenden Beispiel gezeigt.
Folgende Funktionen kommen im Programm zum Einsatz:
●
Zum Starten des BACnet-Servers: StartBACnetStack
●
Zum Stoppen des BACnet-Servers: StopBACnetStack
●
Zur Zuweisung der IP-Adresse: BACnet_IP_datalink.IPadd-
ress := [AAA.BBB.CCC.DDD];
Programm:
//form SysTimeRTC.library
Programm:
IndraWorks 15VRS Feldbusse