引言
隨著各個企業(yè)安全意識的增強(qiáng)以及現(xiàn)代化管理水平的提高,對分布式環(huán)境的遠(yuǎn)程測控在工業(yè)控制系統(tǒng)中得到了越來越廣泛的應(yīng)用。傳統(tǒng)的監(jiān)測系統(tǒng)多為遠(yuǎn)程監(jiān)控主機(jī)通過傳輸網(wǎng)絡(luò)與代理服務(wù)器進(jìn)行數(shù)據(jù)交互,此種方式需要額外的數(shù)據(jù)采集和控制設(shè)備負(fù)責(zé)現(xiàn)場設(shè)備的數(shù)據(jù)采集以及把采集到的實時數(shù)據(jù)發(fā)送給代理服務(wù)器,適應(yīng)性較差,內(nèi)部網(wǎng)數(shù)據(jù)傳輸速率不高,影響遠(yuǎn)程監(jiān)控的實時性,而且當(dāng)代理服務(wù)器出現(xiàn)故障時,遠(yuǎn)程監(jiān)控主機(jī)將對所有的現(xiàn)場設(shè)備失去監(jiān)視和控制,可靠度不高。因此,筆作提出了一種基于嵌人式技術(shù)的遠(yuǎn)程集中測控系統(tǒng),它將嵌人式技術(shù)、無線通信技術(shù)和自動控制技術(shù)有機(jī)地結(jié)合起來,采用嵌人式硬件平臺和無線通信模塊,不需要額外的數(shù)據(jù)采集和控制設(shè)備。該系統(tǒng)實時性強(qiáng)、可靠性高、結(jié)構(gòu)小巧、開發(fā)費用低廉,更適用于現(xiàn)代工業(yè)測控系統(tǒng)川。
1、系統(tǒng)總體設(shè)計方案
嵌人式遠(yuǎn)程測控系統(tǒng)實現(xiàn)方案如圖1所示。系統(tǒng)由客戶端瀏覽器,嵌人式服務(wù)器平臺,現(xiàn)場測控模塊3部分組成。客戶端瀏覽器是運行在桌面計算機(jī)中的通用瀏覽器應(yīng)用程序,嵌入式服務(wù)器是以S3 C4510B芯片為核心組建的網(wǎng)絡(luò)服務(wù)平臺,現(xiàn)場測控模塊是以MCS-51單片機(jī)為核心構(gòu)成的測控執(zhí)行部件。其中嵌人式服務(wù)器平臺是系統(tǒng)的核心部件。負(fù)責(zé)對現(xiàn)場設(shè)備進(jìn)行測控數(shù)據(jù)的采集、存儲、轉(zhuǎn)發(fā)及與遠(yuǎn)程客戶端瀏覽器的數(shù)據(jù)交互。
圖1 嵌入式遠(yuǎn)程集中剛控系統(tǒng)實現(xiàn)方案
本方案中,服務(wù)器采用嵌人式硬件平臺,基于uClinux操作系統(tǒng)系統(tǒng),建立嵌人式Web服務(wù)器和分布式現(xiàn)場的測控應(yīng)用程序。測控應(yīng)用程序通過驅(qū)動無線模塊,以主動輪詢方式實現(xiàn)嵌人式平臺與和分布式測控設(shè)備之間的通信。現(xiàn)場測控模塊負(fù)責(zé)對測控應(yīng)用程序發(fā)出命令進(jìn)行響應(yīng),以完成分布式現(xiàn)場的數(shù)據(jù)采集和控制動作執(zhí)行。
通過公共網(wǎng)關(guān)接口CGI ( Common Gateway Interface)實現(xiàn)嵌人式Web服務(wù)器和分布式現(xiàn)場的測控應(yīng)用程序接口。CGI可以使編寫的程序處理WWW上客戶端送來的表單和數(shù)據(jù),并對此做出響應(yīng),可使編寫的程序和Web服務(wù)器間的接口標(biāo)準(zhǔn)化。
嵌人式服務(wù)器正常工作往往要引人文件系統(tǒng),uClinux操作系統(tǒng)提供了很好的文件系統(tǒng);同時利用uClinux操作系統(tǒng)自身所帶的TCP/IP ( Transport Control Protocol/Internet Protocol)協(xié)議棧,只要在應(yīng)用層上利用操作系統(tǒng)提供的網(wǎng)絡(luò)API ( Application Programming Interface)編寫服務(wù)器端程序即可,大大節(jié)省了開發(fā)時間。
2、系統(tǒng)硬件設(shè)計
對于一個嵌入式系統(tǒng)而言,硬件系統(tǒng)設(shè)計相當(dāng)重要,一方面要考慮所選擇的器件是否適合應(yīng)用要求,硬件資源是否足夠用來編程調(diào)試并保證系統(tǒng)性能優(yōu)良;另一方面硬件資源要在滿足系統(tǒng)需求前提下盡可能降低成本。基于S3 C4510B核心芯片擴(kuò)展了必要的Flash , SDRAM ( Synchronous Dynamic Random Access Memory)以及網(wǎng)絡(luò)接口和無線通信接日模塊。
網(wǎng)絡(luò)傳輸接口由以太網(wǎng)物理層接口器DM9161、網(wǎng)絡(luò)隔離變壓器FC一巧岱和RJ45接口組成。本系統(tǒng)沒有單獨使用以太網(wǎng)控制器,因為S3C4510B內(nèi)嵌一個以太網(wǎng)控制器支持媒體獨立接口(MII:Media Independent Interface)和帶緩沖DMA接口(BDI:Buffered DMA Interface),可在半雙工或全雙工模式下提供10 /100 Mbit/s的以太網(wǎng)接人。在全雙工模式下支持IEEE802. 3 MAC ( Media Access Control)層協(xié)議。DM9161完成物理層及數(shù)據(jù)發(fā)送/接收功能,支持100BaseT和lOBaseT網(wǎng)絡(luò)。由于S3C4510B片內(nèi)已有帶MII接口的MAC控制器,DM9161也提供了MII接口,各種信號的定義也很明確,因此DM9161與S3 C4510的連接較簡單。信號發(fā)送和接收端應(yīng)通過網(wǎng)絡(luò)隔離變壓器FC-S15IS和RJ45接口接人傳輸媒質(zhì)。
數(shù)據(jù)通信采用無線數(shù)傳Modem模塊PTR2Q00完成。該器件是業(yè)界倍受推崇的一款無線數(shù)傳產(chǎn)品。它將數(shù)據(jù)的接收和發(fā)射合為一體;采用FSK調(diào)制/解調(diào)技術(shù),可直接進(jìn)行數(shù)據(jù)輸入/輸出,抗干擾能力強(qiáng);采用DDS(直接數(shù)據(jù)合成)十PLL(Phase-Locked Lo叩)頻率合成技術(shù);頻率穩(wěn)定性極好;其工作頻率穩(wěn)定可靠、外圍元件少、功耗極低且便于設(shè)計生產(chǎn)。另外,由于它采用了低發(fā)射功率、高靈敏度設(shè)計,因而可滿足無線管制的要求且無需使用許可證,是目前低功率無線數(shù)傳的理想選擇。利用S3 C4510B芯片的GPIO控制PTR2001〕的D0, DI和TXEN引腳,并通過對GPIO高低電平的設(shè)置來控制TXEN從而實現(xiàn)收發(fā)轉(zhuǎn)換岡,通過驅(qū)動GPIO(General-Purpose UO Port)模擬PTR2000的DO及DI收發(fā)時序,遵循多機(jī)通信協(xié)議,即可完成主動方式的數(shù)據(jù)通信。
此外,在設(shè)備現(xiàn)場,可利用MSC-51系列單片機(jī)控制PTR2000完成現(xiàn)場測控模塊的功能(其中包括無線信道的建立)。MSC-51的TTL電平與YTR2000的TTL電平相同,可直接將PTR2000的DO和DI與MSC-51的RXD和TXD相連。如圖2所示,現(xiàn)場測控的MSC-51和PTR2000的連接電路示意圖,把MSC-51的Pl. 7和PTR2000的TXEN相連,以控制模塊的發(fā)射控制、頻道轉(zhuǎn)換和低功耗模式。
圖2 現(xiàn)場測控MSC-51和PTR2000連接電路示意圖
3、軟件程序?qū)崿F(xiàn)
本設(shè)計的軟件程序編寫涉及到很多關(guān)鍵技術(shù),包括嵌人式HTTP(Hypertext Transfer Protocol)服務(wù)器、公共網(wǎng)關(guān)接口CGI , HTML和Java Applet技術(shù)以及在Linux下的進(jìn)程間通信。嵌人式HTTP服務(wù)器是建立在客戶端/服務(wù)器端模式下的,由守護(hù)進(jìn)程偵聽80端口提供服務(wù),對嵌人式HTTP服務(wù)器而言,瀏覽器就是客戶端。在類linux下建立嵌人式HTTP服務(wù)器涉及到網(wǎng)絡(luò)Socket編程,Socket利用客戶端/服務(wù)器端模式在進(jìn)程之間建立通信連接。對嵌入式HTTP服務(wù)器而言,服務(wù)被提供時必然存在服務(wù)進(jìn)程和客戶進(jìn)程,它們在通信前又必須創(chuàng)建各自的套接字并建立連接,然后才能對相應(yīng)的套接字進(jìn)行“讀”和“寫”操作,實現(xiàn)數(shù)據(jù)傳輸。
公共網(wǎng)關(guān)接口CGI是建立在HTTP服務(wù)器內(nèi)的一個軟件模塊,它可以執(zhí)行存儲在服務(wù)器上的程序。CGI腳本與HTTP服務(wù)器一起負(fù)責(zé)響應(yīng)客戶請求。HTTP服務(wù)器根據(jù)請求調(diào)用相應(yīng)的CGI程序進(jìn)行處理,最后向客戶端返回處理結(jié)果并結(jié)束交互過程。傳統(tǒng)的純HTML文檔所包含的信息是靜止不動的,而利用CGI腳本則可根據(jù)用戶請求實時運行,并產(chǎn)生動態(tài)信息,具有很高的效率和更大的靈活性。
HTML的實現(xiàn)比較容易,Java Applet相對比較復(fù)雜一點。本系統(tǒng)的Java Applet由圖形界面和網(wǎng)絡(luò)連接交互兩部分組成,當(dāng)然Java Applet的整體運行還是按照J(rèn)ava Applet生命周期(包括3個基本循環(huán):init()、start()和stop())運行的。
對于圖形界面,Java的抽象窗口工具集AWT中包含很多的類,以支持GUI的設(shè)計,建立標(biāo)準(zhǔn)的圖形界面。利用AWT提供的基本組件,設(shè)置按鈕、復(fù)選框、標(biāo)簽、菜單、滾動條和文本區(qū);利用容器組件,創(chuàng)建面板、窗口、框架和對話框等;利用提供的布局管理器(例如F1owLayout、BorderLayout和GridBagLayout ),AWT還提供繪圖方法和事件處理機(jī)制。
本系統(tǒng)還涉及到多個進(jìn)程。例如,無線串口模塊管理進(jìn)程要從串口接收和發(fā)送數(shù)據(jù)和指令,同時還要向CGI進(jìn)程返回測量結(jié)果。這些都必須通過兩個進(jìn)程間的通信實現(xiàn)。在Linux下進(jìn)程間通信的實現(xiàn)方式有信號、管道、System V進(jìn)程間通信(消息隊列、信號燈、共享內(nèi)存)等。
由于老版本的uClinux不支持System V進(jìn)程間通信機(jī)制,可以采用共享文件來實現(xiàn)CGI進(jìn)程與無線串口模塊管理進(jìn)程間的通信。為便于進(jìn)程間的通信,建立文本文件note. txt,無線串口模塊管理進(jìn)程向note. txt寫人從串口傳過來的數(shù)據(jù),CGI進(jìn)程從note. txt讀取數(shù)據(jù)。
但是兩個進(jìn)程對note. txt的訪問是互斥的,即同一時刻最多只能有一個進(jìn)程訪問這個文件。用文件write. lock可以實現(xiàn)互斥訪問,即無線串口模塊管理進(jìn)程在訪問note. txt文件之前先判斷read. lock是否存在,若有則等待,若沒有就先創(chuàng)建write. lock文件鎖,然后就可以打開note. txt文件進(jìn)行訪問,文件訪問完成后刪除文件鎖。同樣,使用read. lock文件鎖可以實現(xiàn)CGI進(jìn)程從note. txt讀取數(shù)據(jù)。
當(dāng)uClinux支持System V進(jìn)程間通信機(jī)制時,一般采用消息隊列、信號量、共享內(nèi)存等。這里采用信號量和共享內(nèi)存共同作用方式。共享內(nèi)存是由IPC為一個進(jìn)程創(chuàng)建的一個特殊的地址范圍,它將出現(xiàn)在進(jìn)程的地址空間中。其他進(jìn)程可把同一段共享內(nèi)存段“連接到”它們自己的地址空間。所有進(jìn)程都可以訪問共享地址。如果一個進(jìn)程向這段共享內(nèi)存寫了數(shù)據(jù),所做的改動會立刻被有權(quán)訪問同一段共享內(nèi)存的其他進(jìn)程看到。共享內(nèi)存本身沒有提供任何同步功能,使用一個信號量在程序的讀、寫這兩部分之間進(jìn)行同步并利用其保護(hù)機(jī)制,防止內(nèi)存的不正確共享的現(xiàn)象。
圖3 嵌入式HTTP服務(wù)器index.html界面
4、測試結(jié)果和結(jié)論
基于上述方案對實現(xiàn)的嵌人式遠(yuǎn)程集中測控系統(tǒng)進(jìn)行了網(wǎng)絡(luò)應(yīng)用測試。測控執(zhí)行部件完成對現(xiàn)場的溫度的采集和顯示設(shè)備的控制等任務(wù)。在瀏覽器URL處輸入:http: //192. 168.0.2/index. html(192. 168. 0. 2是嵌人式HTTP服務(wù)器的IP地址)。嵌人式HTTP服務(wù)器index. html界面如圖3所示。雙擊“嵌人式溫測系統(tǒng)”,出現(xiàn)如圖4所示的Java Applet交互界面。該界面中給出了實際測量的溫度曲線。測試結(jié)果表明,該嵌人式遠(yuǎn)程集中測控系統(tǒng)設(shè)計方案合理,可靠性、實時性和開發(fā)成本優(yōu)于同類相關(guān)技術(shù),同時也為嵌人式系統(tǒng)的網(wǎng)絡(luò)應(yīng)用提供了成功的參考實例。
圖4 Java Applet交互界面
基于嵌人式系統(tǒng)的遠(yuǎn)程集中監(jiān)控系統(tǒng)是數(shù)據(jù)采集、網(wǎng)絡(luò)傳輸、計算機(jī)軟件等多種技術(shù)的綜合應(yīng)用,適用于對遠(yuǎn)端現(xiàn)場環(huán)境進(jìn)行實時監(jiān)控,自動化管理,保障工業(yè)生產(chǎn)的安全穩(wěn)定運行。它不僅具有基本的環(huán)境指標(biāo)監(jiān)測功能,而且通過無線傳輸將控制端和現(xiàn)場設(shè)備連接起來,可在上位計算機(jī)上進(jìn)行集中監(jiān)控以及查詢和統(tǒng)計工作,具有結(jié)構(gòu)靈活、人機(jī)界面好、集現(xiàn)代化控制和管理技術(shù)于一體等優(yōu)點,提高了生產(chǎn)效率。此系統(tǒng)也可以應(yīng)用于其他遠(yuǎn)距離分布式控制場合。