【摘要】:本文分析了 Linux 在嵌入式系統中應用的可能性及優勢,并設計了基于嵌入式 Linux 的工業現場控制器軟件,并實際應用于計算機集散控制系統(DCS)中,滿足了一般甚至核電領域中DCS 系統對現場控制器的要求。
關鍵詞:嵌入式 Linux;DCS;現場控制器
Abstract The possibilities and advantages of application of Linux in bbbbbded systems are first analyzed in this paper, and then an bbbbbded Linux based industrial field control station software is designed and actually applied in the Distributed Control System (DCS), and satisfies the requirements for field control station in DCS of general even nubbbbb power plant fields.
Keywords: bbbbbded Linux; DCS; Filed Control Station
1.引言
現場控制器是DCS系統的核心組成部分,擔負著接收并執行控制算法、采集現場數據并 進行大量數據處理等職能,且具有控制周期短,運行穩定、可靠等要求。因此,如何選用高 性能的硬件,開發穩定可靠的嵌入式操作系統,并設計現場控制器軟件系統成為DCS系統開 發中的關鍵之一。
本文分析并設計了基于嵌入式Linux的工業現場控制器的控制軟件系統。
2. bbbbbded Linux的優勢
bbbbbded Linux 具有如下特點[1]:
第一,Linux 系統內核源碼完全開放。因為 Linux 的內核源碼是完全開發的,所以不同 領域和層次的用戶可以免費得到 Linux 內核源碼,并根據自己的應用需要方便的對內核進行 修改。這樣可以有效控制成本,并設計和開發出滿足其需要的嵌入式系統。
第二,強大的網絡功能。Linux 的網絡連接能力緊密的和 Linux 內核結合在一起,為用 戶提供了完善而強大的網絡功能。實際上,Linux 就是依靠互聯網才迅速發展了起來。Linux 支持所有標準 Internet 協議,可以輕松地與 TCP/IP、LAN Manager、bbbbbbs for Workgroups、 Novell Netware 或 bbbbbbs NT 網絡集成在一起。可以在 Linux 的網絡協議棧基礎上開發出 嵌入式的 TCP/IP 網絡協議棧,使得嵌入式設備具有強大的網絡功能。
第三,Linux 是 Unix 兼容,完全符合 IEEE POSIX.1 標準。許多運行在 Unix 上的軟件 可以不加修的運行在 Linux 上。因此嵌入式 Linux 具有很多豐富的免費軟件資源可以利用。 第四,Linux 具備完整的開發工具鏈,嵌入式系統開發者容易建立嵌入式系統的開發環 境和交叉運行環境,可以跨越嵌入式系統開發中仿真工具的障礙。從編輯階段,編譯階段到調試階段,可以方便的使用 GNU 提供的 EMACS,GCC,GDB,KGDB 等工具鏈。 第五,Linux 具有廣泛的硬件支持。Linux 能運行在,無論是 RISC 還是 CISC、32 位還是 64 位等各種處理器上。Linux 支持各種主流的硬件設備和最新的硬件技術,可以在沒有MMU 的處理器上運行。所以嵌入式 Linux 有廣泛的應用前景。
3. 工業控制DCS系統的組成
DCS 是分散控制系統(Distributed Control System)的簡稱,國內一般習慣稱為集散控 制系統。它是一個由過程控制級和過程監控級組成的以通信網絡為紐帶的多級計算機系統, 綜合了計算機(Computer)、通訊(Communication)、顯示(CRT)和控制(Control)等 4C 技術,其基本思想是分散控制、集中操作、分級管理、配置靈活、組態方便。

DCS 具有以下特點[2]:
(1)高可靠性
由于 DCS 將系統控制功能分散在各臺計算機上實現,系統結構采用容錯設計,因此某 一臺計算機出現的故障不會導致系統其它功能的喪失。此外,由于系統中各臺計算機所承擔 的任務比較單一,可以針對需要實現的功能采用具有特定結構和軟件的專用計算機,從而使 系統中每臺計算機的可靠性也得到提高。
(2)開放性
DCS 采用開放式、標準化、模塊化和系列化設計,系統中各臺計算機采用局域網方式 通信,實現信息傳輸,當需要改變或擴充系統功能時,可將新增計算機方便地連入系統通信 網絡或從網絡中卸下,幾乎不影響系統其他計算機的工作。
(3)靈活性 通過組態軟件根據不同的流程應用對象進行軟硬件組態,即確定測量與控制信號及相互
間連接關系、從控制算法庫選擇適用的控制規律以及從圖形庫調用基本圖形組成所需的各種 監控和報警畫面,從而方便地構成所需的控制系統。
(4)易于維護 功能單一的小型或微型專用計算機,具有維護簡單、方便的特點,當某一局部或某個計算機出現故障時,可以在不影響整個系統運行的情況下在線更換,迅速排除故障。
(5)協調性 各工作站之間通過通信網絡傳送各種數據,整個系統信息共享,協調工作,以完成控制 系統的總體功能和優化處理。
(6)控制功能齊全 控制算法豐富,集連續控制、順序控制和批處理控制于一體,可實現串級、前饋、解耦、 自適應和預測控制等先進控制,并可方便地加入所需的特殊控制算法。
DCS 的構成方式十分靈活,可由專用的管理計算機站、操作員站、工程師站、記錄站、 現場控制站和數據采集站等組成,也可由通用的服務器、工業控制計算機和可編程控制器構成。
處于底層的過程控制級一般由分散的現場控制站、數據采集站等就地實現數據采集和控 制,并通過數據通信網絡傳送到生產監控級計算機。生產監控級對來自過程控制級的數據進 行集中操作管理,如各種優化計算、統計報表、故障診斷、顯示報警等。隨著計算機技術的 發展,DCS 可以按照需要與更高性能的計算機設備通過網絡連接來實現更高級的集中管理 功能,如計劃調度、倉儲管理、能源管理等。
4. 嵌入式控制器軟件設計
嵌入式控制器是指在 DCS 的硬件體系結構中的現場控制站,即圖 1 中被紅色橢圓圈中 的部分。在設定的控制周期下,主控制器循環的執行從 I/O 設備采集現場數據、控制邏輯運 算、與操作員站進行數據交換、故障診斷、冗余等任務。
主控制器向下通過 I/O 插件或者現場總線網絡,連接現場的各種 I/O 設備、執行設備等; 向上通過系統網絡與操作員站、工程師站等連接。
DCS 系統的性能、可靠性等重要指標主要體現在主控制器上[3]。因此,設計出高效穩定 的現場控制器軟件系統,對于設計整個 DCS 系統的關鍵之一。
4.1 控制器硬件及系統平臺嵌入式控制器的硬件平臺為 Inbbb® XScale IXP425 嵌入式開發板;操作系統采用嵌入式Linux,版本為 2.6.16。
4.2 控制器軟件結構
控制器軟件設計為運行于嵌入式 Linux 平臺上的單線程應用程序,調度策略為實時的先 入先出(FIFO)方式,現場運行采用雙機熱備份方式。由于控制器軟件要完成的各種功能 相對獨立,因此本文中將控制器軟件程序設計成多模塊結構。模塊之間的關系如下圖所示。

