「模擬量處理」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。


分享到:


相關文章: