技術頻道

      工控軟件的抗干擾設計

      軟件抗干擾問題的研究愈來愈引起人們的重視。
      一、工控軟件的結構特點及干擾途徑
      在不同的工業控制系統中,工控軟件雖然完成的功能不同,但就其結構來說,一般具有如下特點:
      * 實時性:工業控制系統中有些事件的發生具有隨機性,要求工控軟件能夠及時地處理隨機事件。
      * 周期性:工控軟件在完成系統的初始化工作后,隨之進入主程序循環。在執行主程序過程中,如有中斷申請,則在執行完相應的中斷服務程序后,繼續主程序循環。
      * 相關性:工控軟件由多個任務模塊組成,各模塊配合工作,相互關聯,相互依存。
      * 人為性:工控軟件允許操作人員干預系統的運行,調整系統的工作參數。
      在理想情況下,工控軟件可以正常執行。但在工業現場環境的干擾下,工控軟件的周期性、相關性及實時性受到破壞,程序無法正常執行,導致工業控制系統的失控,其表現是:
      * 程序計數器PC值發生變化,破壞了程序的正常運行。PC值被干擾后的數據是隨機的,因此引起程序執行混亂,在PC值的錯誤引導下,程序執行一系列毫無意義的指令,最后常常進入一個毫無意義的“死循環”中,使系統失去控制。
      * 輸入/輸出接口狀態受到干擾,破壞了工控軟件的相關性和周期性,造成系統資源被某個任務模塊獨占,使系統發生“死鎖”。
      * 數據采集誤差加大。干擾侵入系統的前向通道,疊加在信號上,導致數據采集誤差加大。特別是當前向通道的傳感器接口是小電壓信號輸入時,此現象更加嚴重。
      * RAM數據區受到干擾發生變化。根據干擾竄入渠道、受干擾數據性質的不同,系統受損壞的狀況不同,有的造成數值誤差,有的使控制失靈,有的改變程序狀態,有的改變某些部件(如定時器/計數器、串行口等)的工作狀態等。筆者在研制電力遠程抄表系統時就曾遇到因現場強電磁干擾而造成RAM數據經常性被破壞的情況。
      * 控制狀態失靈。在工業控制系統中,控制狀態的輸出常常是依據某些條件狀態的輸入和條件狀態的邏輯處理結果而定。在這些環節中,由于干擾的侵入,會造成條件狀態錯誤,致使輸出控制誤差加大,甚至控制失常。
      二、程序運行失常的軟件對策
      系統受到干擾侵害致使PC值改變,造成程序運行失常。對于程序運行失常的軟件對策主要是發現失常狀態后及時引導系統恢復原始狀態。
      1.設置監視跟蹤定時器
      使用定時中斷來監視程序運行狀態。定時器的定時時間稍大于主程序正常運行一個循環的時間,在主程序運行過程中執行一次定時器時間常數刷新操作。這樣,只要程序正常運行,定時器不會出現定時中斷。而當程序運行失常,不能及時刷新定時器時間常數而導致定時中斷,利用定時中斷服務程序將系統復位。在8031應用系統中作為軟件抗干擾的一個事例,具體做法是:
      * 使用8155的定時器所產生的“溢出”信號作為8031的外部中斷源INT1。用555定時器作為8155中定時器的外部時鐘輸入;
      * 8155定時器的定時值稍大于主程序的正常循環時間;
      * 在主程序中,每循環一次,對8155定時器的定時常數進行刷新;
      * 在主控程序開始處,對硬件復位還是定時中斷產生的自動恢復進行分類判斷處理。
      2.設置軟件陷井
      當PC失控,造成程序“亂飛”而不斷進入非程序區,只要在非程序區設置攔截措施,使程序進入陷井,然后強迫使程序進入初始狀態。例如Z80指令系統中數據FFH正好對應為重新起動指令RST 56,該指令使程序自動轉入0038H入口地址。因此,在Z80 CPU構成的應用系統中,只要將所有非程序區全部置成FFH用以攔截失控程序。并在0038H處設置轉移指令,使程序轉至抗干擾處理程序。
      三、系統“死鎖”的軟件對策
      在工業控制系統中,A/D、D/A,顯示等輸入/輸出接口電路是必不可少的。這些接口與CPU之間采用查詢或中斷方式工作,而這些設備或接口對干擾很敏感,干擾信號一旦破壞了某一接口的狀態字后,就會導致CPU誤認為該接口有輸入/輸出請求而停止現行工作,轉去執行相應的輸入/輸出服務程序。但由于該接口本身并沒有輸入/輸出數據,從而使CPU資源被該服務程序長期占用,而不釋放,其它任務程序無法執行,使整個系統出現“死鎖”。對這種干擾造成的“死鎖”問題,在軟件編程中,可采用“時間片”的方法來解決。其具體步驟為:
      * 根據不同的輸入/輸出外設對時間的要求,分配相應的最大正常的輸入/輸出時間。
      * 在每一輸入/輸出的任務模塊中,加入相應的超時判斷程序。這樣當干擾破壞了接口的狀態造成CPU誤操作后,由于該外設準備好信息長期無效,經一定時間后,系統會從該外設的服務程序中自動返回,保證整個軟件的周期性不受影響,從而避免“死鎖”情況的發生。
      四、數據采集誤差的軟件對策
      根據數據受干擾性質及干擾后果的不同,采取的軟件對策各不相同,沒有固定的模式。對于實時數據采集系統,為了消除傳感器通道中的干擾信號,在硬件措施上常采取有源或無源RLC網絡,構成模擬濾波器對信號實現頻率濾波。同樣,運用CPU的運算、控制功能也可以實現頻率濾波,完成模擬濾波器類似的功能,這就是數字濾波。在許多數字信號處理專著中都有專門論述,可以參考。隨著計算機運算速度的提高,數字濾波在實時數據采集系統中的應用將愈來愈廣。
      在一般數據采集系統中,可以采用一些簡單的數值、邏輯運算處理來達到濾波的效果。下面介紹幾種常用的方法。
      1.算術平均值法
      對于一點數據連續采樣多次,計算其算術平均值,以其平均值作為該點采樣結果。
      這種方法可以減少系統的隨機干擾對采集結果的影響。一般3~5次平均即可。
      2.比較取舍法
      當控制系統測量結果的個別數據存在偏差時,為了剔除個別錯誤數據,可采用比較取舍法,即對每個采樣點連續采樣幾次,根據所采數據的變化規律,確定取舍,從而剔除偏差數據。例如,“采三取二”即對每個采樣點連續采樣三次,取兩次相同的數據為采樣結果。
      3.中值法
      根據干擾造成采樣數據偏大或偏小的情況,對一個采樣點連續采集多個信號,并對這些采樣值進行比較,取中值作為該點的采樣結果。
      4.一階遞推數字濾波法
      這種方法是利用軟件完成RC低通濾波器的算法,實現用軟件方法代替硬件RC濾波器。一階遞推數字濾波公式為Yn=QXn+(1-Q)Yn-1
      式中Q -數字濾波器時間常數;
      Xn-第n次采樣時的濾波器輸入;
      Yn-第n次采樣時的濾波器輸出。
      采用軟件濾波器對消除數據采集中的誤差可以獲得滿意的效果。但應注意,選取何種方法應根據信號的變化規律選擇。
      五、RAM數據出錯的軟件對策
      在實時控制過程中,干擾造成比較嚴重的危害之一就是沖毀RAM中的數據,由于RAM中保存的是各種原始數據、標志、變量等,如果被破壞,會造成系統出錯或無法運行,根據數據被沖毀的程度,一般可分為三類:
      * 整個RAM數據被沖毀;
      * RAM中某片數據被沖毀;
      * 個別數據被沖毀。
      在工業控制系統中,RAM的大部分內容是為了進行分析、比較而臨時存放的,不允許丟失的數據只占極少部分。在這種情況下,除了這些不允許丟失的數據外,其余大部分內容允許短時間被破壞,最多只引起系統的一個很短時間的波動,很快能自動恢復正常。因此,在工控軟件中,只要注意對少數不允許丟失的數據保護,一般常用的方法有“校驗法” 和“設標法”。這兩種方法各有千秋,校驗法比較繁鎖,但查錯的可信度高。設標法簡單,但對數據表中個別數據沖毀的情況,查錯則無難為力。在編程中一般應綜合使用,其具體做法為:
      * 將RAM工作區重要區域的始端和尾端各設置一個標志碼“0” 或“1”;
      * 對RAM中固定不變的數據表格設置校驗字。
      在程序的執行過程中,每隔一定的時間通過事先設計的查錯程序來檢查其各標志碼是否正常,如果不正常,則利用數據冗余技術通過抗干擾處理程序來進行修正;冗余數據表的一般設計原則是:
      * 各數據表應相互遠離分散設置,減少冗余數據同時被沖毀的概率。
      * 數據表應盡可能遠離棧區,減少由于操作錯誤造堆棧被成數據沖的可能 。
      上述對RAM區域的恢復處理方法,在不同的應用系統中應根據的具體情況進行取舍。
      六、控制狀態失常的軟件對策
      在條件控制系統中,人們關注的問題是能否確保正常的控制狀態。如果干擾進入系統,會影響各種控制條件、造成控制輸出失誤。為了確保系統安全可以采取下述軟件抗干擾措施:
      1.軟件冗余
      對于條件控制系統,將控制條件的一次采樣、處理控制輸出,改為循環采樣、處理控制輸出。這種方法具有良好的抗偶然因素干擾作用。
      2.設置當前輸出狀態寄存單元
      當干擾侵入輸出通道造成輸出狀態破壞時,系統可以及時查詢當前輸出狀態寄存單元的輸出狀態信息,及時糾正錯誤的輸出狀態。
      3.設置自檢程序
      在計算機系統內的特定部位或某些內存單元設狀態標志,在運行中不斷循環測試,以保證系統中信息存儲、傳輸、運算的高可*性。
      上述介紹的幾種有關工控軟件的抗干擾編程方法是筆者在工作實踐中的體會。在設計工控軟件的過程中只要采取相應的抗干擾措施,就可獲得較好的抗干擾效果。

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 狠狠色婷婷久久一区二区三区| 国产成人精品一区二区三在线观看 | 日韩一区二区三区免费播放| 一区二区三区人妻无码| 韩国理伦片一区二区三区在线播放| 亚洲一区二区视频在线观看| 无码人妻精品一区二区三区不卡| 无码人妻精品一区二区三区66| 亚洲国产一区明星换脸| 国产一区二区三区樱花动漫| 无码午夜人妻一区二区不卡视频| 亚洲国产欧美国产综合一区 | 亚洲熟女综合色一区二区三区| 久久se精品一区精品二区| 久久无码人妻精品一区二区三区| 精品国产一区二区三区久久狼| 欧美日韩精品一区二区在线视频| 99久久综合狠狠综合久久一区| 久久久一区二区三区| 国产在线一区二区三区| 国产免费播放一区二区| 国产伦精品一区二区三区视频金莲 | 成人午夜视频精品一区| 亚洲AV永久无码精品一区二区国产| 国产伦精品一区二区三区免.费| 国产精品伦子一区二区三区| 秋霞日韩一区二区三区在线观看| 国产精品视频一区| 国产亚洲福利一区二区免费看| 日韩一区二区三区在线| 夜色阁亚洲一区二区三区| 痴汉中文字幕视频一区| 日韩精品成人一区二区三区| 久久精品国产一区| 亚洲第一区视频在线观看 | 国产成人精品无码一区二区老年人| 国产伦精品一区三区视频| 亚洲av无码天堂一区二区三区 | 亚洲av色香蕉一区二区三区| 无码av中文一区二区三区桃花岛| 高清在线一区二区|