摘 要: 本文在介紹工業(yè)以太網(wǎng)系統(tǒng)的總體設(shè)計的基礎(chǔ)上,重點闡述了工業(yè)以太網(wǎng)監(jiān)視控制管理平臺的軟件設(shè)計與應(yīng)用。主要包括上位機監(jiān)控組態(tài)控制平臺的數(shù)據(jù)通訊、數(shù)據(jù)管理、組態(tài)控制各模塊以及網(wǎng)絡(luò)管理平臺的設(shè)計思路,并介紹了該系統(tǒng)在實驗室的具體應(yīng)用實例。
關(guān)鍵詞: 工業(yè)以太網(wǎng);網(wǎng)絡(luò)監(jiān)控管理;嵌入式系統(tǒng)
1 引言
以太網(wǎng)是迄今最成功的局域網(wǎng)絡(luò)技術(shù),具有傳輸速度高、成本低、安裝方便和兼容性好等方面的優(yōu)勢,也是目前應(yīng)用最廣泛的信息網(wǎng)絡(luò)技術(shù)之一。工業(yè)以太網(wǎng)就是把以太網(wǎng)運用到控制現(xiàn)場,把上層信息網(wǎng)與底層控制網(wǎng)集成。當今工業(yè)以太網(wǎng)的應(yīng)用正在從上層向下延伸,成為新型網(wǎng)絡(luò)控制系統(tǒng)的一種發(fā)展方向,是控制領(lǐng)域的一熱點話題[1]。
作者簡介:莊亞俊,男,碩士研究生,研究方向:工業(yè)以太網(wǎng)控制系統(tǒng)、網(wǎng)絡(luò)控制;劉國平,男,教授,博士導(dǎo)師,研究方向: 智能網(wǎng)絡(luò)控制、生物信息處理、非線性系統(tǒng)辨識與控制等; 吳敏,男,教授, 博士導(dǎo)師,研究方向:工業(yè)過程智能集成系統(tǒng)、先進控制理論與應(yīng)用、智能機器人系統(tǒng)技術(shù)及應(yīng)用; 趙虹,女,博士研究生,研究方向:網(wǎng)絡(luò)控制和工業(yè)過程控制;胡春華,男,博士研究生,研究方向:網(wǎng)絡(luò)控制,數(shù)據(jù)庫技術(shù)
一個成功的控制系統(tǒng)設(shè)計必須同時具有穩(wěn)定可靠的硬件和軟件。監(jiān)控組態(tài)平臺是基于系統(tǒng)平臺的大型應(yīng)用軟件,它集控制技術(shù)、人機界面技術(shù)、數(shù)據(jù)庫技術(shù)、網(wǎng)絡(luò)與通信技術(shù)于一體,使控制系統(tǒng)開發(fā)人員不必依靠某種具體的計算機語言,只需通過可視化的組態(tài)方式,就可完成控制系統(tǒng)功能的構(gòu)建以及對現(xiàn)場設(shè)備的運行狀態(tài)的檢測,這為控制系統(tǒng)設(shè)計人員帶來了很大的方便。目前,監(jiān)控平臺有許多成熟的產(chǎn)品,但主要應(yīng)用于不同類型(如Can,LonWorks, PROFIBUS)的現(xiàn)場總線,每種總線都采用不同的通訊協(xié)議和總線標準。
區(qū)別于現(xiàn)有的各種基于現(xiàn)場總線的監(jiān)控系統(tǒng),本文設(shè)計的系統(tǒng)給出了將以太網(wǎng)直接應(yīng)用于工業(yè)現(xiàn)場設(shè)備(例如:氣閥門等)的監(jiān)控的方案,介紹了工業(yè)以太網(wǎng)控制系統(tǒng)總體結(jié)構(gòu)設(shè),并著重闡述了監(jiān)控組態(tài)及網(wǎng)絡(luò)管理平臺的軟件設(shè)計與應(yīng)用,可以實現(xiàn)對智能控制節(jié)點的實時監(jiān)視、組態(tài)控制以及網(wǎng)絡(luò)管理等功能,以解決對工業(yè)以太網(wǎng)控制系統(tǒng)中的現(xiàn)場設(shè)備實時監(jiān)視、圖形組態(tài)控制和嵌入式節(jié)點網(wǎng)絡(luò)管理的問題。
2 工業(yè)以太網(wǎng)控制系統(tǒng)總體設(shè)計
該系統(tǒng)分為三個層次:現(xiàn)場智能節(jié)點控制級、上位監(jiān)控及網(wǎng)絡(luò)管理級和遠程監(jiān)控級,本文的工業(yè)以太網(wǎng)系統(tǒng)總體結(jié)構(gòu)如圖1示。
[align=center]
圖1 工業(yè)以太網(wǎng)總體結(jié)構(gòu)圖[/align]
智能節(jié)點控制級以32位MCF5272芯片為核心,嵌入了uClinux操作系統(tǒng)[2],內(nèi)置各種控制程序,具有實時數(shù)據(jù)采集、實時控制、網(wǎng)絡(luò)通訊功能。智能控制器采用以太網(wǎng)接口,支持TCP/IP協(xié)議,有本身的IP地址,類似一臺PC機。各個控制節(jié)點之間、節(jié)點與上位機之間通過集線器進行通訊,由上位機進行統(tǒng)一監(jiān)控管理。
監(jiān)控及網(wǎng)絡(luò)管理級是本論文介紹的核心,它運行在Windows環(huán)境里下Visual C++6.0開發(fā)研制的可視化監(jiān)控管理臺,包括監(jiān)控組態(tài)和網(wǎng)絡(luò)管理兩大部分,監(jiān)控組態(tài)部分又包括三大模塊:通訊模塊、數(shù)據(jù)管理模塊和控制組態(tài)模塊。上位機的通訊模塊和智能節(jié)點的通訊模塊對應(yīng),實現(xiàn)上位機與智能節(jié)點的數(shù)據(jù)傳輸功能。數(shù)據(jù)管理模塊對智能節(jié)點傳來的實時數(shù)據(jù)進行存儲、管理并顯示實時、歷史曲線??刂平M態(tài)模塊與智能控制器上的算法相對應(yīng),使用戶可以在上位機為各個智能節(jié)點進行控制算法和控制參數(shù)設(shè)置。網(wǎng)絡(luò)管理部分主要用來實現(xiàn)設(shè)置各智能節(jié)點IP地址,檢測局域網(wǎng)內(nèi)各智能控制器的工作狀態(tài)。
遠程控制級是一套基于Brower/Web Server/Web Database三層體系結(jié)構(gòu)[3],使現(xiàn)場采集的數(shù)據(jù)通過Web服務(wù)器以網(wǎng)頁發(fā)布的形式向用戶PC機上發(fā)布,用戶只需在普通的瀏覽器上輸入相應(yīng)的網(wǎng)頁地址,即可對現(xiàn)場的各個參數(shù)的進行實時監(jiān)測,同時,用戶也可以在線地修改參數(shù),實現(xiàn)遠程控制。
3 監(jiān)控及網(wǎng)絡(luò)管理系統(tǒng)的組成與功能
上位監(jiān)控及網(wǎng)絡(luò)管理系統(tǒng)是在Windows 環(huán)境下Visual C++ 6.0研制的可視化監(jiān)控管理臺,主要分為兩大部分:監(jiān)控組態(tài)平臺和網(wǎng)絡(luò)管理平臺。其中監(jiān)控組態(tài)平臺又分為數(shù)據(jù)通訊、數(shù)據(jù)管理、組態(tài)控制模塊.其實現(xiàn)功能為接收下位機智能節(jié)點傳送的實時數(shù)據(jù);將數(shù)據(jù)存儲入數(shù)據(jù)庫;對數(shù)據(jù)進行實時和歷史曲線實現(xiàn).網(wǎng)絡(luò)管理平臺的主要功能是對下位機各智能節(jié)點進行管理,檢測各智能節(jié)點的MAC(物理)地址,分配IP,工作狀態(tài)查詢。
3.1監(jiān)控部分各模塊
3.1.1數(shù)據(jù)通訊模塊
本系統(tǒng)采用C/S(客戶機/服務(wù)器)模型。上位機做為服務(wù)器,用來響應(yīng)并為客戶提供固定的服務(wù)。各智能節(jié)點做為客戶機,向服務(wù)器提出請求或要求某種服務(wù)。本論文采用Socket套接字做為程序通訊接口,Socket編程可分為流式套接字編程和數(shù)據(jù)報套接字編程。流式套接字是基于TCP的,它提供了一個面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯、無重復(fù)地發(fā)送,且按發(fā)送順序接收。但傳輸速度較慢,不利于實時性控制。數(shù)據(jù)報套接字是基于UDP協(xié)議的,它提供了一個無連接服務(wù)。數(shù)據(jù)包以獨立數(shù)據(jù)包形式被發(fā)送,不提供無錯保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂,具有代碼小,傳輸速度快,系統(tǒng)開銷小的特點。在本模塊設(shè)計中,由于考慮到客戶端和服務(wù)器端的傳輸速度和系統(tǒng)開銷,故采用了數(shù)據(jù)報套接字進行數(shù)據(jù)交換。
由于考慮到UDP協(xié)議無連接、不可靠的缺點,在程序中采用“累加和”校驗方式,通訊流程圖如圖2所示,上位機是通過WinSock控件啟動通訊服務(wù),綁定本地地址后監(jiān)聽等待智能節(jié)點請求服務(wù)。智能節(jié)點用在uCLinux環(huán)境下使用C語言進行編程[4],本系統(tǒng)為了以上位機WinSock組件對應(yīng)故采用Socket套接字向服務(wù)器提出請求,雙方“握手”后,智能節(jié)點首先將實時數(shù)據(jù)采集交給數(shù)據(jù)構(gòu)造模塊按照上、下位機定義的協(xié)議進行打包,再由通訊模塊把數(shù)據(jù)包傳遞給上位機;上位機接收到數(shù)據(jù)包后再由解析模塊按照同樣的協(xié)議解包,得到智能節(jié)點傳遞來的實時數(shù)據(jù),存入歷史數(shù)據(jù)庫并實時顯示。
[align=center]
圖2 上位機與智能節(jié)點通信流程圖[/align]
3.1.2 數(shù)據(jù)管理模塊
數(shù)據(jù)管理模塊分為數(shù)據(jù)存儲和數(shù)據(jù)顯示兩個子模塊。
?。?)數(shù)據(jù)存儲子模塊
該模塊主要功能是將剛從智能節(jié)點傳來的實時數(shù)據(jù)存入歷史數(shù)據(jù)庫,以便歷史數(shù)據(jù)查詢顯示。
本程序采用MFC ODBC做為數(shù)據(jù)庫的接口,通過CDatebase類和CRecordSet類對ODBC(開放數(shù)據(jù)庫互聯(lián))的API進行了封裝,從而簡化了程序設(shè)計. CDatebase類用于應(yīng)用程序與數(shù)據(jù)源的連接. CRecordSet類來實現(xiàn)對數(shù)據(jù)庫中紀錄集的操作,通過它的成員變量m_pDatabase與CDadabase類對象達到互聯(lián)。
本程序中為數(shù)據(jù)庫建立一個CDatebase對象指針,對應(yīng)數(shù)據(jù)庫里面的每一張表建立一個CRecordSet對象指針,由CDatabase的OpenEx()成員函數(shù)用來打開在ODBC數(shù)據(jù)源中定義的數(shù)據(jù)庫數(shù)據(jù)源。CRecordset的Open()成員函數(shù)用來打開對應(yīng)的數(shù)據(jù)表。當數(shù)據(jù)源和表被打開后,就可以對數(shù)據(jù)庫中進行添加、修改、刪除等操作。
?。?)數(shù)據(jù)顯示子模塊
顯示模塊是指可對歷史數(shù)據(jù)進行查詢、統(tǒng)計后生成數(shù)據(jù)報表。曲線圖包括實時動態(tài)曲線和歷史趨勢曲線。實時動態(tài)曲線反映了參數(shù)或變量的實時變化情況,可用來監(jiān)測該智能點的穩(wěn)定性。要實現(xiàn)實時曲線的動態(tài)平移涉及曲線的消隱和重新繪制技術(shù),本程序通過調(diào)用TPerformanceGraph控件的方法實現(xiàn)。歷史趨勢曲線反映的是過去一段時間內(nèi)監(jiān)測點的變化趨勢,可供工程人員分析穩(wěn)定性和故障原因。它雖不需要實時的平滑移動,但通常需要進行一定的數(shù)據(jù)分析。因此,首先需根據(jù)設(shè)定的查詢條件,使用SQL語句通過ODBC獲得相應(yīng)的數(shù)據(jù)記錄集,然后將之與TPerformanceGraph 控件的數(shù)據(jù)綁定來實現(xiàn)曲線的自動繪制。
3.1.3控制組態(tài)控制模塊
控制組態(tài)模塊為用戶提供了良好的可視化圖形組態(tài)界面,包括輸入輸出控件、數(shù)學(xué)運算控件、邏輯運算控件以及控制功能算法控件;在這些組態(tài)控件的開發(fā)中,采用了ActiveX技術(shù),它是建立在組件對象模型之上的一種對象鏈接與嵌入技術(shù),目的是提供一種面向?qū)ο蟮?、與操作系統(tǒng)和機器平臺無關(guān)的、可以在應(yīng)用程序之間互相訪問對象的機制。該模塊與智能控制器上的算法相對應(yīng),使用戶可以在上位機為各個子智能節(jié)點進行控制算法和控制參數(shù)設(shè)置。由用戶在可視化界面選擇所控制的智能節(jié)點、控制算法和控制參數(shù),由通訊模塊將算法及各參數(shù)下裝到相應(yīng)的節(jié)點,控制節(jié)點在進行相應(yīng)的運算從而實現(xiàn)對現(xiàn)場設(shè)備的控制。
3.2網(wǎng)絡(luò)管理部分
網(wǎng)絡(luò)管理平臺主要用于對局域網(wǎng)內(nèi)所有的智能節(jié)點進行網(wǎng)絡(luò)管理,主要包括系統(tǒng)初始化時各智能節(jié)點的IP地址分配,并實時檢測各智能節(jié)點的工作狀態(tài)。本系統(tǒng)采用動態(tài)主機配置協(xié)議DHCP(Dynamic Host Configuration Protocol),對各智能節(jié)點進行動態(tài)IP地址分配,一旦有新的智能節(jié)點連接到局域網(wǎng),就向上位機服務(wù)器發(fā)送一個DHCP報文,報文里含有該節(jié)點的主要網(wǎng)絡(luò)信息包括(MAC)物理地址、工作組、主機名以及子網(wǎng)掩碼等,服務(wù)器根據(jù)每個智能節(jié)點唯一的MAC地址手動或者自動配置它的IP地址[5]。然后建立智能節(jié)點IP地址表,包括節(jié)點編號、IP地址、所屬工作組、物理(MAC)地址、加入時間等內(nèi)容。網(wǎng)絡(luò)節(jié)點的在線監(jiān)控情況如圖3所示。
[align=center]
圖3 網(wǎng)絡(luò)節(jié)點狀態(tài)監(jiān)控圖[/align]
4 實例應(yīng)用
中南大學(xué)信息科學(xué)與工程學(xué)院的過程控制實驗室有三套模擬工業(yè)現(xiàn)場的試驗系統(tǒng):壓力控制系統(tǒng)、溫度控制系統(tǒng)、液位控制系統(tǒng)。我們應(yīng)用上位機、數(shù)據(jù)庫服務(wù)器和智能控制器構(gòu)建了一個以太網(wǎng)控制系統(tǒng)。如圖4所示
[align=center]
圖4 工業(yè)以太網(wǎng)實驗系統(tǒng)[/align]
以液位控制系統(tǒng)為例,被控對象為水箱液位。上位機通過組態(tài)控制模塊對智能節(jié)點進行控制算法和控制參數(shù)設(shè)定,將給定量和各參數(shù)傳遞給智能控制器,液位變送器檢測得到氣缸輸出的4-20 mA的電流模擬反饋信號,由數(shù)據(jù)采集卡通過A/D轉(zhuǎn)換成數(shù)字反饋信號輸入智能節(jié)點,再于組態(tài)控制模塊傳遞過來的給定值進行比較得到偏差信號,再根據(jù)從上位機傳遞過來的控制算法程序,計算出控制量,經(jīng)過D/A轉(zhuǎn)換為1-5V的電壓,再經(jīng)過電壓-電流轉(zhuǎn)換成4-20 mA的電流控制信號,控制調(diào)節(jié)閥開度,實現(xiàn)對水箱的液位控制。如圖5為水箱液位初始值為25 cm,給定為70 cm,控制算法為PID控制效果最佳時的試驗曲線,可見該智能節(jié)點能實現(xiàn)對被控對象的有效控制。
[align=center]
圖5 液位系統(tǒng)PID控制曲線[/align]
5 結(jié)論
本文提出了一種基于Visual C++6.0語言的上位機網(wǎng)絡(luò)監(jiān)控組態(tài)管理系統(tǒng)的軟件設(shè)計方法以及實現(xiàn)情況,它把基于現(xiàn)場智能節(jié)點控制級、上位監(jiān)控及網(wǎng)絡(luò)管理級、遠程監(jiān)控級三層體系結(jié)構(gòu)運用于工業(yè)以太網(wǎng)控制系統(tǒng)中,并結(jié)合一個具體的網(wǎng)絡(luò)監(jiān)控系統(tǒng)說明了這種設(shè)計方法的運用。隨著企業(yè)信息化程度要求的不斷提高,相關(guān)技術(shù)的不斷成熟,工業(yè)以太網(wǎng)體系結(jié)構(gòu)在企業(yè)的信息化建設(shè)中必將起到越來越重要的作用。
參考文獻
[1] 徐皚冬, 王宏, 楊志家. 基于以太網(wǎng)的工業(yè)控制網(wǎng)絡(luò)[J]. 信息與控制, 2000, 29 (2): 182-185
[2] 王鋒, 王滔, 季曉勇. 一種嵌入式Linux平臺的軟硬件設(shè)計[J]. 電子技術(shù)應(yīng)用, 2003,6(2)13-15
[3] 胡波, 吳敏. 基于Java的網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計及應(yīng)用[J]. 計算機應(yīng)用研究, 2003,4 (7): 138-140
[4] 賈明, 嚴世賢. Linux下的C編程. 北京: 人民郵電出版社[M], 2001
[5] 李廷軍, 周正歐. 嵌入式網(wǎng)絡(luò)設(shè)備的MAC及IP地址設(shè)置[J]. 單片機與嵌入式系統(tǒng)用,2004,4(2):16-19