北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章528 浏览8061537

PLC怎样计算两次信号触发的时间间隔?

今天这篇文章回答一个小伙伴的问题:行程开关第一次触发开始计时,等到第二次触发时计算两次触发之间的时间间隔。这个用普通的定时器指令做不到,因为延时接通、延时断开的指令都需要设置一个时间值,而问题中两次触发的时间间隔是未知的。解决这类问题要使用日期时间,即第一次触发时记下当前时间,再次触发时记下时间,两个时间相减即可。这个在不同的PLC中有不同的指令,因为他使用的是西门子S7-200 SMART,我这里给出我的解决思路。

本文包括两个主题:

  1. 如何计算两次信号触发的时间间隔?

  2. 如何计算某个信号的持续时间?

cover.jpg

1、如何计算两次信号触发的时间间隔?

在S7-200 SMART中,我们可以使用BGN_ITIME指令,它位于指令列表的【定时器】指令中。

BGN_ITIME可以返回CPU自启动(冷启动或热启动)至今的一个毫秒值,精确到1毫秒(ms),最大值是2的32次方,即49.7天。

我们可以使用上升沿信号记录两次触发的时间,如下图所示:

trigger2Times.png

然后将两个时间相减,做一下处理,就可以计算出两次触发的时间差,如下图所示:

timeDifference.PNG

2、如何记录某个信号持续的时间?

使用BGN_ITIME指令可以记录信号触发的时间,使用CAL_ITIME指令可以计算某个时间至今的时间间隔。这两个配合就可以计算某个信号的持续时间,比如某个阀打开后持续至今的时间。

首先,使用信号的上升沿记录当前时间,如下图所示:

thirdTrigger.PNG

然后使用CAL_ITIME指令计算信号触发至今的时间,如下图所示:

thirdCaculation.png

好了,关于PLC计算两次信号触发的时间间隔就先介绍到这里。我的书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》已经出版,感兴趣的小伙伴可以点击下面的连接查看:

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论