分享

【编程技巧】如何巧妙地将定时器剩余时间转为实数?

 工控库吧 2021-12-08

【干货下载】工控库吧精心整理了一些自动化主流品牌资料,并且持续更新,每个品牌均分为:培训视频、培训教材、技术文档和应用实例;朋友们可根据需要自助下载。

【今日更新】增加实用手册下载

【更新路径】实用手册

【注意事项】已经下载过的就只须下载更新路径下的文件即可

最实用的工控技术资料免费分享

Step7中定时器的输出参数BIBCD是其剩余时间的两种数据格式,BI以整数Int格式显示,BCDBCD格式显示,如何分别将BIBCD转为秒为单位的浮点数,下面提供了思路和例程。

1)定时器(Timer)的参数说明
定时器在编程中大量使用,有时会用到其剩余时间,例如用剩余时间进行其他运算和编程,或者在其它厂家的触摸屏上显示。这时,需将定时器的剩余时间转为浮点数,以秒为单位。下面是调用定时器的程序截图,预设定时时间为1分钟为例。
首先,分析定时器的各参数含义,按鼠标左键点击定时器框图后按F1键会看到step7帮助信息,如下图。                            

由此可见输出参数BIBCD是定时器剩余时间的两种数据格式。BI以整数Int格式显示,BCDBCD格式显示,此处BCD格式即是S5Time格式,其数据结构和时基如下:

明显看出,参数BI转为秒为单位的浮点数,必须利用参数BCD的时基;参数BCD转为秒为单位的浮点数需调用库函数FC33

注意:S5Time格式数据右移12位即可获取时基标志位,这样就可以用时基标志位进行逻辑处理。

2)通过剩余时间参数BI转为秒为单位的浮点数(Real)
思路:参数BI ->整数INT ->双整数DI ->浮点数Real ->取参数BCD的时基 ->根据不同时基,转为秒为单位的浮点数Real。编程如下:

3)通过剩余时间参数BCD转为秒为单位的浮点数(Real)
思路:参数BCD ->时间S5Time ->库函数FC33(S5TI_TIM) ->时间Time ->双整数DI ->浮点数Real ->除以1000.0,转为秒为单位的浮点数Real。编程如下:

4)通过SFB3SFB4SFB5直接将剩余时间Time转为秒为单位的浮点数(Real)
思路:库函数SFB3SFB4SFB5剩余时间Time ->双整数DI ->浮点数Real ->除以1000.0,转为秒为单位的浮点数Real。编程如下:

5)结果显示
本例程中,定时器的预设定时时间为1分钟,启动定时器,由如下截图可见,截图时定时器剩余时间为30s500ms,参数BIBCD转为秒为单位的浮点数,均为30.5秒。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多