如何实现每隔3秒记一次脉冲。3秒和3秒之间无时间间隔,也就是这个3秒到了后下个秒紧接着计数
问题补充:
用定时中断做,产生了中断,我要在中断中做什么呢?请明示。如何“计数+1”是何意思呢。还有如何“自复位”呢
补充:就是每隔3秒就读一次脉冲数,目的是要算出这3秒共产生了多少脉冲。
我写的程序如下:
Network 1
LD SM0.1
CALL SBR1
Network 2
LD SM0.0
MOVD HC0, VD200
Network 3 // 网络标题
// 网络注释
LD SM0.0
A I0.7
TON T96, 0
EU
MOVD HC0, VD104
Network 4
LDW= T96, 3000
MOVD HC0, VD100
用了一个接通延时定时器,延时了3秒。当I0.7接通的时候,将脉冲数放入VD104,然后3秒后再踩一个脉冲数放入vd100中。这个方法不能实现循环接收脉冲啊。要求是,2秒的时候踩一个脉冲,5秒的时候再踩一个脉冲。下一次采就该从5秒到8秒的,8秒的到11秒的。可我的程序不能实现。我的只能是I0.7按下才采集脉冲,不按就不踩了,我想让他按以上的要求循环采集,而不通过人为的因为影响他采集。
请帮忙
最佳答案
用s7-200还是比较麻烦的,主要再于3秒的时间窗口无法用定时中断做,时间太长了。
如200ms,则可以在定时中断的处理程序中读取高速计数器的当前值,然后清零即可。
看来您只能用定时器做,每3秒读取1次,然后清零计数器和定时器。由于扫描周期的缘故,会有10ms左右偏差。
300则无此问题。
用定时中断做,产生了中断,我要在中断中做什么呢?---读计数器当前值啊
如何“计数+1”是何意思呢。-----有脉冲到达,计数器当前值就+1啊
还有如何“自复位”呢-------将高电平送到计数器的reset端或复位定时器啊
您的问题提的简单,脉冲频繁吗?大概频率范围?时间精度高吗? 这些很影响方法的。
提问者对于答案的评价:
好
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354574.html