TIME/LTIME-Konstanten

Sie können TIME-Konstanten benutzen, um die Standard-Timer-Module zu bedienen. Die Konstante hat eine Größe von 32 Bit und somit eine Auflösung in Millisekunden.

Außerdem steht Ihnen die Zeitkonstante LTIME als Zeitbasis für hochauflösende Timer zur Verfügung. Die LTIME-Konstante hat eine Größe von 64 Bit und somit eine Auflösung in Nanosekunden.

TIME-Konstante

Syntax:

<time keyword> # <length of time>  
<time keyword>   : TIME | time | T | t
<length of time> : ( <number of days>d )? ( <number of hours>h )? ( <number of minutes>m )? ( <number of seconds>s )? (<number of milliseconds>ms)?    // ( ...)? Optional

Die Reihenfolge der Zeiteinheiten darf nicht verändert werden. Es ist jedoch nicht erforderlich, alle Einheiten anzugeben.

Zeiteinheiten:

Beispiele: Korrekte Zeitkonstanten in einer ST-Zuweisung

VAR
    tLength0 : TIME := T#14ms;
    tLength1 : TIME := T#100s12ms;      // Overflow in the highest unit is allowed.
    tLength2 : TIME := T#12h34m15s;
    tCompare : TIME;
    bOK      : BOOL;
    tLongest := T#49D17H2M47S295MS;    // 4294967295
END_VAR
IF tLength < T#15MS THEN
    IF tCompare < tLength1 THEN
        bOK := TRUE;
    END_IF;
END_IF

Beispiele: Unkorrekte Verwendung von Zeitkonstanten

tIncorrect1 := t#5m68s;

Überlauf bei einer niedrigeren Stelle

tIncorrect2 := 15ms;

Zeitkennung T# fehlt

tIncorrect3 := t#4ms13d;

Unkorrekte Reihenfolge der Zeiteinheiten

LTIME-Konstante

Syntax:

<long time keyword> # <length of high resolution time>  
<long time keyword>              : LTIME | ltime 
<length of high resolution time> : <length of time> ( <number of microseconds>us )? ( <number of nanoseconds>ns )?    // ( ...)? Optional

Sie können für LTIME-Konstanten die gleichen Zeiteinheiten wie für TIME-Konstanten verwenden. Zusätzlich können Sie Mikrosekunden und Nanosekunden angeben, da die Zeitangabe in höherer Zeitauflösung gerechnet wird. Intern werden LTIME-Literale wie der Datentyp LWORD behandelt und der Wert deswegen in Nanosekunden aufgelöst.

Zusätzliche Zeiteinheiten:

Beispiele: Korrekte Zeitkonstanten in einer ST-Zuweisung

VAR
    tLength0 : TIME := LTIME#1000d15h23m12s34ms2us44ns;
    tLength1 : TIME := LTIME#3445343m3424732874823ns;
END_VAR