《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 一種基于嵌入式Internet的控制系統(tǒng)

一種基于嵌入式Internet的控制系統(tǒng)

2009-03-03
作者:徐毓軍 楊佃福

  摘? 要: 嵌入式Internet技術(shù)被廣泛應用于現(xiàn)場儀表和工業(yè)設備層是工業(yè)控制網(wǎng)絡的發(fā)展趨勢。介紹了一種基于該技術(shù)的控制系統(tǒng)的軟、硬件構(gòu)成以及基于嵌入式Internet實現(xiàn)的一些細節(jié)問題,并說明了其意義和市場前景。?

  關(guān)鍵詞:? 嵌入式Internet? 現(xiàn)場總線? 以太網(wǎng)? 控制系統(tǒng)?

?

  今天,計算機和網(wǎng)絡已經(jīng)進入后PC時代,嵌入式系統(tǒng)被廣泛應用。最近在IT行業(yè)特別流行的就是嵌入式操作系統(tǒng),如Windows CE和一些公司用Linux開發(fā)的嵌入式操作系統(tǒng)。還有一些公司提供了易于開發(fā)、性價比較高的嵌入式開發(fā)工具。它們一般都支持TCP/IP協(xié)議,可以實現(xiàn)Web 服務器功能。家電和儀表上網(wǎng)是嵌入式系統(tǒng)極大發(fā)展的動力和原因。?

  在現(xiàn)場儀表和工業(yè)設備層應用嵌入式Internet技術(shù)是工業(yè)控制網(wǎng)絡的一個發(fā)展趨勢。與現(xiàn)場總線相比,這些技術(shù)不僅為開發(fā)者提供了大量的工具和函數(shù)庫,而且沒有傳統(tǒng)的客戶端,減少了二次開發(fā)的工作量;完全實現(xiàn)了分布式的系統(tǒng)結(jié)構(gòu),系統(tǒng)可靠性大大提高;另外,以太網(wǎng)一般都基于TCP/IP協(xié)議,使得整個網(wǎng)絡只有一種底層通訊協(xié)議,可以滿足控制系統(tǒng)各個層次的要求,不僅使得企業(yè)信息網(wǎng)絡和控制網(wǎng)絡得到統(tǒng)一,而且易于和Internet實現(xiàn)無縫連接;通過Web瀏覽器,用戶可以在任何時候、任何地方監(jiān)控現(xiàn)場數(shù)據(jù)和設備,還可以在遠方對現(xiàn)場設備進行診斷和軟件升級[1~2]。?

1 系統(tǒng)構(gòu)成和功能?

  整個系統(tǒng)的結(jié)構(gòu)如圖1所示。該系統(tǒng)包括數(shù)據(jù)庫服務器、Web服務器、Internet 客戶端和現(xiàn)場節(jié)點。?

?

?

  服務器包括數(shù)據(jù)庫服務器和Web 服務器,它們并不是必需的??紤]到某些工業(yè)企業(yè)要求存放大量的歷史數(shù)據(jù),并且要和管理信息系統(tǒng)交換數(shù)據(jù),在設計時我們把它們加入了系統(tǒng)。它們可以是在兩臺機器上,當系統(tǒng)規(guī)模比較小時,也可以在一臺PC機上。在軟件上,數(shù)據(jù)庫服務器實現(xiàn)了與現(xiàn)場節(jié)點的Socket通訊,并通過VC編的應用程序?qū)崿F(xiàn)了各種高級的控制功能塊。用戶可以在網(wǎng)頁上通過Web服務器利用Java Applet和Java Beans組件技術(shù)監(jiān)控實時數(shù)據(jù),并且可以通過JSP和JDBC技術(shù)修改系統(tǒng)的組態(tài)信息。本文重點介紹現(xiàn)場節(jié)點(嵌入式系統(tǒng))的軟硬件構(gòu)成及其Internet功能實現(xiàn)的細節(jié)。?

2 現(xiàn)場節(jié)點的軟硬件構(gòu)成?

  現(xiàn)場節(jié)點包括傳感器、執(zhí)行機構(gòu)或其它智能儀表,也可以是控制器。而這種控制器可以通過RS485、開關(guān)量或模擬量信號和儀表相連。它們都嵌入了美國Z_WORLD公司的RCM2100系列嵌入式開發(fā)系統(tǒng)(我們不選用嵌入式操作系統(tǒng)首先是出于成本的考慮,帶有TCP/IP協(xié)議庫和Web 服務器功能的實時操作系統(tǒng)報價一般都要700~800美元以上)。事實上在很多場合并不需要帶有這么強大功能的實時操作系統(tǒng)。很多嵌入式系統(tǒng)的核心都由8位微處理器硬件和嵌入式軟件構(gòu)成,這些微處理器的片內(nèi)資源比較少,相應的軟件也不會太龐大,完全可以完成一些簡單的網(wǎng)絡通訊和控制功能。?

  該開發(fā)板的硬件組成如圖2所示。它由5V直流供電,溫度范圍為-40~70℃,濕度可以達到5~95%RH,非常適合于工業(yè)控制的要求。它集成了速度達30MHz的Rabbit 2000微處理器、512K Flash RAM、512K SRAM和RJ-45以太網(wǎng)接口。它有5個8位并行接口,其中D口和E口的一部分用于和Realtek的以太網(wǎng)卡控制芯片相連;C口預留出來,可以用于RS485或RS232串行通訊。在原開發(fā)板基礎上,把應用程序放在Flash RAM里,其它要經(jīng)常修改的參數(shù)和實時數(shù)據(jù)放在SRAM里,加入I/O采集的硬件電路和總線相連,然后利用該公司的Dynamic C開發(fā)包就可以方便地開發(fā)出自己的帶Web服務器功能的智能儀表。另外Z_WORLD公司本身還在此基礎上開發(fā)出了一系列PLC模塊和遠程I/O模塊,可供選用[3]。?

?

?

  Dynamic C是一個嵌入式軟件開發(fā)語言,符合ASCII C標準,提供了編譯、調(diào)試、仿真和程序加載功能。與一般的C語言不一樣的是,它在語言和函數(shù)上都是為嵌入式系統(tǒng)開發(fā)考慮的,如方便地支持對I/O口的操作、包含一個底層的BIOS庫、在一個程序內(nèi)支持多進程、支持中斷服務和匯編語言的嵌入、支持函數(shù)鏈等。并且提供了一系列函數(shù)和宏來支持嵌入式系統(tǒng),支持串口通訊和網(wǎng)絡操作,包括TCP/IP、Http、Telnet和Ftp協(xié)議,支持CGI(Comm Gateway Interface) ,即公共網(wǎng)關(guān)接口,可以方便地與硬件打交道并實現(xiàn)Web服務器功能。該設備上的軟件結(jié)構(gòu)可參見圖1的相關(guān)部分,包括對現(xiàn)場I/O數(shù)據(jù)的采集、利用Socket與數(shù)據(jù)庫服務器進行通訊、實現(xiàn)與控制計算有關(guān)的一些功能塊、提供Web服務器功能這四個主要模塊。?

  數(shù)據(jù)采集模塊可以直接讀寫I/O,也可以通過串口通訊取得數(shù)據(jù),將數(shù)據(jù)放入指定的文件供Java Applet訪問。在與服務器通訊方面,我們利用其提供的TCP/IP開發(fā)包所帶的宏和函數(shù)與服務器進行比較可靠的通訊,通過宏MY_IPADRESS,MY_GATEWAY和MY_NETMASK可以對網(wǎng)絡配置,進行Socket通訊。定義功能塊主要包括用戶名和密碼權(quán)限管理、各種輸入輸出量定義和報警、設備管理、計算功能、PID調(diào)節(jié)和其它一些先進的控制功能塊,其定義可以通過數(shù)據(jù)庫服務器或者網(wǎng)頁進行組態(tài)和修改[4~5]。?

3 嵌入式Internet的實現(xiàn)?

  嵌入式Internet(這里主要指Web服務器)功能塊主要是通過CGI程序來獲取用戶的請求、查詢條件并利用應用程序為其提供的后臺服務,結(jié)果使用HTML方式描述,并直接回送到客戶端的瀏覽器。CGI是Web服務器在調(diào)用外部程序時的接口規(guī)范協(xié)議,它規(guī)定了一套標準的參數(shù)格式和環(huán)境變量,擴展Web服務器的功能,使之能夠執(zhí)行一些Web服務器本身不能完成的任務,如與各類應用服務器通訊、訪問數(shù)據(jù)庫等。這里我們通過CGI和HTML Form機制可以從瀏覽器中得到用戶組態(tài)和控制輸出等簡單操作的輸入信息。作為Web服務器外部進程運行的CGI程序與Web服務器之間的通訊屬于進程間通信,開銷大、速度低;當有多份并發(fā)的同樣請求時,必須為每個請求建立一個進程;若Web服務器重復收到多個同樣的請求,必須不斷重復準備地址空間、建立運行進程、回收空間、撤銷進程的過程。因此與當前流行的ASP、JSP和PHP方式比起來,CGI方式的進程本質(zhì)上效率不高。Dynamic C只支持CGI,但考慮到工業(yè)控制的實際情況,不會有大量請求同時并發(fā),因此CGI完全可以滿足要求。?

  我們還使用了Java Applet技術(shù),在客戶端實現(xiàn)更為友好的交互式顯示模式并提供實時數(shù)據(jù)。圖3給出了Web服務器功能塊在客戶端實現(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)生成的,這樣就可以實現(xiàn)訪問的安全控制,只有合法的用戶才能進入主畫面來生成需要的網(wǎng)頁。一些網(wǎng)站Email用戶認證也是通過這種方式實現(xiàn)的。與工業(yè)控制相適應,我們可以動態(tài)生成開關(guān)量輸入輸出、模擬量輸入輸出、PID模塊配置、實時趨勢、實時報警和棒圖等頁面。另外所有輸出和用戶參數(shù)設置也是通過再次調(diào)用后臺的CGI程序進行處理,將其寫入文件或直接作用于執(zhí)行機構(gòu),然后重新生成新的網(wǎng)頁來實現(xiàn)。用戶在進行具體工程應用的時候,也只要將實際工程的參數(shù)在此基礎上進行組態(tài)就可以。?

  我們通過嵌在發(fā)送到客戶端的HTML語言里并在客戶端執(zhí)行的Java Applet程序訪問該現(xiàn)場結(jié)點文件,來刷新實時數(shù)據(jù),這樣通過Java語言可以在網(wǎng)頁上提供質(zhì)量比較高的畫面。Java Applet的類文件放在Flash RAM里,設備斷電后不會丟失。而實時采集的數(shù)據(jù)要以文件的形式放在SRAM里,供Applet 程序訪問。我們將不同類型的參數(shù)分別放在相應的文件里。對于前者,可以在PC機上先編譯好,然后在編譯Dynamic程序時加載到設備的文件系統(tǒng)中去,如#ximport samples/http/pages/ailist.class就把Applet類放到了設備中。而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)存,對文件進行讀寫。?

  現(xiàn)場總線設備昂貴,這種系統(tǒng)在價格上完全有優(yōu)勢,在智能家居和樓宇自動化方面將會有一定的市場;同時它也是一些遠程監(jiān)控的很好的選擇方案,特別是儀表上網(wǎng)的功能具有相當大的吸引力。制定國內(nèi)的工業(yè)以太網(wǎng)標準和研發(fā)類似系統(tǒng)已被列入“十五“計劃。相信隨著寬帶網(wǎng)應用在國內(nèi)的升溫和企業(yè)對信息集成度要求的提高,其應用前景會更好。?

參考文獻?

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 王錦標.過程計算機控制.北京:清華大學出版社,1992?

5 柴廷躍.應用軟件系統(tǒng)分析.北京:清華大學出版社, 2000
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。