labview的深入探索之事件結(jié)構(gòu)中的TIMEOUT進行數(shù)據(jù)采集合適嗎?
最近看到利用事件結(jié)構(gòu)中超時TIMEOUT事件進行數(shù)據(jù)采集的方法,過去我也過這種方法.
優(yōu)點:不再需要單獨的數(shù)據(jù)采集循環(huán),使用SHFIT REGISTER就可以在其他事件中共享數(shù)據(jù).
但是這種用法是存在一定缺陷的,假如TIMEOUT的設(shè)定值是100MS,那么事件結(jié)構(gòu)在100MS內(nèi)如果沒發(fā)生事件,則產(chǎn)生一次超時事件,但是如果100MS內(nèi)有任何其他事件發(fā)生時,將不會響應本次的超時事件,如果在100MS內(nèi)一直有其他事件發(fā)生,那么事件結(jié)構(gòu)將永遠不會產(chǎn)生超時事件.
看一下測試程序
由于下面的循環(huán)每隔10MS觸發(fā)一次事件,導致根本不會產(chǎn)生TIMEOUT事件.
如果去掉下面的循環(huán),則TIMETOUT事件正常產(chǎn)生,誤差是1MS,這也是LV軟件定時的最高精度了
所以,如果想用TIMEOUT進行數(shù)據(jù)采集,一定要注意不能產(chǎn)生其他事件,這也是TIMEOUT不適合數(shù)據(jù)采集的原因.