FB_SetTimeZoneInformation

FB_SetTimeZoneInformation 1:

Mit dem Funktionsbaustein können die Zeitzonen-Einstellungen des Betriebssystems geändert bzw. gesetzt werden.

FB_SetTimeZoneInformation 2:

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.

FB_SetTimeZoneInformation 3: 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

ST_TimeZoneInformation

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.

FB_SetTimeZoneInformation 4: 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)