王昭,周波,王為民
(1.西安絲路駝鈴智能科技有限公司,陜西 西安 710077;2.武警工程大學,陜西 西安 710086)
隨著中國工業信息化、智能化、數字化和技改升級工作持續推進,工業企業處于由高速增長轉向高質量發展階段,許多國內大中型企業新上項目和技改升級項目紛紛采用工業互聯網技術、工業物聯網技術、工業智能化技術、工業數字化技術和云計算技術,建設了許多新型工業測控系統項目。工業測控系統中現場測量數據參與過程控制,現場測量來的數據都夾雜有隨機噪聲和突發干擾,不同的工業現場噪聲和干擾類型各異,設計工業測控系統項目必須解決好過程控制數據濾波問題,才能實現設計的測控功能,運用正確的控制策略,保證設計要求的控制精度。設計工業測控系統項目時,工程技術人員如何選擇及實現數據濾波算法,如何編程設計及優化數據濾波算法均是需要重點研究的問題。采用WinCC 客戶端/服務器結構[1],WinCC服務器與S7-200 SMART PLC通過網絡互聯,數據通信采用TCP/IPv4協議,數據傳輸速率為100 Mibit/s[2]。本文研究了過程控制數據濾波相關技術問題,介紹了數據濾波常用算法及濾波特點,給出了WinCC平臺數據濾波解決方案,討論了WinCC平臺數據濾波算法優化問題。本文所述數據濾波解決方案和算法優化來自多個工程項目實踐經驗,具有實用價值,推薦給工業測控同仁借鑒。
由工業測控系統獲得的數據夾雜有隨機噪聲、突發干擾和周期干擾,數據濾波的根本任務是,根據隨機噪聲和干擾的某些統計特性,采用數據濾波算法最大限度地恢復信號、濾除噪聲和抑制干擾。
本文僅討論因果穩定的時域離散數據濾波器,用線性常系數差分方程來描述常用數據濾波器。依據文獻[3],時域離散線性時不變系統具有因果性的充分必要條件是單位脈沖響應是因果序列,即h(n)=0,n<0;時域離散線性時不變系統具有穩定性的充分必要條件是單位脈沖響應絕對可和,即 ∑|h(n)| <∞, 0≤n<∞。
依據文獻[4],數據濾波算法系數選用原則如下: 一是數據濾波算法系數均應大于0且小于1;二是數據濾波算法系數之和應等于1。若數據濾波算法系數選用滿足該原則,則數據濾波器穩態輸出幅值等于輸入信號幅值。
低通濾波器LPF算法如式(1)所示,為一階IIR濾波系統,信號流程圖有一條反饋支路。WinCC運行全局濾波腳本時按零狀態遞推,按照數據濾波算法系數選用原則,濾波系數α取值范圍為0~1。可以證明,低通濾波器具有因果性和穩定性。
y(n)=(1-α)y(n-1)+αx(n)
(1)
低通濾波器特點歸納如下: 算法簡單,實現容易;任何快變脈沖干擾都將被濾掉,僅保留緩變信號;α取值小時,濾波器輸出對現時刻采樣值不靈敏,而對噪聲和干擾抑制力增強;α取值大時,濾波器輸出對現時刻采樣值靈敏,而對噪聲和干擾抑制力減弱。令a1=1-α,b0=α由式(1)可以得到:
y(n)=a1y(n-1)+b0x(n)
(2)
式(2)是一階差分濾波方程,{b0,a1}取值范圍為0~1,且濾波系數之和為1,即a1+b0=1。
加權遞推平均濾波器WRAF算法如式(3)所示,又稱加權滑動平均濾波器,為FIR濾波系統,信號流圖沒有反饋支路。WinCC運行全局濾波腳本時按零狀態遞推,按照數據濾波算法系數選用原則,各濾波系數{b0,b1,b2,b3,b4}取值范圍為0~1,且濾波系數之和為1,即b0+b1+b2+b3+b4=1。可以證明,加權遞推平均濾波器具有因果性和穩定性。
y(n)=b0x(n)+b1x(n-1)+b2x(n-2)+
b3x(n-3)+b4x(n-4)
(3)
加權遞推平均濾波器特點歸納如下: 濾波系數多,濾波效果優化靈活,濾波器適應性強;通常對越接近現時刻的采樣值,權值取得越大,以突出后采樣值對濾波器輸出的貢獻;若給予后采樣值的權值越大,則對后采樣值越靈敏,而對采樣值平滑度降低;對周期性干擾有良好的抑制作用,適用于有高頻振蕩干擾的工業測控現場;對突發脈沖干擾抑制作用差,不適用于脈沖干擾嚴重的工業測控場合。
二階差分濾波器SODF算法如式(4)所示,為二階IIR濾波系統,信號流程圖有兩條反饋支路。WinCC運行全局濾波腳本時按零狀態遞推,按照數據濾波算法系數選用原則,各濾波系數{a1,a2,b0}取值范圍為0~1,且濾波系數之和為1,即a1+a2+b0=1。可以證明,二階差分濾波器具有因果性和穩定性。
y(n)=a1y(n-1)+a2y(n-2)+b0x(n)
(4)
二階差分濾波器特點歸納如下: 算法簡單,易于實現;濾波系數多,濾波效果優化靈活,濾波效果好;a1,a2取值大,且b0取值小時,濾波器輸出對現時刻采樣值不靈敏,而對噪聲和干擾抑制力增強;a1,a2取值小,且b0取值大時,濾波器輸出對現時刻采樣值靈敏,而對噪聲和干擾抑制力減弱。
在WinCC開發平臺,采用C語言全局腳本編程設計數據濾波算法,在WinCC服務器上運行全局濾波腳本,實現過程值數據濾波[5]。該算法步驟如下:
1)啟動運行WinCC Explorer瀏覽器,進入項目管理器。
2)在左側瀏覽條,點擊展開全局腳本項,顯示C-Editor和VBS-Editor。
3)雙擊C-Editor,進入全局腳本C編輯器。
4)在頂部工具欄,點擊創建新動作按鈕,右側顯示編輯窗口。
5)在編輯窗口,編程設計數據濾波腳本。
6)腳本編寫設計完成,點擊頂部工具欄編譯按鈕,查看底部輸出窗口編譯結果,編譯有錯時對腳本錯誤進行修改,并重新編譯,直到編譯通過為止。
7)點擊頂部工具欄信息/觸發按鈕,彈出屬性窗口,點擊頂部信息選項,填寫腳本創建信息,按需設計腳本密碼。
8)在屬性窗口,點擊頂部觸發器選項,順次選擇定時器和周期選項。
9)點擊屬性窗口右側添加按鈕,彈出添加觸發器窗口,順次進行選擇事件、填寫觸發器名稱和設定周期,該方案中事件選擇標準周期且設定為1 s,該周期即為數據濾波腳本重復執行周期。
10)點擊頂部工具欄的保存按鈕,生成擴展名為PAS的腳本文件[6]。
低通濾波算法采用C語言全局腳本代碼段實現,該代碼段用到的變量及系數的含義分別解釋如下: MM_LPF是低通濾波標簽,定義為WinCC內部布爾變量; {Ca1,Cb0}表示低通濾波系數,為局部浮點變量; {Ca.1,Cb.0}表示低通濾波系數,定義為WinCC內部浮點變量;Xn[1]是低通濾波器n時刻的輸入,為局部浮點變量;Yn[1]是低通濾波器n時刻的輸出,為靜態局部浮點變量;Yn[0]是低通濾波器(n-1)時刻的輸出,為靜態局部浮點變量;UR10是過程值濾波器輸入,定義為WinCC外部浮點變量;UR14是過程值濾波器輸出,定義為WinCC外部浮點變量。
WinCC組態啟動低通濾波器后,置MM_LPF為真,低通濾波器以零狀態開始遞推,濾波遞推過程如下: 先是采集n時刻濾波輸入Xn[1];再輸入濾波系數{Ca1,Cb0};接著依據低通濾波算法公式求解n時刻濾波器輸出Yn[1];然后將濾波器輸出值Yn[1]傳送給WinCC組態以及自動化系統;最后將n時刻濾波器輸出Yn[1]送給(n-1)時刻濾波器輸出Yn[0],為下次遞推做好準備[7]。WinCC組態每執行一次全局腳本,就求得一個低通濾波器輸出,連續濾波遞推,實現過程值數據低通濾波,該方案全局腳本代碼重復執行周期設為1 s[8],低通濾波器算法流程如圖1所示。

