工業現場嵌入式控制器軟件的分析和設計
摘要:本文分析了Linux在嵌入式系統中應用的可能性及優勢,并設計了基于嵌入式Linux的工業現場控制器軟件,并實際應用于計算機集散控制系統中,滿足了一般甚至核電領域中DCS系統對現場控制器的要求。
關鍵詞:嵌入式Linux;DCS;現場控制器
1.引言
現場控制器是DCS系統的核心組成部分,擔負著接收并執行控制算法、采集現場數據并進行大量數據處理等職能,且具有控制周期短,運行穩定、可靠等要求。因此,如何選用高性能的硬件,開發穩定可靠的嵌入式操作系統,并設計現場控制器軟件系統成為DCS系統開發中的關鍵之一。
本文分析并設計了基于嵌入式Linux的工業現場控制器的控制軟件系統。
EmbeddedLinux的優勢
EmbeddedLinux具有如下特點:
第一,Linux系統內核源碼完全開放。因為Linux的內核源碼是完全開發的,所以不同領域和層次的用戶可以免費得到Linux內核源碼,并根據自己的應用需要方便的對內核進行修改。這樣可以有效控制成本,并設計和開發出滿足其需要的嵌入式系統。
第二,強大的網絡功能。Linux的網絡連接能力緊密的和Linux內核結合在一起,為用戶提供了完善而強大的網絡功能。實際上,Linux就是依靠互聯網才迅速發展了起來。Linux支持所有標準Internet協議,可以輕松地與TCP/IP、LANManager、WindowsforWorkgroups、NovellNetware或WindowsNT網絡集成在一起。可以在Linux的網絡協議棧基礎上開發出嵌入式的TCP/IP網絡協議棧,使得嵌入式設備具有強大的網絡功能。
第三,Linux是Unix兼容,完全符合IEEEPOSIX.1標準。許多運行在Unix上的軟件可以不加修的運行在Linux上。因此嵌入式Linux具有很多豐富的免費軟件資源可以利用。第四,Linux具備完整的開發工具鏈,嵌入式系統開發者輕易建立嵌入式系統的開發環境和交叉運行環境,可以跨越嵌入式系統開發中仿真工具的障礙。從編輯階段,編譯階段到調試階段,可以方便的使用GNU提供的EMACS,GCC,GDB,KGDB等工具鏈。第五,Linux具有廣泛的硬件支持。Linux能運行在,無論是RISC還是CISC、32位還是64位等各種處理器上。Linux支持各種主流的硬件設備和最新的硬件技術,可以在沒有MMU的處理器上運行。所以嵌入式Linux有廣泛的應用前景。
工業控制DCS系統的組成
DCS是分散控制系統的簡稱,國內一般習慣稱為集散控制系統。它是一個由過程控制級和過程監控級組成的以通信網絡為紐帶的多級計算機系統,綜合了計算機、通訊、顯示和控制等4C技術,其基本思想是分散控制、集中操作、分級治理、配置靈活、組態方便。
DCS具有以下特點:
高可靠性
由于DCS將系統控制功能分散在各臺計算機上實現,系統結構采用容錯設計,因此某一臺計算機出現的故障不會導致系統其它功能的喪失。此外,由于系統中各臺計算機所承擔的任務比較單一,可以針對需要實現的功能采用具有特定結構和軟件的專用計算機,從而使系統中每臺計算機的可靠性也得到提高。
開放性
DCS采用開放式、標準化、模塊化和系列化設計,系統中各臺計算機采用局域網方式通信,實現信息傳輸,當需要改變或擴充系統功能時,可將新增計算機方便地連入系統通信網絡或從網絡中卸下,幾乎不影響系統其他計算機的工作。
靈活性通過組態軟件根據不同的流程應用對象進行軟硬件組態,即確定測量與控制信號及相互
間連接關系、從控制算法庫選擇適用的控制規律以及從圖形庫調用基本圖形組成所需的各種監控和警畫面,從而方便地構成所需的控制系統。
易于維護功能單一的小型或微型專用計算機,具有維護簡單、方便的特點,當某一局部或某個計算機出現故障時,可以在不影響整個系統運行的情況下更換,迅速排除故障。
協調性各工作站之間通過通信網絡傳送各種數據,整個系統信息共享,協調工作,以完成控制系統的總體功能和優化處理。
控制功能齊全控制算法豐富,集連續控制、順序控制和批處理控制于一體,可實現串級、前饋、解耦、自適應和猜測控制等先進控制,并可方便地加入所需的非凡控制算法。
DCS的構成方式十分靈活,可由專用的治理計算機站、操作員站、工程師站、記錄站、現場控制站和數據采集站等組成,也可由通用的服務器、工業控制計算機和可編程控制器構成。
處于底層的過程控制級一般由分散的現場控制站、數據采集站等就地實現數據采集和控制,并通過數據通信網絡傳送到生產監控級計算機。生產監控級對來自過程控制級的數據進行集中操作治理,如各種優化計算、統計表、故障診斷、顯示警等。隨著計算機技術的發展,DCS可以按照需要與更高性能的計算機設備通過網絡連接來實現更高級的集中治理功能,如計劃調度、倉儲治理、能源治理等。
嵌入式控制器軟件設計
嵌入式控制器是指在DCS的硬件體系結構中的現場控制站,即圖1中被紅色橢圓圈中的部分。在設定的控制周期下,主控制器循環的執行從I/O設備采集現場數據、控制邏輯運算、與操作員站進行數據交換、故障診斷、冗余等任務。
主控制器向下通過I/O插件或者現場總線網絡,連接現場的各種I/O設備、執行設備等;向上通過系統網絡與操作員站、工程師站等連接。
DCS系統的性能、可靠性等重要指標主要體現在主控制器上。因此,設計出高效穩定的現場控制器軟件系統,對于設計整個DCS系統的關鍵之一。
1控制器硬件及系統平臺嵌入式控制器的硬件平臺為IntelXScaleIXP425嵌入式開發板;操作系統采用嵌入式Linux,版本為16。
2控制器軟件結構
控制器軟件設計為運行于嵌入式Linux平臺上的單線程應用程序,調度策略為實時的先入先出方式,現場運行采用雙機熱備份方式。由于控制器軟件要完成的各種功能相對獨立,因此本文中將控制器軟件程序設計成多模塊結構。模塊之間的關系如下圖所示。
各模塊分別設計為:
總控模塊??偪啬K指的是對系統整體運行進行監控的模塊,它協調和調度其他模塊的運行,包括系統開始啟動時的初始化、程序結束時所進行的清理以及按照周期性調度其它模塊的運行。
時間治理模塊。在控制器軟件中,維護一個與校時無關的時間計數,系統根據這個計數來進行計時和調度。工作機和備份機之間通過校時使得絕對時間和計數都能保持一致。
通訊模塊。此模塊提供控制器軟件的網絡通訊功能,設計為具體網絡協議對上層應用即通訊服務模塊透明。同時,通訊模塊應該實現將網絡上的字節流封裝成具有特定功能單元的數據包,及將具有特定功能單元的數據包轉換成網絡字節流,以供通訊服務模塊使用。
通訊服務模塊。通訊服務模塊和通訊模塊密切相關,是控制器軟件對外提供的服務接口??刂破鬈浖x了一組標準的通訊服務,外部只要按照規定的格式向控制器發送通訊請求,控制器就會給出應答或結果。通訊服務模塊實質上是對通訊模塊所接收到的數據的處理;并將處理結果交給通訊模塊發送。
冗余模塊。冗余主要是涉及到工作機和備份機之間的通訊,采用網絡方式。主機需要向從機傳送的數據主要包括:下裝文件、運行數據、相關通訊服務命令等,另外工作機和備份機之間的校時也通過冗余模塊完成。
診斷模塊。診斷模塊負責檢測控制器運行狀態,并對出現及可能出現的異常狀態進行修正。
錯誤信息處理模塊。控制器軟件中各模塊通過此錯誤信息處理模塊將各種錯誤信息記錄下來,通過通訊服務,記錄的錯誤信息可以被提取出來進行分析,以便于分析、解決出現的問題。
狀態顯示模塊。狀態顯示模塊主要是負責按照要求控制控制器面板上顯示部件LED
燈顯示相應信息。
掉電保護模塊。掉電保護模塊周期性地將重要數據保存,當系統掉電重啟后,可恢復運行數據。本文中設計為周期性的將重要的運行數據保存到SRAM中,保存完畢后,設置掉電保護有效標志;當控制器重新啟動后,檢查此標志,若有效,則恢復運行數據。
數據交換模塊。控制器軟件和現場IO模件進行數據交換:DP主站從輸入模塊收集輸入數據并發送給控制器,在IEC運算后,控制器軟件將輸出數據發送給DP主站,
DP主站將輸出數據分發給輸出設備。本文設計為DP主站將從現場智能設備收集的輸入數據存放在雙口RAM中,然后控制器軟件從雙口RAM中獲得輸入數據;控制器軟件將輸出數據存放在雙口RAM中,然后DP主站從雙口RAM獲得輸出數據,然后分發給現場智能設備。
IEC任務調度模塊。IEC任務調度模塊負責對各種IEC任務進行調度,包括周期性任務、連續性任務、內部事件任務和外部事件觸發的任務。IEC任務調度模塊還要維護雙機之間的同步,通過發送和應答同步標號保證雙機之間的IEC任務運算的節拍一致。假如同步失敗,工作機要向備份機拷貝運行數據,然后備份機重新運行。
控制器軟件的代碼設計如下所示。
intmain
/Finalization/
}
控制器軟件程序在啟動后,對冗余模塊、通訊模塊、數據交換模塊、掉電保護模塊、狀
態顯示模塊、診斷模塊進行初始化;之后進入while無限循環并周期性的調用或執行通訊模塊、狀態顯示模塊、數據交換模塊輸入部分、IEC任務調度模塊、數據交換模塊輸出部分、冗余同步模塊、診斷模塊、及可能的延時;當程序碰到意外情況需要終止時,程序進入清理部分,釋放占用的資源,最后結束運行。
實驗及結果分析
經過實驗和對結果的分析,基于嵌入式Linux的嵌入式控制器具有較高性能,能滿足一般甚至核電領域DCS系統中現場控制器的要求??刂破鬈浖邮詹⒄{度數個周期型IEC任務時控制周期可達到50ms,并且滿足現場控制器網絡負荷率小于15%,系統總負荷率小于40%等要求。
分析原因如下:
IXP425具有強大的計算能力和集成的NPE具有非常強大的網絡處理能力;系統配備大量內存,程序可快速運行;
Linux運行于IXP425BIGENDIAN模式,網絡協議棧可以減少一些轉化處理;
Linux操作系統性能較好,控制器軟件采用模塊化設計,并優化代碼,具有較強處理能力。
總結
本文分析了計算機集散控制器系統中現場控制器的在工業控制領域的重要性,并設計了基于嵌入式Linux的現場控制器軟件系統。所設計出的系統高效、可靠,滿足一般甚至核電領域的工業控制要求?;谇度胧絃inux的工業現場嵌入式控制系統必然有著更美好的前景。
參考文獻
徐雪松章兢.嵌入式Linux在工業控制領域中的應用.國際電子元器件,2004年,03期
宋威周偉.集散控制系統應用現狀及其發展.工業控制計算機,2004年,11期
郭晨鮮費凌.基于嵌入式控制器及研發平臺的分析與研究.西華大學學,2005年,04期
張廣輝徐江華邵惠鶴.基于交換式以太網的嵌入式控制系統.自動化儀表,2008年,06期
AnalysisandDesignofEmbeddedLinuxBasedFieldControlStationSoftware
文章版權歸西部工控xbgk所有,未經許可不得轉載。