暂停结构化文本中的计时器

暂停结构化文本中的计时器,第1张

概述我需要能够在不再要求运行计时器暂停计时器并保留其ET值.当接近开关的输入不存在时,定时器计时,但我只希望它在材料上转发的泵运行时计时.泵可能只运行30秒,但是接近开关可能需要120秒的泵送,所以在检测到任何材料之前需要4次泵. 如果有帮助,我正在使用Codesys v2.3 到目前为止,我有: IF Motor AND NOT Proxy.P1 THEN (*If the motor is ru 我需要能够在不再要求运行计时器时暂停计时器并保留其ET值.当接近开关的输入不存在时,定时器计时,但我只希望它在材料上转发的泵运行时计时.泵可能只运行30秒,但是接近开关可能需要120秒的泵送,所以在检测到任何材料之前需要4次泵.

如果有帮助,我正在使用Codesys v2.3

到目前为止,我有:

IF Motor AND NOT Proxy.P1 THEN (*If the motor is running and the proxy doesn't energise,then start that proxy's timer*)    Proxy.P1_Timer.IN:= TRUE;ELSE    Proxy.P1_Timer.IN:=FALSE;END_IF

但是上述情况将导致ET值在Motor关闭时重置,而不仅仅是当Proxy.P1变为TRUE时.只应在Proxy.P1设置为TRUE时重置ET

有什么建议吗?我很惊讶FB上没有保留选项.

解决方法 暂停计时器我会使用以下代码

rEdgeTrig(CLK:=startTimer);IF rEdgeTrig.Q THEN    actualTime := actualTime - eTime;END_IF;(* TON timer *)timer(IN:=startTimer,PT:=actualTime);IF startTimer THEN    eTime := timer.ET;END_IF;if timer.Q then    acutalTime:=initialTime;end_if;

当您的计时器不再被要求运行时,将经过的时间加载到变量.然后从想要重新开始的预设时间中减去.

总结

以上是内存溢出为你收集整理的暂停结构化文本中的计时器全部内容,希望文章能够帮你解决暂停结构化文本中的计时器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存