打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
S7-300/400进阶笔记14:编程应用中常见的“时间”汇总及相互转换

一、有关时间的数据类型

1、S5TIME。长度为16位,包括时基和时间常数两部分,其数据格式如图1.1所示。详细说明可参见《S7-300/400进阶笔记8:深入浅出的认识一下S7的定时器》

图1.1 S5TIME数据结构

2、IEC时间(TIME)。长度为32位,时基为固定值1ms,数据类型为双整数,所表示的时间值为整数值乘以时基,其格式为:

T#aaD_bbH_ccM_dds_eeeMS

详见《S7-300/400进阶笔记12:STEP7不止有S5定时器,带你认识IEC定时器》

3、IEC日期(DATE)。长度为16位,数据类型为整数,以1日为单位,日期从1900年1月1日开始,其对应为整数0,日期每增加一天,对应的整数值加1。其格式为:

D#aY-bM-cD

由于其为长度16位的整数,因此,其取值范围为:D#1900-1-1 – D#2163-12-31。

4、日计时(TIME_OF_DAY)。长度为32位,用于记录一天中的24小时,数据类型为双整数,以1ms为时基。其格式为:

TOD#aaH:bbM:ccS:dddMS

取值范围为:TOD#0:0:0.000 – TOD#23:59:59.999。

5、DATE_AND_TIME。复杂数据类型之一,由8个字节组成。详见《S7-300/400进阶笔记13:深入了解DATE_AND_TIME以及系统时钟》


二、各种类型'时间'之间的相互转换

在标准库的'IEC Function Blocks'目录下,收录了一些功能FC,用来实现以上5种'时间'数据类型之间的相互转换,以实现特定应用。

1、FC1(AD_DT_TM)

该功能为一个DT(即DATE_AND_TIME)加上一段时间(TIME),从而产生一个新的DT时间。

图2.1 FC1(AD_DT_TM)

需要注意的是:

1) 输入端'T'的值必须在其取值范围内,即DT#1990-01-01-00:00:00.000到DT#2089-12-31-23:59:59.999之间。

2) 输入'T'加上时间偏移量'D'后的时间值可能会超出有效值范围内,但功能FC1不会对运算结果校验。运算结果溢出后,状态字的二进制结果(BR)会被设置为'0'。

3) DATE_AND_TIME为复杂数据类型,不能采用立即寻址,需在DB块中定义好之后,通过符号地址来访问。

2、FC3(D_TOD_DT)

该功能将数据格式DATE和TIME_OF_DAY组合在一起,形成DATE_AND_TIME类型的数据。

图2.2 FC3(D_TOD_DT)

3、FC6(DT_DATE)

该功能从DATE_AND_TIME变量中提取日期,即DATE格式。

图2.3 FC6(DT_DATE)

4、FC7(DT_DAY)从DATE_AND_TIME变量中提取'周',用法简单,图解略去。

5、FC8(DT_TOD)从DATE_AND_TIME变量中提取'时间',即TIME_OF_DAY,用法简单,图解落去。

6、FC33(S5TI_TIM)将S5TIME格式的时间转换为TIME格式,用法简单,图解略去。

7、FC40(TIM_S5TI)将TIME格式的时间转换为S5TIME格式,用法简单,图解略去。


标准库中,共提供了上述若干个功能,来实现不同'时间'格式之间的相互转换,方便不同的应用场合,汇总如下:

图3 有关“时间转换”的功能汇总

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在西门子(TIA Portal)中如何输入读取和编辑CPU模块的date and time变量?
STEP 7中有关时间处理和转换的功能块
西门子PLC日期格式一网打尽,以后不要再对时间格式感到迷惑了!
python3 日期datetime、时间戳timestamp、时间字符串date
R语言:哪个函数解析时间最快?
Python时间日期格式化之time与datetime模块
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服