如何删选去除偶尔的干扰信号,编程方面实现?
112.95.251.214
发布于2014-04-17 17:52
13
0
标签:
厂采用了一套行车定位系统,类似于限位开关记录几个固定的位置信号。和plc进行的dp协议通讯,在接收端采用的是无线发送,所以偶尔信号丢失或者不稳定,不能采用隔离栅等进行干扰去除。
在用这信号做位置判断时会遇到偶尔信号丢失,所以做的时间延迟判断位置经常重新计时,很不准确。
如何用编程实现对于偶尔的信号波动进行删除,比如某一个信号一直是1为稳定的,偶尔变成0,(只坚持数个扫描周期的)是干扰信号,想把这些偶尔的0去除不用,长时间的0才认为是有效信号用于判断。
编程程序怎么写?提供思路也行。试过了在ob32里面减小采集周期还是不明显。如果没表达清楚,再补充回答。
佳答案
对于开关量信号,可以采用接通延时或关断延时实现去除干扰信号。比如某一个信号由0变为1时,触发接通延时定时器,定时器时间可设定为2秒,2秒内信号始终为1,才认定信号为1;2秒内发生干扰信号,接通延时定时器会重新计时。信号由1变为0同理,使用关断延时定时器。
对于模拟量信号,可以采用软件滤波的方式,算法就非常多了:加权平均、滑动滤波等等。