摘? 要: 嵌入式Internet技術(shù)被廣泛應(yīng)用于現(xiàn)場儀表和工業(yè)設(shè)備層是工業(yè)控制網(wǎng)絡(luò)的發(fā)展趨勢,。介紹了一種基于該技術(shù)的控制系統(tǒng)的軟,、硬件構(gòu)成以及基于嵌入式Internet實(shí)現(xiàn)的一些細(xì)節(jié)問題,并說明了其意義和市場前景,。?
關(guān)鍵詞:? 嵌入式Internet? 現(xiàn)場總線? 以太網(wǎng)? 控制系統(tǒng)?
?
今天,計(jì)算機(jī)和網(wǎng)絡(luò)已經(jīng)進(jìn)入后PC時代,,嵌入式系統(tǒng)被廣泛應(yīng)用,。最近在IT行業(yè)特別流行的就是嵌入式操作系統(tǒng),如Windows CE和一些公司用Linux開發(fā)的嵌入式操作系統(tǒng)。還有一些公司提供了易于開發(fā),、性價比較高的嵌入式開發(fā)工具,。它們一般都支持TCP/IP協(xié)議,可以實(shí)現(xiàn)Web 服務(wù)器功能,。家電和儀表上網(wǎng)是嵌入式系統(tǒng)極大發(fā)展的動力和原因,。?
在現(xiàn)場儀表和工業(yè)設(shè)備層應(yīng)用嵌入式Internet技術(shù)是工業(yè)控制網(wǎng)絡(luò)的一個發(fā)展趨勢。與現(xiàn)場總線相比,這些技術(shù)不僅為開發(fā)者提供了大量的工具和函數(shù)庫,,而且沒有傳統(tǒng)的客戶端,減少了二次開發(fā)的工作量;完全實(shí)現(xiàn)了分布式的系統(tǒng)結(jié)構(gòu),系統(tǒng)可靠性大大提高;另外,以太網(wǎng)一般都基于TCP/IP協(xié)議,,使得整個網(wǎng)絡(luò)只有一種底層通訊協(xié)議,可以滿足控制系統(tǒng)各個層次的要求,,不僅使得企業(yè)信息網(wǎng)絡(luò)和控制網(wǎng)絡(luò)得到統(tǒng)一,,而且易于和Internet實(shí)現(xiàn)無縫連接;通過Web瀏覽器,用戶可以在任何時候,、任何地方監(jiān)控現(xiàn)場數(shù)據(jù)和設(shè)備,還可以在遠(yuǎn)方對現(xiàn)場設(shè)備進(jìn)行診斷和軟件升級[1~2],。?
1 系統(tǒng)構(gòu)成和功能?
整個系統(tǒng)的結(jié)構(gòu)如圖1所示。該系統(tǒng)包括數(shù)據(jù)庫服務(wù)器,、Web服務(wù)器,、Internet 客戶端和現(xiàn)場節(jié)點(diǎn)。?
?
?
服務(wù)器包括數(shù)據(jù)庫服務(wù)器和Web 服務(wù)器,它們并不是必需的,??紤]到某些工業(yè)企業(yè)要求存放大量的歷史數(shù)據(jù),并且要和管理信息系統(tǒng)交換數(shù)據(jù),在設(shè)計(jì)時我們把它們加入了系統(tǒng)。它們可以是在兩臺機(jī)器上,當(dāng)系統(tǒng)規(guī)模比較小時,也可以在一臺PC機(jī)上,。在軟件上,數(shù)據(jù)庫服務(wù)器實(shí)現(xiàn)了與現(xiàn)場節(jié)點(diǎn)的Socket通訊,并通過VC編的應(yīng)用程序?qū)崿F(xiàn)了各種高級的控制功能塊,。用戶可以在網(wǎng)頁上通過Web服務(wù)器利用Java Applet和Java Beans組件技術(shù)監(jiān)控實(shí)時數(shù)據(jù),并且可以通過JSP和JDBC技術(shù)修改系統(tǒng)的組態(tài)信息。本文重點(diǎn)介紹現(xiàn)場節(jié)點(diǎn)(嵌入式系統(tǒng))的軟硬件構(gòu)成及其Internet功能實(shí)現(xiàn)的細(xì)節(jié),。?
2 現(xiàn)場節(jié)點(diǎn)的軟硬件構(gòu)成?
現(xiàn)場節(jié)點(diǎn)包括傳感器,、執(zhí)行機(jī)構(gòu)或其它智能儀表,也可以是控制器,。而這種控制器可以通過RS485、開關(guān)量或模擬量信號和儀表相連,。它們都嵌入了美國Z_WORLD公司的RCM2100系列嵌入式開發(fā)系統(tǒng)(我們不選用嵌入式操作系統(tǒng)首先是出于成本的考慮,帶有TCP/IP協(xié)議庫和Web 服務(wù)器功能的實(shí)時操作系統(tǒng)報(bào)價一般都要700~800美元以上),。事實(shí)上在很多場合并不需要帶有這么強(qiáng)大功能的實(shí)時操作系統(tǒng)。很多嵌入式系統(tǒng)的核心都由8位微處理器硬件和嵌入式軟件構(gòu)成,,這些微處理器的片內(nèi)資源比較少,,相應(yīng)的軟件也不會太龐大,完全可以完成一些簡單的網(wǎng)絡(luò)通訊和控制功能。?
該開發(fā)板的硬件組成如圖2所示,。它由5V直流供電,,溫度范圍為-40~70℃,濕度可以達(dá)到5~95%RH,,非常適合于工業(yè)控制的要求,。它集成了速度達(dá)30MHz的Rabbit 2000微處理器、512K Flash RAM,、512K SRAM和RJ-45以太網(wǎng)接口,。它有5個8位并行接口,其中D口和E口的一部分用于和Realtek的以太網(wǎng)卡控制芯片相連;C口預(yù)留出來,可以用于RS485或RS232串行通訊。在原開發(fā)板基礎(chǔ)上,,把應(yīng)用程序放在Flash RAM里,其它要經(jīng)常修改的參數(shù)和實(shí)時數(shù)據(jù)放在SRAM里,加入I/O采集的硬件電路和總線相連,然后利用該公司的Dynamic C開發(fā)包就可以方便地開發(fā)出自己的帶Web服務(wù)器功能的智能儀表,。另外Z_WORLD公司本身還在此基礎(chǔ)上開發(fā)出了一系列PLC模塊和遠(yuǎn)程I/O模塊,可供選用[3]。?
?
?
Dynamic C是一個嵌入式軟件開發(fā)語言,,符合ASCII C標(biāo)準(zhǔn),,提供了編譯、調(diào)試,、仿真和程序加載功能,。與一般的C語言不一樣的是,它在語言和函數(shù)上都是為嵌入式系統(tǒng)開發(fā)考慮的,如方便地支持對I/O口的操作、包含一個底層的BIOS庫,、在一個程序內(nèi)支持多進(jìn)程,、支持中斷服務(wù)和匯編語言的嵌入、支持函數(shù)鏈等,。并且提供了一系列函數(shù)和宏來支持嵌入式系統(tǒng),,支持串口通訊和網(wǎng)絡(luò)操作,包括TCP/IP,、Http,、Telnet和Ftp協(xié)議,支持CGI(Comm Gateway Interface) ,,即公共網(wǎng)關(guān)接口,,可以方便地與硬件打交道并實(shí)現(xiàn)Web服務(wù)器功能。該設(shè)備上的軟件結(jié)構(gòu)可參見圖1的相關(guān)部分,包括對現(xiàn)場I/O數(shù)據(jù)的采集、利用Socket與數(shù)據(jù)庫服務(wù)器進(jìn)行通訊,、實(shí)現(xiàn)與控制計(jì)算有關(guān)的一些功能塊,、提供Web服務(wù)器功能這四個主要模塊。?
數(shù)據(jù)采集模塊可以直接讀寫I/O,也可以通過串口通訊取得數(shù)據(jù),將數(shù)據(jù)放入指定的文件供Java Applet訪問,。在與服務(wù)器通訊方面,我們利用其提供的TCP/IP開發(fā)包所帶的宏和函數(shù)與服務(wù)器進(jìn)行比較可靠的通訊,通過宏MY_IPADRESS,,MY_GATEWAY和MY_NETMASK可以對網(wǎng)絡(luò)配置,進(jìn)行Socket通訊。定義功能塊主要包括用戶名和密碼權(quán)限管理,、各種輸入輸出量定義和報(bào)警、設(shè)備管理,、計(jì)算功能,、PID調(diào)節(jié)和其它一些先進(jìn)的控制功能塊,其定義可以通過數(shù)據(jù)庫服務(wù)器或者網(wǎng)頁進(jìn)行組態(tài)和修改[4~5]。?
3 嵌入式Internet的實(shí)現(xiàn)?
嵌入式Internet(這里主要指Web服務(wù)器)功能塊主要是通過CGI程序來獲取用戶的請求,、查詢條件并利用應(yīng)用程序?yàn)槠涮峁┑暮笈_服務(wù),結(jié)果使用HTML方式描述,并直接回送到客戶端的瀏覽器,。CGI是Web服務(wù)器在調(diào)用外部程序時的接口規(guī)范協(xié)議,它規(guī)定了一套標(biāo)準(zhǔn)的參數(shù)格式和環(huán)境變量,擴(kuò)展Web服務(wù)器的功能,,使之能夠執(zhí)行一些Web服務(wù)器本身不能完成的任務(wù),,如與各類應(yīng)用服務(wù)器通訊、訪問數(shù)據(jù)庫等,。這里我們通過CGI和HTML Form機(jī)制可以從瀏覽器中得到用戶組態(tài)和控制輸出等簡單操作的輸入信息,。作為Web服務(wù)器外部進(jìn)程運(yùn)行的CGI程序與Web服務(wù)器之間的通訊屬于進(jìn)程間通信,開銷大,、速度低;當(dāng)有多份并發(fā)的同樣請求時,,必須為每個請求建立一個進(jìn)程;若Web服務(wù)器重復(fù)收到多個同樣的請求,必須不斷重復(fù)準(zhǔn)備地址空間,、建立運(yùn)行進(jìn)程,、回收空間、撤銷進(jìn)程的過程,。因此與當(dāng)前流行的ASP,、JSP和PHP方式比起來,CGI方式的進(jìn)程本質(zhì)上效率不高。Dynamic C只支持CGI,但考慮到工業(yè)控制的實(shí)際情況,不會有大量請求同時并發(fā),因此CGI完全可以滿足要求,。?
我們還使用了Java Applet技術(shù),在客戶端實(shí)現(xiàn)更為友好的交互式顯示模式并提供實(shí)時數(shù)據(jù),。圖3給出了Web服務(wù)器功能塊在客戶端實(shí)現(xiàn)的層次結(jié)構(gòu)。?
?
?
在Dynamic C里,通過結(jié)構(gòu) HTTPSPEC_FUNCTION將每一個CGI請求和特定的用戶自定義函數(shù)聯(lián)系起來,。我們可以在函數(shù)里處理CGI請求,具體地說,所有的網(wǎng)頁都是通過這些自定義函數(shù)調(diào)用系統(tǒng)的cgi_sendstring函數(shù)來動態(tài)生成的,這樣就可以實(shí)現(xiàn)訪問的安全控制,只有合法的用戶才能進(jìn)入主畫面來生成需要的網(wǎng)頁,。一些網(wǎng)站Email用戶認(rèn)證也是通過這種方式實(shí)現(xiàn)的。與工業(yè)控制相適應(yīng),我們可以動態(tài)生成開關(guān)量輸入輸出,、模擬量輸入輸出,、PID模塊配置、實(shí)時趨勢、實(shí)時報(bào)警和棒圖等頁面,。另外所有輸出和用戶參數(shù)設(shè)置也是通過再次調(diào)用后臺的CGI程序進(jìn)行處理,將其寫入文件或直接作用于執(zhí)行機(jī)構(gòu),然后重新生成新的網(wǎng)頁來實(shí)現(xiàn),。用戶在進(jìn)行具體工程應(yīng)用的時候,也只要將實(shí)際工程的參數(shù)在此基礎(chǔ)上進(jìn)行組態(tài)就可以。?
我們通過嵌在發(fā)送到客戶端的HTML語言里并在客戶端執(zhí)行的Java Applet程序訪問該現(xiàn)場結(jié)點(diǎn)文件,來刷新實(shí)時數(shù)據(jù),這樣通過Java語言可以在網(wǎng)頁上提供質(zhì)量比較高的畫面,。Java Applet的類文件放在Flash RAM里,,設(shè)備斷電后不會丟失。而實(shí)時采集的數(shù)據(jù)要以文件的形式放在SRAM里,,供Applet 程序訪問,。我們將不同類型的參數(shù)分別放在相應(yīng)的文件里。對于前者,,可以在PC機(jī)上先編譯好,,然后在編譯Dynamic程序時加載到設(shè)備的文件系統(tǒng)中去,如#ximport samples/http/pages/ailist.class就把Applet類放到了設(shè)備中,。而ailist_class代表該文件的首物理地址,,是一個長整型數(shù),我們可以通過該地址方便地訪問文件,。對于后者我們可以先用xalloc函數(shù)開辟一段內(nèi)存地址,,并返回其首址;然后用sspec_addxmemfile(char* name, long fileloc,, word servermask)就可將文件名和內(nèi)存地址聯(lián)系起來,。fileloc是首址,其開始的4個字節(jié)是一個長整型數(shù),用來表明文件的長度;name是文件名;然后利用xmem2root函數(shù)和root2xmem函數(shù)就可以方便地訪問內(nèi)存,對文件進(jìn)行讀寫,。?
現(xiàn)場總線設(shè)備昂貴,,這種系統(tǒng)在價格上完全有優(yōu)勢,在智能家居和樓宇自動化方面將會有一定的市場;同時它也是一些遠(yuǎn)程監(jiān)控的很好的選擇方案,特別是儀表上網(wǎng)的功能具有相當(dāng)大的吸引力。制定國內(nèi)的工業(yè)以太網(wǎng)標(biāo)準(zhǔn)和研發(fā)類似系統(tǒng)已被列入“十五“計(jì)劃,。相信隨著寬帶網(wǎng)應(yīng)用在國內(nèi)的升溫和企業(yè)對信息集成度要求的提高,,其應(yīng)用前景會更好。?
參考文獻(xiàn)?
1 Ohan Sakinnan.Integrate Internet Solutions into Your Energy Management Network. IEEE,, 1998. 3?
2 Aacck W.Szymensky.Embedded Internet Technology in Process Control Device. IEEE,, 2000.9?
3 Dynamic C TCP/IP 7.04T Dev Kit Docs.Z-World Inc.,1998?
4 王錦標(biāo).過程計(jì)算機(jī)控制.北京:清華大學(xué)出版社,,1992?
5 柴廷躍.應(yīng)用軟件系統(tǒng)分析.北京:清華大學(xué)出版社,, 2000