FB_SetTimeZoneInformation
Mit dem Funktionsbaustein können die Zeitzonen-Einstellungen des Betriebssystems geändert bzw. gesetzt werden.
Das Betriebsystem ändert teilweise die Uhrzeiteinstellungen nachdem die neuen Zeitzonen-Einstellungen gesetzt wurden. Die Uhrzeit muss möglicherweise neu eingestellt werden. Die Uhrzeit kann mit dem Funktionsbaustein: NT_SetLocalTime eingestellt werden. |
VAR_INPUT
VAR_INPUT
sNetID : T_AmsNetID;
tzInfo : ST_TimeZoneInformation;
bExecute : BOOL;
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
sNetID: Hier kann ein String mit der Netzwerkadresse des TwinCAT-Rechners angegeben werden, dessen Zeitzone-Konfiguration geändert werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.
tzInfo: Struktur mit den neuen Zeitzone-Einstellungen, die gesetzt werden sollen.
bExecute: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.
tTimeout: Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
END_VAR
bBusy: Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.
bError: Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.
nErrId: Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer.
Beispiel in ST:
Auf dem lokalen TwinCAT System soll die Zeitzone: "West Europa Standard Time" eingestellt werden. Als Beispiel wurde in der SPS-Bibliothek bereits eine Konstante: WEST_EUROPE_TZI mit den passenden Parameterwerten deklariert. Um andere Zeitzonen konfigurieren zu können muss der tzInfo-Eingang des Funktionsbausteins mit entsprechenden Werten belegt werden (siehe in der Beschreibung der ST_TimeZoneInformation-Struktur).
VAR_GLOBAL CONSTANT
...
(* West Europa Standard Time Zone settings *)
WEST_EUROPE_TZI : ST_TimeZoneInformation := (bias:=-60,
standardName:='W. Europe Standard Time',
standardDate:=(wYear:=0,wMonth:=10,wDayOfWeek:=0,wDay:=5,wHour:=3),
standardBias:=0,
daylightName:='W. Europe Daylight Time',
daylightDate:=(wYear:=0,wMonth:=3,wDayOfWeek:=0,wDay:=5,wHour:=2),
daylightBias:=-60);
...
ENd_VAR
Der Deklarationsteil:
PROGRAM MAIN
VAR
fbGet : FB_GetTimeZoneInformation;
fbSet : FB_SetTimeZoneInformation;
tzi_get : ST_TimeZoneInformation;
tzID : E_TimeZoneID;
bGet : BOOL := TRUE;
bSet : BOOL := FALSE;
END_VAR
Bei einer steigenden Flanke an der bSet -Variablen wird die gewünschte Zeitzonen-Einstellung gesetzt. Zur Kontrolle können die aktuellen Einstellungen mit einer steigenden Flanke an der bGet-Variablen ausgelesen werden.
IF bGet THEN
bGet := FALSE;
fbGet(bExecute := TRUE);
ELSE
fbGet(bExecute := FALSE, tzInfo => tzi_get, tzID => tzID );
END_IF
IF bSet THEN
bSet := FALSE;
fbSet( bExecute := TRUE, tzInfo := WEST_EUROPE_TZI );
ELSE
fbSet( bExecute := FALSE );
END_IF
Weitere Zeit-, Zeitzone-Funktionen und -Funktionsbausteine:
FB_TzSpecificLocalTimeToSystemTime, FB_TzSpecificLocalTimeToFileTime, FB_SystemTimeToTzSpecificLocalTime, FB_FileTimeTimeToTzSpecificLocalTime, FB_GetTimeZoneInformation, FB_SetTimeZoneInformation, NT_SetLocalTime, NT_GetTime, NT_SetTimeToRTCTime, F_TranslateFileTimeBias, FB_LocalSystemTime
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.10.0 Build > 1319 | PC or CX (x86) | TcUtilities.Lib |