无心飞扬 发表于 2026-3-18 10:23:48

Codesys数据结构:时间 标准数据类型

如图所示,一共有四种类型可以表示时间,但是每种类型的表示时间的分辨率不同,我们经常用到的是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;
页: [1]
查看完整版本: Codesys数据结构:时间 标准数据类型