各模塊分別設計為:
(1)總控模塊。總控模塊指的是對系統整體運行進行監控的模塊,它協調和調度其他 模塊的運行,包括系統開始啟動時的初始化、程序結束時所進行的清理以及按照周期性調度 其它模塊的運行。
(2)時間管理模塊。在控制器軟件中,維護一個與校時無關的時間計數,系統根據這 個計數來進行計時和調度。工作機和備份機之間通過校時使得絕對時間和計數都能保持一 致。
(3)通訊模塊。此模塊提供控制器軟件的網絡通訊功能,設計為具體網絡協議對上層 應用即通訊服務模塊透明。同時,通訊模塊應該實現將網絡上的字節流封裝成具有特定功能 單元的數據包,及將具有特定功能單元的數據包轉換成網絡字節流,以供通訊服務模塊使用。
(4)通訊服務模塊。通訊服務模塊和通訊模塊密切相關,是控制器軟件對外提供的服 務接口。控制器軟件定義了一組標準的通訊服務,外部只要按照規定的格式向控制器發送通 訊請求,控制器就會給出應答或結果。通訊服務模塊實質上是對通訊模塊所接收到的數據的 處理;并將處理結果交給通訊模塊發送。
(5)冗余模塊。冗余主要是涉及到工作機和備份機之間的通訊,采用網絡方式。主機 需要向從機傳送的數據主要包括:下裝文件、運行數據、相關通訊服務命令等,另外工作機 和備份機之間的校時也通過冗余模塊完成。
(6)診斷模塊。診斷模塊負責檢測控制器運行狀態,并對出現及可能出現的異常狀態 進行修正。
(7)錯誤信息處理模塊。控制器軟件中各模塊通過此錯誤信息處理模塊將各種錯誤信 息記錄下來,通過通訊服務,記錄的錯誤信息可以被提取出來進行分析,以便于分析、解決 出現的問題。
(8)狀態顯示模塊。狀態顯示模塊主要是負責按照要求控制控制器面板上顯示部件 LED
燈顯示相應信息。
(9)掉電保護模塊。掉電保護模塊周期性地將重要數據保存,當系統掉電重啟后,可 恢復運行數據。本文中設計為周期性的將重要的運行數據保存到 SRAM 中,保存完畢后, 設置掉電保護有效標志;當控制器重新啟動后,檢查此標志,若有效,則恢復運行數據。
(10)數據交換模塊。控制器軟件和現場 IO 模件進行數據交換:DP 主站從輸入模塊 收集輸入數據并發送給控制器,在 IEC 運算后,控制器軟件將輸出數據發送給 DP 主站,
DP 主站將輸出數據分發給輸出設備。本文設計為 DP 主站將從現場智能設備收集的輸入數 據存放在雙口 RAM 中,然后控制器軟件從雙口 RAM 中獲得輸入數據;控制器軟件將輸出 數據存放在雙口 RAM 中,然后 DP 主站從雙口 RAM 獲得輸出數據,然后分發給現場智能設備。
(11)IEC 任務調度模塊。IEC 任務調度模塊負責對各種 IEC 任務進行調度,包括周期 性任務、連續性任務、內部事件任務和外部事件觸發的任務。IEC 任務調度模塊還要維護雙 機之間的同步,通過發送和應答同步標號保證雙機之間的 IEC 任務運算的節拍一致。如果 同步失敗,工作機要向備份機拷貝運行數據,然后備份機重新運行。
控制器軟件的代碼設計如下所示。
int main(int argc, c har *argv[])
{
/* General initialization */
/* Redundancy initialization */
/* Communication initialization */
/* DP initialization */
/* Power-safe initialization */
/* LED display initialization */
/* Diagnosis initialization */
while (1) {
/* Handle communication services */
/* LED display */
/* Collect bbbbb data from DP master*/
/* Schedule IEC tasks */
/* Deliver output data to DPmaster*/
/* Redundancy synchronization control*/
/* Diagnosis functions */
/* Possible delay */
}
/* Finalization */
}
控制器軟件程序在啟動后,對冗余模塊、通訊模塊、數據交換模塊、掉電保護模塊、狀態顯示模塊、診斷模塊進行初始化;之后進入 while 無限循環并周期性的調用或執行通訊模 塊、狀態顯示模塊、數據交換模塊輸入部分、IEC 任務調度模塊、數據交換模塊輸出部分、 冗余同步模塊、診斷模塊、及可能的延時;當程序遇到意外情況需要終止時(如用戶發送Ctrl + C 中斷),程序進入清理部分,釋放占用的資源,最后結束運行。
5. 實驗及結果分析
經過實驗和對結果的分析,基于嵌入式 Linux 的嵌入式控制器具有較高性能,能滿足一 般甚至核電領域 DCS 系統中現場控制器的要求。控制器軟件接收并調度數個周期型 IEC 任 務(代碼和數據總大小分別小于 500KB 和 700KB)時控制周期可達到 50ms,并且滿足現場 控制器網絡負荷率小于 15%,系統總負荷率小于 40%等要求。
分析原因如下:
IXP425 具有強大的計算能力和集成的 NPE 具有非常強大的網絡處理能力[4]; 系統配備大量內存(128MB),程序可快速運行;
Linux 運行于 IXP425 BIG ENDIAN 模式,網絡協議棧可以減少一些轉化處理;
Linux 操作系統性能較好,控制器軟件采用模塊化設計,并優化代碼,具有較強處理能力。

6. 總結
本文分析了計算機集散控制器系統中現場控制器的在工業控制領域的重要性,并設計了 基于嵌入式 Linux 的現場控制器軟件系統。所設計出的系統高效、可靠,滿足一般甚至核電領域的工業控制要求。基于嵌入式 Linux 的工業現場嵌入式控制系統必然有著更美好的前景。
參考文獻
[1] 徐雪松 章兢.嵌入式 Linux 在工業控制領域中的應用.國際電子元器件,2004 年,03 期
[2] 宋威 周偉.集散控制系統應用現狀及其發展.工業控制計算機,2004 年,11 期
[3] 郭晨鮮 費凌.基于嵌入式控制器及研發平臺的分析與研究.西華大學學報,2005 年,04 期
[4] 張廣輝 徐江華 邵惠鶴.基于交換式以太網的嵌入式控制系統.自動化儀表,2008 年,06 期
Analysis and Design of bbbbbded Linux Based Field Control Station Software










