维他命c
级别: 探索解密
精华主题: 0
发帖数量: 43 个
工控威望: 145 点
下载积分: 772 分
在线时间: 41(小时)
注册时间: 2017-08-26
最后登录: 2024-11-01
查看维他命c的 主题 / 回贴
楼主  发表于: 2021-09-04 13:35
计时器的计时时间T#XXXms的数据怎样提取成X天X时X分X秒X毫秒,比如计时器的计时时间T#20D23H55M55S200MS,怎样将20天,23小时,55分,55秒,200MS单独提取出来?
mmtcyq
级别: 正式会员
精华主题: 0
发帖数量: 9 个
工控威望: 99 点
下载积分: 608 分
在线时间: 6(小时)
注册时间: 2016-08-04
最后登录: 2023-03-15
查看mmtcyq的 主题 / 回贴
1楼  发表于: 2021-09-04 21:03
一、如果是200SMART:
1、可以使用BGN_ITIME和CAL_ITIME分别读取开始时刻和结束时刻的时间值,来代替计时器指令,计算出来的时间差是整数值;
2、再使用时钟库指令SET_RTC_I将这个时间差写入RTC,再立即用READ_RTC指令读取RTC,就读出日期/时间格式了。

二、如果已经有了整数型的时间值,执行第二步就行了。

三、如果已经有了日期/时间格式的计时值,直接按照存储顺序读取就可以了,注意:这个值的格式是BYTE的BCD格式。
这样处理的时间精度可能不高,在秒级。
[ 此帖被mmtcyq在2021-09-04 21:10重新编辑 ]