「模拟量处理」S7-1200梯形图采样滤波

在使用S7-1200模拟量输入模块读取现场信号时,除了外围硬件的滤波外,建议在程序中加入滤波程序,这样可以过滤掉信号的不正常的突变,滤波算法有多种,这里举一个比较常用也好用的例子,该例子是用梯形图设计,直观易懂,就是略显繁琐,如果想简练,可以考虑用SCL语句来完成,后续发SCL的例子。

「模拟量处理」S7-1200梯形图采样滤波

2. 初始化。

「模拟量处理」S7-1200梯形图采样滤波

3. 读入新数据,旧数据逐一堆栈。

「模拟量处理」S7-1200梯形图采样滤波

「模拟量处理」S7-1200梯形图采样滤波

「模拟量处理」S7-1200梯形图采样滤波

4. 查找最大最小值。

「模拟量处理」S7-1200梯形图采样滤波

「模拟量处理」S7-1200梯形图采样滤波

5. 求累加和。

「模拟量处理」S7-1200梯形图采样滤波

6. 滤掉最大最小值。

「模拟量处理」S7-1200梯形图采样滤波

7. 求滤波值。

「模拟量处理」S7-1200梯形图采样滤波

8. 在时间中断程序中调用就可以,中断时间根据自己的要求设置。

9. 有几点注意:

数据类型WORD和INT的区别,WORD灭有正负,数据范围0~65535,INT有正负-32768~32767,双极性输入注意正负。

INT数据累加溢出的问题,如果用来做平均的数据比较多,要注意累加和数据溢出的问题,此处累加和使用了DINT的数据类型。

指令MOVE和CONVERT的区别,INT向DINT转化时,使用CONVERT而不要使用MOVE。


分享到:


相關文章: