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:
- D | d : Tage
- H | h : Stunden
- M | m : Minuten
- S | s : Sekunden
- MS | ms : Millisekunden
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
| Überlauf bei einer niedrigeren Stelle |
| Zeitkennung T# fehlt |
| 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:
- US | us : Mikrosekunden
- NS | ns : Nanosekunden
Beispiele: Korrekte Zeitkonstanten in einer ST-Zuweisung
VAR
tLength0 : TIME := LTIME#1000d15h23m12s34ms2us44ns;
tLength1 : TIME := LTIME#3445343m3424732874823ns;
END_VAR