圖1 低通濾波器算法流程示意
特定的工業測控現場具有特定的噪聲干擾環境,需要特定類型的數據濾波器,同時對應特定的數據濾波算法。數據濾波算法優化有兩項任務: 選擇出合適的濾波算法;篩選出具體的算法系數。兩項任務相互關聯,要配合優化。數據濾波算法優化涉及到用戶歸檔、在線表格和在線趨勢對象應用,以低通濾波算法為例詳述對象應用。
在數據濾波算法優化過程中,濾波系數用戶歸檔用于設置和調整濾波算法系數,用于記錄和保存濾波算法系數[9]。創建數據濾波系數歸檔對象包括: 新建濾波系數用戶歸檔,添加濾波系數歸檔對象和設置用戶歸檔對象屬性,應依次設計完成。
在數據濾波算法優化過程中, WinCC在線表格能夠實時顯示濾波器輸入值、輸出值和算法系數并導出數據,能夠在線修改表格屬性,用于觀察和評估濾波算法效果[10]。創建數據濾波在線表格對象包括: 添加WinCC在線表格對象,設置WinCC在線表格對象屬性,應依次設計完成。
在數據濾波算法優化過程中,數據濾波在線趨勢能夠實時顯示濾波器輸入值和輸出值波形并能夠導出數據,能夠在線修改趨勢屬性、移動軸范圍、移動趨勢范圍,用于實時觀察和評估濾波算法效果。創建數據濾波在線趨勢對象包括: 添加WinCC在線趨勢對象,設置WinCC在線趨勢對象屬性,應依次設計完成。
數據濾波算法優化包括以下步驟[11]:
1)考慮工業現場噪聲和干擾環境,參照以往工程項目經驗,預選多個濾波算法,并排序預選濾波算法。
2)按預選濾波算法排序,選定濾波算法,編程設計濾波算法全局腳本,并測試濾波算法功能。
3)通過濾波系數用戶歸檔,給定一組算法系數,現場運行全局濾波腳本,通過在線表格觀察濾波器輸出數據,通過在線趨勢觀察濾波器輸出波形,檢驗濾波算法效果,研判濾波算法是否適應特定工業測控現場,研判濾波算法性能是否滿足工程項目技術要求。若濾波算法效果評價達標,則選定濾波算法及算法系數,結束數據濾波優化;若濾波算法效果評價未達標,則調整一組濾波算法系數,重新檢驗濾波算法效果。
4)若反復調整濾波系數,濾波算法效果無法達標,則重復步驟(2)和步驟(3),直到濾波算法效果評價達標,結束數據濾波算法優化。
以低通濾波器LPF算法為例,LPF WinCC用戶歸檔見表1所列,LPF WinCC在線表格見表2所列,LPF WinCC在線趨勢如圖2所示。

表1 LPF WinCC用戶歸檔

表2 LPF濾波器WinCC在線表格

圖2 LPF濾波器WinCC在線趨勢示意
工業測控系統測量來的數據通常夾雜著各種類型的隨機噪聲、突發干擾和周期干擾,設計并實施工業測控系統項目既要采取軟件數據濾波措施,也要采取硬件信號濾波措施;既要在前端自動化設備上采取硬件濾波措施,也要在前端傳感器上采取硬件抗干擾措施。數據濾波算法優化時,在滿足工程項目技術要求前提下也可適當調整采樣時間來檢驗濾波算法效果。對于多路測量數據工業測控系統,可在全局腳本增加其他過程值濾波代碼段,即可實現多路并行數據濾波。測試全局濾波腳本功能時,即可采用按鍵觸發階躍或脈沖離散信號,也可采用周期方波或正弦離散信號。