Skip to main content

常数:TIME、LTIME

您可以使用 TIME 常量来操作标准定时器模块。该常量的大小为 32 位,分辨率以毫秒为单位。

此外,时间常数 LTIME 可用作高分辨率计时器的时间基准。这 LTIME 常量的维度为 64 位,分辨率以纳秒为单位。

常数: TIME

句法

<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 milleseconds>ms)? // ( ...)? Optional

不得更改时间单位的顺序。但是,不需要指定所有单位。允许以大写形式指定单位。

时间单位

  • D | d: 天

  • H | h: 小时

  • M | m: 分钟

  • s | s: 秒

  • MS | ms: 毫秒

185. 例子

更正 ST 分配的时间常数

VAR
        timLength : TIME := T#14ms;
        timLength1 : TIME := T#100s12ms; // Overflow in the highest unit is allowed.
        timLength2 : TIME := T#12h34m15s;
        timCompare : TIME;
        xIsOK: BOOL;

        timLongest := T#49D17H2M47S295MS; // 4294967295
END_VAR

IF timLength < T#15MS THEN
        IF timCompare < timLength1 THEN
                xIsOK := TRUE;
        END_IF;
END_IF

使用不当

timIncorrect := t#5m68s;

低位溢出

timIncorrect1 := 15ms;

时间标记 T# 失踪

timIncorrect2 := t#4ms13d;

时间单位顺序不正确



常数:LTIME

句法

<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

您可以使用相同的单位 LTIME 常数 TIME 常数。您还可以指定微秒和纳秒,因为指定的时间是以更高的时间分辨率计算的。 LTIME 文字在内部被视为数据类型 LWORD 因此该值以纳秒为单位解析。

额外的时间单位

  • US | us: 微秒

  • NS | ns: 纳秒

186. 正确使用 ST 分配的示例
PROGRAM PLC_PRG
VAR
        ltimLength := LTIME#1000d15h23m12s34ms2us44ns;
        ltimLength1 := LTIME#3445343m3424732874823ns;
END_VAR


有关更多信息,请参阅: 数据类型:TIME、LTIME常量:日期和时间