摘 要: 本文在介紹工業以太網系統的總體設計的基礎上,重點闡述了工業以太網監視控制管理平臺的軟件設計與應用。主要包括上位機監控組態控制平臺的數據通訊、數據管理、組態控制各模塊以及網絡管理平臺的設計思路,并介紹了該系統在實驗室的具體應用實例。
關鍵詞: 工業以太網;網絡監控管理;嵌入式系統
1 引言
以太網是迄今最成功的局域網絡技術,具有傳輸速度高、成本低、安裝方便和兼容性好等方面的優勢,也是目前應用最廣泛的信息網絡技術之一。工業以太網就是把以太網運用到控制現場,把上層信息網與底層控制網集成。當今工業以太網的應用正在從上層向下延伸,成為新型網絡控制系統的一種發展方向,是控制領域的一熱點話題[1]。
作者簡介:莊亞俊,男,碩士研究生,研究方向:工業以太網控制系統、網絡控制;劉國平,男,教授,博士導師,研究方向: 智能網絡控制、生物信息處理、非線性系統辨識與控制等; 吳敏,男,教授, 博士導師,研究方向:工業過程智能集成系統、先進控制理論與應用、智能機器人系統技術及應用; 趙虹,女,博士研究生,研究方向:網絡控制和工業過程控制;胡春華,男,博士研究生,研究方向:網絡控制,數據庫技術
一個成功的控制系統設計必須同時具有穩定可靠的硬件和軟件。監控組態平臺是基于系統平臺的大型應用軟件,它集控制技術、人機界面技術、數據庫技術、網絡與通信技術于一體,使控制系統開發人員不必依靠某種具體的計算機語言,只需通過可視化的組態方式,就可完成控制系統功能的構建以及對現場設備的運行狀態的檢測,這為控制系統設計人員帶來了很大的方便。目前,監控平臺有許多成熟的產品,但主要應用于不同類型(如Can,LonWorks, PROFIBUS)的現場總線,每種總線都采用不同的通訊協議和總線標準。
區別于現有的各種基于現場總線的監控系統,本文設計的系統給出了將以太網直接應用于工業現場設備(例如:氣閥門等)的監控的方案,介紹了工業以太網控制系統總體結構設,并著重闡述了監控組態及網絡管理平臺的軟件設計與應用,可以實現對智能控制節點的實時監視、組態控制以及網絡管理等功能,以解決對工業以太網控制系統中的現場設備實時監視、圖形組態控制和嵌入式節點網絡管理的問題。
2 工業以太網控制系統總體設計
該系統分為三個層次:現場智能節點控制級、上位監控及網絡管理級和遠程監控級,本文的工業以太網系統總體結構如圖1示。
[align=center]

