.

TIME/LTIME 常量

.
.

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

此外,时间常数LTIME可用作高分辨率计时器的时间基础。该LTIME常量的大小为64位,分辨率以纳秒为单位。

.
日期常量

.语法


<时间关键字> # <时间长度>

<时间关键字> : TIME | time | T | t
<时间长度> : ( <天数>d )? ( <小时数>h )? ( <分钟数>m )? ( <秒数>s )? (<毫秒数>ms)? // ( ...)? 可选的
 

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

.时间单位

  • D | d: 天数
  • H | h: 小时数
  • M | m: 分钟数
  • s | s: 秒数
  • MS | ms: 毫秒数
.

.例如

.正确分配ST的时间常量


VAR
    timLength : TIME := T#14ms;
    timLength1 : TIME := T#100s12ms; // 最高单位允许溢出。
    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 常量

.语法


<长时间关键字> # <高分辨率时间长度>

<长时间关键字> : LTIME | ltime
<高分辨率时间长度> : <时间长度> ( <微妙数>us )?  ( <纳秒数>ns )? // ( ...)? 可选的
 

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

.附加时间单位

  • US | us: 微妙
  • NS | ns: 纳秒
.

.ST分配的正确用法示例:


PROGRAM PLC_PRG
VAR
    ltimLength := LTIME#1000d15h23m12s34ms2us44ns;
    ltimLength1 := LTIME#3445343m3424732874823ns;
END_VAR