工控軟體

工控軟體從狹義來講即所謂工業控制軟體。自從採用可程式控制器以來,工控軟體就成為工業自動化密不可分的一部分,但在實際套用中控制軟體並不是孤立的,而是與其它軟體相集成才能發揮其應有的作用,所以從廣義來講包括數據採集、人機界面、軟體套用、過程控制、資料庫、數據通信等,其涵蓋的內容也隨著技術的發展不斷的豐富,從單純的控制走向與管理融為一體的工廠信息化。

發展

工控軟體的出現是伴隨計算機技術用於工業控制開始的,經歷了用二進制編碼、彙編語言、高級語言編程,進而發展到組態軟體,以至今天的用Auto CAD直接採用標準的過程控制流程圖和電氣原理系統圖的組態軟體。採用Auto CAD的工控軟體是直接在螢幕上設計過程控制流程圖和電氣原理系統圖,然後由計算機(工程師站)自動生成執行程式這樣就不要求控制工程師有很多計算機軟體編程的知識和技巧,甚至可以說不需要以前的嚴格意義上的軟體設計工作,就可以完成工控軟體的開發。這不僅使工控軟體開發的質量和效率大大提高,而且可以使控制工程師無需大量的精力和時間耗費在繁瑣的編程工作中,而是把更多的注意力放在控制策略和工廠自動化的需求分析和研究中。儘管當前許多自動化系統的工控軟體還是採用文本或專用圖形的組態方式,但無疑採用Auto CAD的工控軟體將成為工控軟體的主流。

過去大家總認為PLC適合於邏輯控制、DCS適合於模擬量調節,各有其特點。但技術發展證明PLC和DCS在互相融合、滲透,兩者的差別正日漸縮小。而且PLC、DCS與上位機的功能也在融合,過去只能在上位機做的一些功能如先進的控制策略也能在PLC和DCS上完成,分工是相對的因此,這三者功能的融合也促進工控軟體向上位機功能,甚至工廠信息化發展。

另一方面,當前的工控軟體絕大多數是由各自動化系統設備製造商僅在其生產的自動化系統設備的硬軟體環境下開發的,是與自動化系統設備捆綁和專用的。在一個工廠中有各種不同的生產工藝和設備,要求根據不同的對象選用不同的自動化系統設備,如工控機、PLC、DCS等,即使同類的自動化系統,設備製造廠商不同,其工控軟體也不相同,往往一個部門或一個人要同時了解和掌握幾種本質或功能都墓本相同的工控軟體,這給用戶購買、集成、開發、維護上帶來極大的不便,增加了人力資源的消耗和投資。

這就給控制工程師提出一種思考,能否在廣泛熟悉的Windows作業系統下開發出一種不受硬體制約的、適用於廣泛的自動化系統設備的工控軟體。這樣對用戶來說可以根據不同的對象選擇不同的自動化系統設備,但對軟體的開發者和維護者來說只需要熟悉一種或少數幾種工控軟體,從而就誕生了軟PLC、軟DCS的思想和產品。

90年代以Wonderwue公司的InTouch為代表的人機界面可視化軟體開創了在Windows下運行的工控軟體的先例,到今天已發展成為能提供從工廠底層操作人員開始的自下到上層次結構的工廠信息系統。

歸納起來工控軟體的發展方向有如下特點:

集順控、模擬量調節、計算功能為一體;

全面採用Auto CAD的編程技術;

工控軟體與工廠信息化有機的結合;

工控軟體的通用化。

干擾設計

一、工控軟體的結構特點及干擾途徑

在不同的工業控制系統中,工控軟體雖然完成的功能不同,但就其結構來說,一般具有如下特點:

實時性:工業控制系統中有些事件的發生具有隨機性,要求工控軟體能夠及時地處理隨機事件。

周期性:工控軟體在完成系統的初始化工作後,隨之進入主程式循環。在執行主程式過程中,如有中斷申請,則在執行完相應的中斷服務程式後,繼續主程式循環。

相關性:工控軟體由多個任務模組組成,各模組配合工作,相互關聯,相互依存。

人為性:工控軟體允許操作人員干預系統的運行,調整系統的工作參數。

在理想情況下,工控軟體可以正常執行。但在工業現場環境的干擾下,工控軟體的周期性、相關性及實時性受到破壞,程式無法正常執行,導致工業控制系統的失控,其表現是:

程式計數器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.設定自檢程式

在計算機系統內的特定部位或某些記憶體單元設狀態標誌,在運行中不斷循環測試,以保證系統中信息存儲、傳輸、運算的高可*性。

上述介紹的幾種有關工控軟體的抗干擾編程方法是筆者在工作實踐中的體會。在設計工控軟體的過程中只要採取相應的抗干擾措施,就可獲得較好的抗干擾效果。

相關詞條

相關搜尋

熱門詞條

聯絡我們