圖1 工業以太網總體結構圖[/align]
智能節點控制級以32位MCF5272芯片為核心,嵌入了uClinux操作系統[2],內置各種控制程序,具有實時數據采集、實時控制、網絡通訊功能。智能控制器采用以太網接口,支持TCP/IP協議,有本身的IP地址,類似一臺PC機。各個控制節點之間、節點與上位機之間通過集線器進行通訊,由上位機進行統一監控管理。
監控及網絡管理級是本論文介紹的核心,它運行在Windows環境里下Visual C++6.0開發研制的可視化監控管理臺,包括監控組態和網絡管理兩大部分,監控組態部分又包括三大模塊:通訊模塊、數據管理模塊和控制組態模塊。上位機的通訊模塊和智能節點的通訊模塊對應,實現上位機與智能節點的數據傳輸功能。數據管理模塊對智能節點傳來的實時數據進行存儲、管理并顯示實時、歷史曲線。控制組態模塊與智能控制器上的算法相對應,使用戶可以在上位機為各個智能節點進行控制算法和控制參數設置。網絡管理部分主要用來實現設置各智能節點IP地址,檢測局域網內各智能控制器的工作狀態。
遠程控制級是一套基于Brower/Web Server/Web Database三層體系結構[3],使現場采集的數據通過Web服務器以網頁發布的形式向用戶PC機上發布,用戶只需在普通的瀏覽器上輸入相應的網頁地址,即可對現場的各個參數的進行實時監測,同時,用戶也可以在線地修改參數,實現遠程控制。
3 監控及網絡管理系統的組成與功能
上位監控及網絡管理系統是在Windows 環境下Visual C++ 6.0研制的可視化監控管理臺,主要分為兩大部分:監控組態平臺和網絡管理平臺。其中監控組態平臺又分為數據通訊、數據管理、組態控制模塊.其實現功能為接收下位機智能節點傳送的實時數據;將數據存儲入數據庫;對數據進行實時和歷史曲線實現.網絡管理平臺的主要功能是對下位機各智能節點進行管理,檢測各智能節點的MAC(物理)地址,分配IP,工作狀態查詢。
3.1監控部分各模塊
3.1.1數據通訊模塊
本系統采用C/S(客戶機/服務器)模型。上位機做為服務器,用來響應并為客戶提供固定的服務。各智能節點做為客戶機,向服務器提出請求或要求某種服務。本論文采用Socket套接字做為程序通訊接口,Socket編程可分為流式套接字編程和數據報套接字編程。流式套接字是基于TCP的,它提供了一個面向連接、可靠的數據傳輸服務,數據無差錯、無重復地發送,且按發送順序接收。但傳輸速度較慢,不利于實時性控制。數據報套接字是基于UDP協議的,它提供了一個無連接服務。數據包以獨立數據包形式被發送,不提供無錯保證,數據可能丟失或重復,并且接收順序混亂,具有代碼小,傳輸速度快,系統開銷小的特點。在本模塊設計中,由于考慮到客戶端和服務器端的傳輸速度和系統開銷,故采用了數據報套接字進行數據交換。
由于考慮到UDP協議無連接、不可靠的缺點,在程序中采用“累加和”校驗方式,通訊流程圖如圖2所示,上位機是通過WinSock控件啟動通訊服務,綁定本地地址后監聽等待智能節點請求服務。智能節點用在uCLinux環境下使用C語言進行編程[4],本系統為了以上位機WinSock組件對應故采用Socket套接字向服務器提出請求,雙方“握手”后,智能節點首先將實時數據采集交給數據構造模塊按照上、下位機定義的協議進行打包,再由通訊模塊把數據包傳遞給上位機;上位機接收到數據包后再由解析模塊按照同樣的協議解包,得到智能節點傳遞來的實時數據,存入歷史數據庫并實時顯示。
[align=center]

圖2 上位機與智能節點通信流程圖[/align]
3.1.2 數據管理模塊
數據管理模塊分為數據存儲和數據顯示兩個子模塊。
?。?)數據存儲子模塊
該模塊主要功能是將剛從智能節點傳來的實時數據存入歷史數據庫,以便歷史數據查詢顯示。
本程序采用MFC ODBC做為數據庫的接口,通過CDatebase類和CRecordSet類對ODBC(開放數據庫互聯)的API進行了封裝,從而簡化了程序設計. CDatebase類用于應用程序與數據源的連接. CRecordSet類來實現對數據庫中紀錄集的操作,通過它的成員變量m_pDatabase與CDadabase類對象達到互聯。
本程序中為數據庫建立一個CDatebase對象指針,對應數據庫里面的每一張表建立一個CRecordSet對象指針,由CDatabase的OpenEx()成員函數用來打開在ODBC數據源中定義的數據庫數據源。CRecordset的Open()成員函數用來打開對應的數據表。當數據源和表被打開后,就可以對數據庫中進行添加、修改、刪除等操作。
?。?)數據顯示子模塊
顯示模塊是指可對歷史數據進行查詢、統計后生成數據報表。曲線圖包括實時動態曲線和歷史趨勢曲線。實時動態曲線反映了參數或變量的實時變化情況,可用來監測該智能點的穩定性。要實現實時曲線的動態平移涉及曲線的消隱和重新繪制技術,本程序通過調用TPerformanceGraph控件的方法實現。歷史趨勢曲線反映的是過去一段時間內監測點的變化趨勢,可供工程人員分析穩定性和故障原因。它雖不需要實時的平滑移動,但通常需要進行一定的數據分析。因此,首先需根據設定的查詢條件,使用SQL語句通過ODBC獲得相應的數據記錄集,然后將之與TPerformanceGraph 控件的數據綁定來實現曲線的自動繪制。
3.1.3控制組態控制模塊
控制組態模塊為用戶提供了良好的可視化圖形組態界面,包括輸入輸出控件、數學運算控件、邏輯運算控件以及控制功能算法控件;在這些組態控件的開發中,采用了ActiveX技術,它是建立在組件對象模型之上的一種對象鏈接與嵌入技術,目的是提供一種面向對象的、與操作系統和機器平臺無關的、可以在應用程序之間互相訪問對象的機制。該模塊與智能控制器上的算法相對應,使用戶可以在上位機為各個子智能節點進行控制算法和控制參數設置。由用戶在可視化界面選擇所控制的智能節點、控制算法和控制參數,由通訊模塊將算法及各參數下裝到相應的節點,控制節點在進行相應的運算從而實現對現場設備的控制。
3.2網絡管理部分
網絡管理平臺主要用于對局域網內所有的智能節點進行網絡管理,主要包括系統初始化時各智能節點的IP地址分配,并實時檢測各智能節點的工作狀態。本系統采用動態主機配置協議DHCP(Dynamic Host Configuration Protocol),對各智能節點進行動態IP地址分配,一旦有新的智能節點連接到局域網,就向上位機服務器發送一個DHCP報文,報文里含有該節點的主要網絡信息包括(MAC)物理地址、工作組、主機名以及子網掩碼等,服務器根據每個智能節點唯一的MAC地址手動或者自動配置它的IP地址[5]。然后建立智能節點IP地址表,包括節點編號、IP地址、所屬工作組、物理(MAC)地址、加入時間等內容。網絡節點的在線監控情況如圖3所示。
[align=center]

