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