您可以使用TIME
常量来操作标准定时器模块。常量的大小为 32 位,分辨率为毫秒。
此外,时间常数LTIME
可作为高分辨率计时器的时间基准。LTIME
常量的维度为 64 位,分辨率为纳秒。
时间常数
语法
<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
时间单位的顺序不得更改。但是,并不要求指定所有单位。允许用大写字母指定单位。
时间单位
-
D | d
:天数 -
H | h
:小时数 -
M | m
:分钟 -
s | s
:秒数 -
MS | ms
:毫秒
示例
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
|
在较低位置溢流 |
|
时间标记 |
|
时间单位顺序不正确 |
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
literals 在内部被视为数据类型LWORD
,因此其值以纳秒为单位解析。
额外的时间单位
-
US | us
:微秒 -
NS | ns
:纳秒
正确使用 ST 作业的示例:
PROGRAM PLC_PRG VAR ltimLength := LTIME#1000d15h23m12s34ms2us44ns; ltimLength1 := LTIME#3445343m3424732874823ns; END_VAR