如图所示,一共有四种类型可以表示时间,但是每种类型的表示时间的分辨率不同,我们经常用到的是TIME类型,精确到毫秒
类型介绍
(1)TIME:
长度为32位的时间数据类型,分别率为毫秒,其数据类型的常量以"T#"开头,其变量建议使用前缀"t"标识,比如下面代码中的tStartTime。
其中 "D"表示天,"H"表示小时,"M"表示分钟,"S"表示秒,"MS"表示毫秒
tStartTime : TIME :=T#1D7H2M47S200MS;
(2)TIME_OF_DAY :
数据长度为32位的数据类型,分表率是毫秒,用来表示一天的时钟时间,其数据类型的常量以"TOD#"开头,其变量建议使用前缀"tod"标识,比如下面代码中的todTime。其数值代表:20点10分35秒101毫秒
todTime : TIME_OF_DAY :=TOD#20:10:35.101;(*20点10分35秒101毫秒*)
(3)DATE :
数据长度为32位的数据类型,分表率是天,用来表示日期,其数据类型的常量以"D#"或者"DATE"开头,其变量建议使用前缀"date"标识,比如下面代码中的dateTime。其数值代表:2022年2月22号
dateTime : DATE :=D#2022-02-22;(*2022年2月22号*)
(4) DATE_AND_TIME :
数据长度为32位的数据类型,分表率是秒,用来表示日期时间,其数据类型的常量以"DT#"开头,其变量建议使用前缀"dt"标识,比如下面代码中的dateTime。其数值代表:2022年2月22号20点8分10秒
dtTime : DATE_AND_TIME:= DT#2022-02-22-20:08:10;(*2022年2月22号20点8分10秒*)
相关功能块说明
(1)TOF(IN,PT,Q,ET): 延时断开功能块;
- 当输入IN从TRUE变为FALSE,ET开始从0计时,Q为TRUE;
- 当记录时间ET >= 设置时间PT时,Q为FALSE;
- 在中间过程中,如果IN从FALSE置为TRUE,ET清空为0,Q为TRUE;
(2) TON(IN,PT,Q,ET): 延时导通功能块;
- 当输入IN从FALSE变为TRUE,ET开始从0计时,Q为FALSE;
- 当记录时间ET >= 设置时间PT时,Q为TRUE一直到IN为FALSE;
- 在中间过程中,如果IN从TRUE置为FALSE,ET清空为0,Q为FALSE;
(3)TP(IN,PT,Q,ET) : 脉冲定时器
- 如果IN为FALSE,Q为FALSE, ET为0;
- 只要IN变为TRUE,定时器开始启动,ET开始计时直到到达PT,Q为TRUE;
- 在定时器运行中,IN即使变为FALSE,ET 也会不断计时直到到达PT,在此过程中Q也保持为TRUE;
(4) RTC(EN,PDT,Q,CDT):
- 当输入ET变为TRUE时,CDT会以设置时间PDT为起点开始计时,Q输出为TRUE;
- 当输入ET变为FALSE时,CDT初始化为默认值,Q输出为FALSE;