您现在所在的是:

DCS论坛

回帖:2个,阅读:681 [上一页] [1] [下一页]
944
wanshan2
文章数:13
年度积分:50
历史总积分:944
注册时间:2006/10/17
发站内信
发表于:2010/5/24 8:50:12
#0楼
现在需要测量一个通道两次DI之间的时间间隔,然后根据距离算出速度。谢谢。
37234
cvlsam 版主
文章数:12401
年度积分:1586
历史总积分:37234
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2010/5/24 13:30:42
#1楼
DCS我不清楚,但是大致的思路也可以提供您参考:
首先你需要生成一个系统变量,用来产生一个毫秒的累积时间,当然你所使用的系统如果有类似的功能提供,你就不需要自己来做。
如我在富士的SPH系列PLC中的1毫秒定时中断中编写如下程序:
IF System_RunTime = UDINT#4294967295 THEN
System_RunTime := UDINT#0;
END_IF;

System_RunTime := System_RunTime + UDINT#1;

然后,就是一个类似于单按钮起停的方法,读取两次System_RunTime的时间,然后做减法,当然,需要注意的是:当System_RunTime超越了最大值时,它会被清零以防止溢出而导致程序的错误,因此,如果你的两次定时在最大值的左右分别记录到,你需要确保第一次的记录值小于第二次,否则,就发生了溢出,因此最后的时间间隔需要将最大值减去第一次记录值+第一次记录值。

就如同这里如果第一次记录在4000000000,而第二次在2000,那么最终值将应该是:
    4294967295-4000000000+2000
而如果第一次记录比第二次小,那么只需要做减法即可。

至于速度,你知道了时间与距离,套用 速度=距离除以时间,我想也应该会做的。

至少要你的控制器具有足够快的速度你才能获得相对准确的结果。

Good Luck~

944
wanshan2
文章数:13
年度积分:50
历史总积分:944
注册时间:2006/10/17
发站内信
发表于:2010/5/27 9:36:40
#2楼
非常感谢啊。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003