sjw766 发表于 2016-6-4 19:23:58

如何实现对信号的高电平持续时间的精确测量

我想做一个子程序模块,可以精确测量信号的高电平持续时间。现在做出来的程序,每次测量的结果都和实际值偏差50ms左右。如何把误差控制在10ms以内?子程序如下:
(*开关量信号高电平持续时间算法:bool_input的下降沿立刻读取定时器TON_1的当前值(bool_input 高电平持续时间最大不超过10秒)*)
TOF_1(IN:=bool_input , PT:=T#5ms , Q=> , ET=> );
TON_1(IN:=TOF_1.Q , PT:=T#60s, Q=> , ET=> );
F_TRIG_1(CLK:=bool_input , Q=> );
IF        F_TRIG_1.Q        THEN
        TIME1 :=TON_1.ET;
END_IF
keep_time := TIME_TO_WORD(TIME1);
这个程序测出来的结果比实际值大50ms左右。这个误差(50ms)是不是程序的扫描周期?有没有办法消除这个误差?或是有没有其他的精确检测方法?敬请高手指点,不胜感激!
页: [1]
查看完整版本: 如何实现对信号的高电平持续时间的精确测量