多次同时调用子程序,子程序中用0.1秒脉冲计时,大家有什么好方法?

我想做一个子程序,里面计时0.3或0.6秒等, 如果直接用定时器,子程序被多次同时调用时肯定是不行的(行吗?如果行请实例),我想用累加法与0.1秒脉冲累计时间,但S7 200 中没有0.1s脉冲(这点西门子很不方便,一定要写中断,不如三菱,欧姆龙,建议西门子改进),我对中断不熟悉,不知道如果用中断方式做一个0.1s脉冲,然后累加计时行不行,请各位做过类似程序的提供一个好的方法。 谢谢。

最佳答案

搜一下200版区,有一个T32中断的例子。
简单的做法是在T32=100ms的中断子程序中,给一个位(例如M0.1)置1,在主程序的最后一个网络里复位。这就得到一个0.1s,只接通一个扫描周期的脉冲,这个脉冲你想在哪里用都可以。

提问者对于答案的评价:
试试。 
用中断10 (即定时中断0)来做效果怎么样?
我现在写了一个100ms定时中断程序 
LD     SM0.1
ENI
MOVB   50, SMB34
ATCH   INTPause0_1, 10


INTPause0_1
LDN    脉冲0_1s
=      脉冲0_1s

然后在好多地方用计数方法用   脉冲0_1s 这个触点来计时,如下:
LD     #bFaMenOut
A      脉冲0_1s
EU
+I     +1, #wOpenOnSJ
发现有时时间就是不准 ,不知道是程序出问题,还是这个定时中断方法有问题。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc296031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