圖3 網絡節點狀態監控圖[/align]
4 實例應用
中南大學信息科學與工程學院的過程控制實驗室有三套模擬工業現場的試驗系統:壓力控制系統、溫度控制系統、液位控制系統。我們應用上位機、數據庫服務器和智能控制器構建了一個以太網控制系統。如圖4所示
[align=center]

圖4 工業以太網實驗系統[/align]
以液位控制系統為例,被控對象為水箱液位。上位機通過組態控制模塊對智能節點進行控制算法和控制參數設定,將給定量和各參數傳遞給智能控制器,液位變送器檢測得到氣缸輸出的4-20 mA的電流模擬反饋信號,由數據采集卡通過A/D轉換成數字反饋信號輸入智能節點,再于組態控制模塊傳遞過來的給定值進行比較得到偏差信號,再根據從上位機傳遞過來的控制算法程序,計算出控制量,經過D/A轉換為1-5V的電壓,再經過電壓-電流轉換成4-20 mA的電流控制信號,控制調節閥開度,實現對水箱的液位控制。如圖5為水箱液位初始值為25 cm,給定為70 cm,控制算法為PID控制效果最佳時的試驗曲線,可見該智能節點能實現對被控對象的有效控制。
[align=center]

圖5 液位系統PID控制曲線[/align]
5 結論
本文提出了一種基于Visual C++6.0語言的上位機網絡監控組態管理系統的軟件設計方法以及實現情況,它把基于現場智能節點控制級、上位監控及網絡管理級、遠程監控級三層體系結構運用于工業以太網控制系統中,并結合一個具體的網絡監控系統說明了這種設計方法的運用。隨著企業信息化程度要求的不斷提高,相關技術的不斷成熟,工業以太網體系結構在企業的信息化建設中必將起到越來越重要的作用。
參考文獻
[1] 徐皚冬, 王宏, 楊志家. 基于以太網的工業控制網絡[J]. 信息與控制, 2000, 29 (2): 182-185
[2] 王鋒, 王滔, 季曉勇. 一種嵌入式Linux平臺的軟硬件設計[J]. 電子技術應用, 2003,6(2)13-15
[3] 胡波, 吳敏. 基于Java的網絡監控系統設計及應用[J]. 計算機應用研究, 2003,4 (7): 138-140
[4] 賈明, 嚴世賢. Linux下的C編程. 北京: 人民郵電出版社[M], 2001
[5] 李廷軍, 周正歐. 嵌入式網絡設備的MAC及IP地址設置[J]. 單片機與嵌入式系統用,2004,4(2):16-19