FB_SetTimeZoneInformation

Mit dem Funktionsbaustein können die Zeitzonen-Einstellungen des Betriebssystems geändert bzw. gesetzt werden.
![]() | Uhrzeiteinstellungen Das Betriebssystem ändert teilweise die Uhrzeiteinstellungen, nachdem die neuen Zeitzonen-Einstellungen gesetzt wurden. Die Uhrzeit kann mit dem Funktionsbaustein NT_SetLocalTime neu eingestellt werden. |
Eingänge
VAR_INPUT
sNetID : T_AmsNetID;
tzInfo : ST_TimeZoneInformation;
bExecute : BOOL;
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
sNetID | T_AmsNetID | 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 | BOOL | Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert. |
tTimeout | TIME | Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf. |
Ausgänge
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrID : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt. |
bError | BOOL | Sollte ein Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde. |
nErrID | UDINT | Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer. |
Beispiel:
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:
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (WES7/Win7/Win10: TC RT x86/x64, WEC6/7: TC RT x86, WEC7: TC CE7 ARMV7), nicht verfügbar für TwinCAT/BSD | Tc2_Utilities (System) |