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

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

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

圖3 網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)監(jiān)控圖[/align]
4 實(shí)例應(yīng)用
中南大學(xué)信息科學(xué)與工程學(xué)院的過(guò)程控制實(shí)驗(yàn)室有三套模擬工業(yè)現(xiàn)場(chǎng)的試驗(yàn)系統(tǒng):壓力控制系統(tǒng)、溫度控制系統(tǒng)、液位控制系統(tǒng)。我們應(yīng)用上位機(jī)、數(shù)據(jù)庫(kù)服務(wù)器和智能控制器構(gòu)建了一個(gè)以太網(wǎng)控制系統(tǒng)。如圖4所示
[align=center]

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

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