陽仲伯 唐露新 陳輝 賓斌 韓琨 姜曉燕
(廣東工業(yè)大學(xué)信息工程學(xué)院)
許多水廠、水源站的水質(zhì)自動化數(shù)據(jù)采集系統(tǒng)[1],其數(shù)據(jù)采集節(jié)點通常是以單片機為核心,數(shù)據(jù)處理及遠程數(shù)據(jù)傳輸采用PC機或工控機進行,在節(jié)點與主機之間的通信采用RS232、RS485等總線標(biāo)準(zhǔn),利用這種傳統(tǒng)監(jiān)測方式構(gòu)成的網(wǎng)絡(luò)結(jié)構(gòu),存在通信速率低、專業(yè)性強、通信距離短,且工控機價格昂貴、笨重等缺點。這就需要建設(shè)一個穩(wěn)定的、實時的、輕巧的、覆蓋面廣的集數(shù)據(jù)采集、數(shù)據(jù)通信、數(shù)據(jù)分析與處理為一體的水質(zhì)在線監(jiān)測系統(tǒng)來為監(jiān)測部門提供技術(shù)支持。隨著Internet和web技術(shù)的高速發(fā)展,及其在網(wǎng)絡(luò)測控技術(shù)與智能儀器上的應(yīng)用,基于嵌入式web的遠程監(jiān)測在傳統(tǒng)遠程監(jiān)測的基礎(chǔ)上又融合web和嵌入式技術(shù),可提供比傳統(tǒng)遠程監(jiān)測更為強大的功能,將成為今后遠程監(jiān)測技術(shù)發(fā)展的主流方向。
將嵌入式系統(tǒng)應(yīng)用于遠程監(jiān)測系統(tǒng),大大提高了系統(tǒng)的性能,同時降低了成本和功耗,體積也大大減小。在嵌入式操作系統(tǒng)的選擇上,由于Linux有完整開放的源代碼,因而它具有修改和優(yōu)化系統(tǒng)、內(nèi)核穩(wěn)定、適用于多種CPU和多種硬件平臺、支持網(wǎng)絡(luò)等特點。本系統(tǒng)采用基于ARM920T架構(gòu)的嵌入式處理器S3C2410X與Linux構(gòu)成一個嵌入式web服務(wù)器,取代傳統(tǒng)以PC機作為服務(wù)器進行遠程數(shù)據(jù)傳輸,用戶可以隨時隨地通過web瀏覽器監(jiān)測水質(zhì)信息,不僅可以節(jié)省數(shù)據(jù)通信的成本,而且能夠?qū)崿F(xiàn)資源共享。
作為一套完整的在線監(jiān)測系統(tǒng),它能對多個供水點的水質(zhì)(PH值、水溫等參數(shù))、水流量及其變化狀況進行監(jiān)測,并能對所監(jiān)測結(jié)果進行存儲。由于每個監(jiān)測點所處位置較分散,不利于短距離通信,根據(jù)要求,采用CAN控制子網(wǎng),實現(xiàn)現(xiàn)場設(shè)備與web服務(wù)器的通信,各監(jiān)測點通過以太網(wǎng)實現(xiàn)與監(jiān)測客戶端進行數(shù)據(jù)通信,客戶端完成數(shù)據(jù)采集、分析等功能。
基于web遠程監(jiān)測一般有2種實現(xiàn)方案,PC機代理服務(wù)器和嵌入式實現(xiàn)方案[2]。傳統(tǒng)遠程監(jiān)測中采用PC機作為web服務(wù)器,現(xiàn)今遠程監(jiān)測多采用嵌入式微處理器作為web服務(wù)器,由于各供水點分布比較分散,本著集中監(jiān)測的原則[3],采用基于嵌入式web服務(wù)器方案,其子網(wǎng)采用CAN控制,由多個現(xiàn)場設(shè)備和web服務(wù)器構(gòu)成一個節(jié)點,增加整個系統(tǒng)的靈活性,整體結(jié)構(gòu)框圖如圖1所示。本系統(tǒng)解決方案具有如下特點:
圖1 在線遠程監(jiān)測系統(tǒng)結(jié)構(gòu)
(1)動態(tài) web服務(wù)器支持監(jiān)控終端數(shù)據(jù)的實時更新,實現(xiàn)了遠程監(jiān)測。
(2)功能易于擴充,系統(tǒng)只需對web服務(wù)器添加和嵌套新的功能函數(shù)即可。
(3)不受地理和空間的限制,只要Internet可連接到的地方,均可通過瀏覽器實時地監(jiān)測數(shù)據(jù),改變了傳統(tǒng)監(jiān)測系統(tǒng)的封閉局面。
(4)通過CAN總線組網(wǎng),一個web服務(wù)器可以掛接多個現(xiàn)場設(shè)備(理論上不超過110個),同時方便了現(xiàn)場設(shè)備的即插即用,靈活性更強。
嵌入式 web服務(wù)器不僅要實現(xiàn)現(xiàn)場設(shè)備數(shù)據(jù)采集,還要通過Internet將數(shù)據(jù)發(fā)送到互聯(lián)網(wǎng)上,綜合比較處理器價格和性能后,選擇 SAMSUNG公司生產(chǎn)的 ARM9嵌入式處理器 S3C2410X,該芯片擴展RS232、CAN、以太網(wǎng)接口,可為系統(tǒng)提供不同的通訊方式,適合不同的監(jiān)測環(huán)境和條件。
ARM 微控制器作為核心控制模塊,以太網(wǎng)控制芯片AX88796經(jīng)耦合隔離濾波器FC-518LS和RJ45接口接入以太網(wǎng),擴展CAN總線接口,編寫CAN總線協(xié)議,將 CAN控制子網(wǎng)上的設(shè)備接入以太網(wǎng)[4]。S3C2410X處理器并沒有集成CAN控制器,在此系統(tǒng)中,采用MicroChip公司的獨立CAN總線控制器MCP2510對微處理器進行擴展,CAN收發(fā)器采用Philips公司的TJA1050。圖2為嵌入式web服務(wù)器硬件結(jié)構(gòu)框圖。
圖2 嵌入式web服務(wù)器硬件結(jié)構(gòu)
現(xiàn)場設(shè)備的設(shè)計根據(jù)具體的監(jiān)測水質(zhì)參數(shù),可采用多種方式靈活接入,如單片機系統(tǒng)、PLC系統(tǒng)以及現(xiàn)場總線系統(tǒng),只要提供相應(yīng)的通信接口即可實現(xiàn)與監(jiān)控中心的通信,在設(shè)計中,考慮各分站分布范圍大、距離遠,故采用帶CAN接口的C8051F040單片機系統(tǒng)來實現(xiàn),如圖3所示。
圖3 CAN子節(jié)點硬件結(jié)構(gòu)
利用外部傳感器采集水質(zhì)參數(shù),將處理過的數(shù)據(jù)與設(shè)定的系統(tǒng)初始化參數(shù)值(如pH值的最高、最低值等)進行比較,當(dāng)超過其報警值范圍時,則報警裝置報警,系統(tǒng)自動將監(jiān)測點的狀態(tài)信息發(fā)給客戶端,通知水質(zhì)監(jiān)測員采取相應(yīng)的措施。
本文提出的方案中監(jiān)測系統(tǒng)應(yīng)用軟件包含多個任務(wù)協(xié)調(diào)工作,HTTP服務(wù)負(fù)責(zé)生成包含水質(zhì)狀態(tài)信息的web頁面,web server通過環(huán)境變量和CGI進行消息間的交換,完成設(shè)備的數(shù)據(jù)采集,CGI返回給web server的是頁面信息,通過編寫C代碼生成頁面文件返回給web server。系統(tǒng)采用B/S(瀏覽器/服務(wù)器)結(jié)構(gòu)接入以太網(wǎng)。
在其硬件平臺上移植Linux操作系統(tǒng),使用boa作為嵌入式web服務(wù)器的遠程在線監(jiān)測系統(tǒng),boa是一個單任務(wù)的小型HTTP服務(wù)器,源代碼開放、性能優(yōu)秀,特別適合應(yīng)用在嵌入式系統(tǒng)中。
boa服務(wù)器主要移植過程如下:
(1)下載boa源碼,并將其解壓;
(2)編譯代碼生成可執(zhí)行文件boa;
(3)boa server的配置。為了能夠在目標(biāo)平臺上運行web服務(wù)器 boa,需要修改配置文件 boa.conf,主要完成對boa運行的端口號、Server根目錄等設(shè)置,完成如上配置后,就可運行boa服務(wù)器。
在外部存儲器EEPROM中存儲系統(tǒng)需要的各種web資源,通過以太網(wǎng)與遠程監(jiān)測主機進行數(shù)據(jù)通信,實現(xiàn) web服務(wù)器功能,web動態(tài)頁面顯示使用 CGI技術(shù),CGI全稱是“公共網(wǎng)關(guān)接口”(Common Gateway Interface)[5],其程序運行在web服務(wù)器上,提供同客戶端HTML頁面的接口。
嵌入式 web服務(wù)器將客戶端提交的信息傳遞給CGI應(yīng)用程序,在客戶端提交信息的主要途徑是通過HTML文檔中的表單,表單為用戶提供一個交互的界面,用戶輸入的信息構(gòu)成表單數(shù)據(jù)集,并作為HTTP請求消息一部分傳送給web服務(wù)器。web服務(wù)器在收到客戶端的請求信息后,將其中包含的表單數(shù)據(jù)集按照CGI規(guī)范傳遞給相關(guān)的CGI應(yīng)用程序。表單的提交方法有兩種:即GET和POST,使用不同的請求屬性,所用的環(huán)境變量也不同。CGI程序與boa服務(wù)器之間通過環(huán)境變量、命令行參數(shù)和標(biāo)準(zhǔn)輸入等方式進行通信。本設(shè)計中采用的表單編碼信息通過環(huán)境變量QUERY_STRING傳遞,并返回執(zhí)行結(jié)果,將結(jié)果發(fā)送給客戶端瀏覽器,其執(zhí)行工作流程如圖4所示。
圖4 web server工作流程
基于嵌入式web的在線水質(zhì)監(jiān)測系統(tǒng),可完成水質(zhì)水溫、pH值、濁度等參數(shù)的采集,用戶使用 web瀏覽器訪問嵌入式 web服務(wù)器時,需要進行身份驗證,當(dāng)驗證通過時,才會向web瀏覽器發(fā)送數(shù)據(jù)。各分站完成數(shù)據(jù)采集、數(shù)據(jù)實時傳輸、現(xiàn)場報警等功能。遠程監(jiān)測主機完負(fù)責(zé)完成顯示實時數(shù)據(jù)、查詢歷史數(shù)據(jù)、動態(tài)顯示數(shù)據(jù)等功能,并通過監(jiān)控首頁查看監(jiān)測狀態(tài)是否正常,起到預(yù)警作用。其具體實現(xiàn)步驟如下:
(1)將CGI程序cgi-test.cgi拷貝在/var/www/cgi-bin目錄下,index.html拷貝在/var/www目錄下,編譯并下載到目標(biāo)平臺;
(2)運行boa,在目標(biāo)板終端ifconfig命令設(shè)定目標(biāo)板IP地址為192.168.0.105;
(3)打開IE瀏覽器并輸入服務(wù)器IP用地址,即可瀏覽web頁面,在客戶端可通過IE瀏覽器登陸系統(tǒng),即可實時監(jiān)測遠程數(shù)據(jù),如圖5所示。
圖5 瀏覽器客戶端界面
本文所設(shè)計的基于嵌入式 web的在線水質(zhì)監(jiān)測平臺,能取代以PC機代理服務(wù)器的傳統(tǒng)方案,可對多個供水點的水質(zhì)參數(shù)進行連續(xù)采集,并在web瀏覽器上實時顯示,同時對超過閾值的監(jiān)測點顯示其狀態(tài)信息,起到預(yù)警功能。
整個系統(tǒng)由遠程客服端和監(jiān)測分站兩大部分組成。各監(jiān)測分站由嵌入式 web服務(wù)器和現(xiàn)場設(shè)備組成,遠端計算機可通過接收各分站的系統(tǒng)數(shù)據(jù)和向分站發(fā)出指令,實現(xiàn)分站與客戶端的通信,并接收來自水質(zhì)傳感器信號。監(jiān)測分站中的現(xiàn)場設(shè)備采用 CAN控制子網(wǎng)掛接到服務(wù)器上,即插即用,靈活性強。實驗驗證了通過該系統(tǒng)進行在線遠程水質(zhì)監(jiān)測的可行性,與基于PC機的監(jiān)測相比,性價比高,占用空間小、且安裝維修方便。
[1]劉星華,劉國輝. 基于 CAN 總線分布式水廠監(jiān)控系統(tǒng)的研制[J]. 計算機技術(shù)與應(yīng)用,2007,(3):11~13
[2]李恒超,張家樹. 基于嵌入式web的遠程監(jiān)控研究[J]. 西南交通大學(xué)學(xué)報, 2003,38(3):263~266
[3]景秀眉,呂明祥. 中小型計算機監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機應(yīng)用于軟件,2008,25(8):193~195
[4]佟鳴宇,彭開香. 基于ARM芯片的CAN總線接口設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計, 2009,30(7):1574~1576
[5]宋凱,嚴(yán)麗平,甘嵐.嵌入式 web服務(wù)器的設(shè)計與實現(xiàn)[J]. 計算機工程與設(shè)計,2009,30(4):808~810