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