摘??要: 針對(duì)加油站分布廣、通信協(xié)議不統(tǒng)一難于實(shí)現(xiàn)集成監(jiān)控,提出了一種基于嵌入式Web的集成監(jiān)控系統(tǒng)?;贗ntel Xscale IXP-422 RISC CPU的嵌入式Web服務(wù)器,通過工業(yè)以太網(wǎng)互聯(lián)現(xiàn)場各加油站服務(wù)器,完成對(duì)現(xiàn)場設(shè)備的集成監(jiān)控。Web瀏覽控制采用Apache+Html+PHP的方案實(shí)現(xiàn)。測試結(jié)果表明,該系統(tǒng)安全級(jí)別高、實(shí)時(shí)性好、抗干擾能力強(qiáng)、環(huán)境適應(yīng)性好。
關(guān)鍵詞: 嵌入式系統(tǒng); IFSF; 協(xié)議轉(zhuǎn)換; 網(wǎng)絡(luò)監(jiān)控系統(tǒng)
?
目前將Web技術(shù)用于工業(yè)監(jiān)控領(lǐng)域[1-3]已成為熱點(diǎn)話題,用普通Web瀏覽器可在任何地方通過Internet對(duì)現(xiàn)場控制設(shè)備進(jìn)行訪問與監(jiān)控[4-6],可方便地達(dá)到監(jiān)控現(xiàn)場設(shè)備的目的。通過存儲(chǔ)在現(xiàn)場控制設(shè)備中的網(wǎng)頁,可以準(zhǔn)確、實(shí)時(shí)地采集現(xiàn)場數(shù)據(jù),并進(jìn)行檢測分析、設(shè)備控制和維護(hù)系統(tǒng)等。本文以油品零售網(wǎng)絡(luò)加油站監(jiān)控系統(tǒng)為背景,提出一種基于嵌入式Web的網(wǎng)絡(luò)監(jiān)控系統(tǒng),文中對(duì)相關(guān)設(shè)計(jì)和實(shí)現(xiàn)問題進(jìn)行了探討。
1 基于嵌入式Web的網(wǎng)絡(luò)監(jiān)控系統(tǒng)
基于嵌入式Web的油品油料零售網(wǎng)絡(luò)站級(jí)管理監(jiān)控系統(tǒng)結(jié)構(gòu)如圖1所示。加油站前庭的現(xiàn)場設(shè)備有:普通加油機(jī)、卡機(jī)聯(lián)動(dòng)加油機(jī)、油罐液位儀、價(jià)格指示牌、洗車設(shè)備和支付柱等。這些設(shè)備可通過嵌入式Web服務(wù)器直接連接到Intranet/Internet,再通過以太網(wǎng)口或無線網(wǎng)口連接到Web瀏覽監(jiān)控站或Web瀏覽移動(dòng)監(jiān)控站,可方便地實(shí)現(xiàn)智能通信、站級(jí)設(shè)備可在線配置與控制、實(shí)時(shí)數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)以及保證數(shù)據(jù)傳送的完整性和安全性。
?
?
(1)智能通信。將不同種類加油設(shè)備的數(shù)據(jù)通過智能控制前端設(shè)備先進(jìn)行智能處理以方便系統(tǒng)監(jiān)控管理與擴(kuò)展。采用工業(yè)級(jí)、能適應(yīng)惡劣工業(yè)環(huán)境的嵌入式智能電腦作為載體,根據(jù)通信需要可連接不同的設(shè)備,從系統(tǒng)層次對(duì)智能通信軟件進(jìn)行總體設(shè)計(jì)和面向?qū)ο蟮慕Y(jié)構(gòu)化程序開發(fā),將不同設(shè)備的數(shù)據(jù)通信設(shè)計(jì)成不同的模塊,以實(shí)現(xiàn)通信的智能控制,有利于對(duì)不同加油設(shè)備進(jìn)行統(tǒng)一控制與管理。
(2)設(shè)備在線配置與控制。采用基于Linux的Apache+PHP+數(shù)據(jù)文件的Web開發(fā)模式,通過Web頁面可方便靈活地實(shí)現(xiàn)設(shè)備配置和設(shè)置各種前庭設(shè)備的工作狀態(tài);實(shí)時(shí)動(dòng)態(tài)地反映各種設(shè)備的狀態(tài),如加油機(jī)的油槍狀態(tài)、加油累計(jì)量、加油累計(jì)金額、油罐液位儀的液位位置等;查看前庭控制器FCC(Forecourt Controller)運(yùn)行的日志文件、統(tǒng)計(jì)分析FCC日志文件、獲得FCC運(yùn)行統(tǒng)計(jì)數(shù)據(jù),為排錯(cuò)、糾錯(cuò)提供依據(jù);根據(jù)權(quán)限設(shè)定訪問的內(nèi)容,使每個(gè)管理系統(tǒng)的用戶都有不同的權(quán)限,以保證數(shù)據(jù)在網(wǎng)絡(luò)上的安全傳輸;實(shí)時(shí)更新加油機(jī)的油品油料油價(jià)表和上載加油機(jī)的油品油料油價(jià)表;實(shí)現(xiàn)對(duì)各種前庭設(shè)備的控制,如加油機(jī)的開、關(guān),油槍的開、關(guān)等,對(duì)多種加油設(shè)備進(jìn)行情況更復(fù)雜、難度更高的監(jiān)控。
(3)實(shí)時(shí)數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)。能方便地將智能控制前端設(shè)備的內(nèi)置 ROM分成Boot Loader、Linux Kernel、Mini Root File System和User Root File System等四個(gè)區(qū)。Mini Root File System在因用戶程序的原因而導(dǎo)致根文件系統(tǒng)崩潰時(shí),可用作緊急根文件系統(tǒng)使用;當(dāng)Boot Loader加載User Root File System失敗時(shí),激活Mini Root File System??梢胍环N內(nèi)嵌機(jī)制以防止系統(tǒng)崩潰,保證系統(tǒng)的穩(wěn)定可靠性。在實(shí)際的加油站控制系統(tǒng)中,若后臺(tái)網(wǎng)絡(luò)系統(tǒng)一旦出現(xiàn)故障,可使用Store-Forward的數(shù)據(jù)通信方法,在通信故障期間可將數(shù)據(jù)存放到JFFS2文件系統(tǒng)上,待故障排除后,系統(tǒng)能自動(dòng)地將采集數(shù)據(jù)轉(zhuǎn)發(fā)至加油站控制系統(tǒng)中的相應(yīng)主機(jī)上, 而不影響加油機(jī)及相關(guān)設(shè)備的正常工作,以保證數(shù)據(jù)的完整性和安全性。
2 系統(tǒng)軟硬件結(jié)構(gòu)
2.1?硬件結(jié)構(gòu)
Web服務(wù)器是一臺(tái)使用Intel Xscale IXP-422 266MHz RISC CPU的高性能嵌入式計(jì)算機(jī),它區(qū)別于普通采用CISC設(shè)計(jì)的X86 CPU的計(jì)算機(jī)性能。IXP-422采用高性能的半導(dǎo)體集成技術(shù)和RISC設(shè)計(jì)架構(gòu),在減少熱量產(chǎn)生的同時(shí),提供強(qiáng)大的計(jì)算功能,內(nèi)置的32MB NOR Flash ROM和128MB SDRAM提供了充足的內(nèi)存資源,使應(yīng)用程序可輕松地直接下載到裝置內(nèi)部。該智能計(jì)算機(jī)具備8個(gè)RS-232/422/485串口,雙10/100Mb/s以太網(wǎng)絡(luò)端口,PCMCIA作無線通信,8通道數(shù)字輸入和8通道數(shù)字輸出,以及擴(kuò)充用的CompactFlash接口。Web服務(wù)器的內(nèi)部結(jié)構(gòu)框圖如圖2所示。
?
2.2 軟件系統(tǒng)結(jié)構(gòu)
系統(tǒng)的核心部件[7-9]是一臺(tái)高性能的嵌入式智能計(jì)算機(jī),內(nèi)置安全穩(wěn)定和性能優(yōu)越的MontaVista Embedded Linux嵌入式系統(tǒng),其結(jié)構(gòu)如圖3所示。Web Server以Apache+Html+PHP的構(gòu)架方案[10]實(shí)現(xiàn)動(dòng)態(tài)瀏覽,該方案可動(dòng)態(tài)地修改Web Server計(jì)算機(jī)的系統(tǒng)配置等,采用GCC等開發(fā)工具開發(fā)用戶應(yīng)用程序以實(shí)現(xiàn)對(duì)加油站現(xiàn)場設(shè)備的監(jiān)控。Web Server可以實(shí)現(xiàn)如下功能:
(1)實(shí)時(shí)查看多臺(tái)多品牌加油機(jī)的狀態(tài),并可分別配置加油站設(shè)備和設(shè)置加油機(jī)的工作狀態(tài)。
(2)查看Web智能服務(wù)器運(yùn)行的日志文件,統(tǒng)計(jì)分析運(yùn)行的統(tǒng)計(jì)數(shù)據(jù),為排錯(cuò)提供依據(jù)。
(3)權(quán)限訪問設(shè)置,可保證數(shù)據(jù)在網(wǎng)絡(luò)上的安全傳輸,并提供密鑰安全訪問功能。
(4)可在一定安全級(jí)別控制下,控制加油機(jī)工作狀態(tài)、設(shè)置油罐和計(jì)價(jià)牌等設(shè)備的參數(shù)。
3 協(xié)議轉(zhuǎn)換實(shí)現(xiàn)
協(xié)議轉(zhuǎn)換模塊的功能是實(shí)現(xiàn)從加油站的現(xiàn)場前庭智能設(shè)備接口協(xié)議到基于TCP/IP的IFSF協(xié)議[11]的信息轉(zhuǎn)換,以實(shí)現(xiàn)在嵌入式Web服務(wù)器中對(duì)加油站現(xiàn)場前庭設(shè)備的實(shí)時(shí)信息處理。該模塊由基于TCP/IP的IFSF協(xié)議接口模塊和加油站現(xiàn)場前庭智能設(shè)備接口協(xié)議與IFSF協(xié)議轉(zhuǎn)換的兩個(gè)模塊組成?;赥CP/IP的IFSF協(xié)議接口模塊由四個(gè)子模塊組成,如圖4所示。
?
(1) IFSF應(yīng)用程序子模塊,用于前庭設(shè)備控制應(yīng)用程序的實(shí)現(xiàn)。
(2) IP協(xié)議棧子模塊,用于網(wǎng)絡(luò)連接、實(shí)現(xiàn)IP協(xié)議、提供網(wǎng)絡(luò)連接管理和IP地址解析等功能。
(3) DHCP服務(wù)器子模塊,用于給連接在以太網(wǎng)上的設(shè)備分配IP地址。DHCP服務(wù)器可以是IFSF設(shè)備的一個(gè)功能模塊,也可以是單獨(dú)的一個(gè)設(shè)備。
(4) IFSF與IP的轉(zhuǎn)換子模塊,完成三個(gè)功能:利用HeartBeat Proxy接收和發(fā)送Heartbeat;借助連接控制器模塊管理所有已連接的TCP連接表;發(fā)送和接收所有通過TCP連接的數(shù)據(jù)。
前庭設(shè)備接口協(xié)議與IFSF協(xié)議之間的轉(zhuǎn)換由兩個(gè)功能模塊組成:前庭設(shè)備協(xié)議接口模塊和IFSF代理模塊,如圖5所示。前庭設(shè)備協(xié)議接口模塊實(shí)現(xiàn)與具體的前庭設(shè)備的接口,其主要功能是解析前庭設(shè)備通信幀,實(shí)時(shí)監(jiān)控加油過程,更新加油機(jī)通用信息,對(duì)加油機(jī)的特殊情況作出響應(yīng)。IFSF代理模塊用于響應(yīng)各IFSF節(jié)點(diǎn)的讀/寫請(qǐng)求,按IFSF協(xié)議及IFSF幀格式實(shí)現(xiàn)對(duì)各IFSF節(jié)點(diǎn)間的訪問。
?
前庭設(shè)備協(xié)議接口模塊和IFSF代理模塊之間的通信通過Database進(jìn)行,IFSF代理模塊通過訪問Database來訪問前庭設(shè)備。因?yàn)镈atabase存放了加油機(jī)及前庭設(shè)備的所有信息,包括加油機(jī)油槍狀態(tài)、加油機(jī)協(xié)議版本、油品油價(jià)版本、交易記錄表、交易累計(jì)統(tǒng)計(jì)數(shù)據(jù)等。在這些信息中,對(duì)時(shí)效性要求較高的數(shù)據(jù)都帶有時(shí)間戳。其他IFSF節(jié)點(diǎn)發(fā)出的讀/寫信息,如果要訪問對(duì)時(shí)間敏感的數(shù)據(jù),可直接通過Database訪問;如果要訪問一些對(duì)時(shí)間不敏感的數(shù)據(jù)(如交易累計(jì)統(tǒng)計(jì)數(shù)據(jù)),可通過前庭設(shè)備協(xié)議接口模塊和IFSF代理模塊之間的另一條信息傳送通道,向前庭設(shè)備協(xié)議接口模塊發(fā)送數(shù)據(jù)請(qǐng)求命令,前庭設(shè)備協(xié)議接口模塊在一定時(shí)間內(nèi)作出回應(yīng)。
對(duì)Database中的一些數(shù)據(jù)文件(如油品文件、油站通用信息文件)的控制管理功能可以通過Web服務(wù)器中的集成監(jiān)控模塊實(shí)現(xiàn),前庭設(shè)備協(xié)議接口模塊一旦感知到文件發(fā)生了變化,就會(huì)在程序中自動(dòng)啟動(dòng)普通信息查詢命令,進(jìn)入信息更新階段??刂乒芾淼淖饔檬窍蛏弦患?jí)管理計(jì)算機(jī)傳送所有加油機(jī)的交易記錄,如果上一級(jí)管理計(jì)算機(jī)不在線(如線路故障臨時(shí)中斷),這時(shí),交易記錄可直接在本地保存,待故障排除后將自動(dòng)向上傳送數(shù)據(jù),從而保證數(shù)據(jù)的完整性。
4 Web Server的實(shí)現(xiàn)
Web Server所有用戶界面都通過WWW瀏覽器實(shí)現(xiàn)。其中部分事務(wù)邏輯可在前端實(shí)現(xiàn),但是主要事務(wù)邏輯仍然在服務(wù)器端實(shí)現(xiàn),形成所謂的3-tier結(jié)構(gòu),如圖6所示。
?
B/S模式是Web Server和Brower之間的直接訪問,客戶和服務(wù)器間的中間節(jié)點(diǎn)不對(duì)HTTP請(qǐng)求及響應(yīng)做任何操作,應(yīng)用程序放在Server,處理HTTP請(qǐng)求時(shí)客戶端只需采用如IE這樣的瀏覽器對(duì)服務(wù)器上的數(shù)據(jù)進(jìn)行瀏覽,不用開發(fā)客戶端程序。Web開發(fā)技術(shù)有兩種:CGI(Common Gateway Interface)技術(shù)和嵌入式技術(shù)。本文采用后者,它是將Java script、Vb script和PHP等特定的腳本語言利用特殊的標(biāo)記嵌入到HTML中,當(dāng)客戶端Browser提出請(qǐng)求時(shí),Web Server會(huì)使用相應(yīng)的腳本解釋引擎對(duì)腳本解釋執(zhí)行,根據(jù)具體的條件完成對(duì)后臺(tái)數(shù)據(jù)庫的查詢、修改等操作,并把結(jié)果送回到Browser端?;贚inux的Apache+PHP+大型(或小型)數(shù)據(jù)庫的方案已經(jīng)成為當(dāng)前眾多商業(yè)網(wǎng)站的首選Web開發(fā)模式。Apache是一種開放源碼的HTTP服務(wù)器,可以在大多數(shù)計(jì)算機(jī)操作系統(tǒng)中運(yùn)行,通過簡單的API擴(kuò)展,Perl/Python等解釋器可被編譯到服務(wù)器中。PHP是一種用于在服務(wù)器端創(chuàng)建執(zhí)行Web頁面的典型服務(wù)器端腳本語言,并內(nèi)置了文件上傳密碼認(rèn)證Cookie操作、郵件收發(fā)、動(dòng)態(tài)GIF生成、XML、共享內(nèi)存等功能;更為重要的是它對(duì)數(shù)據(jù)庫強(qiáng)有力的操縱能力,支持幾乎所有主流和非主流的數(shù)據(jù)庫。它既可以作為一個(gè)獨(dú)立的CGI外部程序獨(dú)立運(yùn)行,也可以與Apache服務(wù)器緊密結(jié)合,作為模塊嵌入到Apache中,不僅實(shí)現(xiàn)了代碼的簡化,而且無需占用額外進(jìn)程便可完成對(duì)數(shù)據(jù)庫的操作,執(zhí)行起來高效快捷。因此,PHP已成為目前開發(fā)Web非常流行的一種語言。
5 系統(tǒng)功能測試
系統(tǒng)功能測試在網(wǎng)絡(luò)環(huán)境下進(jìn)行,測試信號(hào)源用模擬信號(hào)代替。其具體測試方法是用兩臺(tái)PC機(jī)分別模擬電子收款系統(tǒng)POS(Point of Sells)機(jī)和加油機(jī)(Dispenser)的收發(fā)數(shù)據(jù)和命令,在高性能嵌入式智能計(jì)算機(jī)MOXA上安裝Apache+php服務(wù)器,將協(xié)議轉(zhuǎn)換主程序及相關(guān)程序經(jīng)編譯后傳送到MOXA,同時(shí)將Web Server網(wǎng)頁代碼也傳送到MOXA,由顯示畫面直接觀察測試結(jié)果。從圖7的參數(shù)設(shè)置網(wǎng)頁界面可以看出,通過網(wǎng)頁可以查看和修改端口配置文件。POS模擬機(jī)可以控制加油機(jī)加油,設(shè)置加油參數(shù),控制加油卡插入與退出等;也可以模擬加油機(jī)作抬槍、加油、掛槍、結(jié)算等操作。實(shí)際
測試結(jié)果表明,該協(xié)議轉(zhuǎn)換程序能成功地完成加油機(jī)和POS機(jī)的協(xié)議轉(zhuǎn)換,并能實(shí)現(xiàn)由POS機(jī)控制加油機(jī)的所有功能。
?
Web在加油站站級(jí)設(shè)備控制管理中的應(yīng)用研究表明,基于嵌入式Web的網(wǎng)絡(luò)監(jiān)控系統(tǒng)可以更好地實(shí)現(xiàn)油品供給和消費(fèi)狀態(tài)資料的共享,對(duì)庫存、跑冒滴漏、資金流向、貨款回籠等能更好地實(shí)現(xiàn)監(jiān)控,對(duì)各種通信協(xié)議的有效整合能使設(shè)備維修更加簡單。
參考文獻(xiàn)
[1]?CERCONE N, HOU Li Jun,KESELJ V, et al. From computational intelligence to Web intelligence[J]. Computer,?Volume 35, issue 11, Nov. 2002:72-76.
[2]?SMIMOV A, PASHKIN M, CHILOV N, et al.Agent based ?Web intelligence for logistics support in networked organizations[C]. Intelligent Transportation System. 2004. Proceedings. The 7th International IEEE Conference on,3-6?Oct. 2004:922-927.
[3]?BUTZ C J, HUA S, MAGUIRE R B.? A Web based?intelligent tutoring system for computer programming[J].
Web Intelligence, 2004,WI 2004. Proceedings IEEE/WIC/AMC International Conference on, 20-24 Sept. 2004:159-165.
[4] ?徐巍,譚德榮. 基于網(wǎng)絡(luò)的加油站控制管理系統(tǒng)的研制[J]. 山東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,18(4):
59-63.
[5]?宋宏偉, 甄然. 加油站中央控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息, 2006,22(6):106-108.
[6]?吳秋芹. 基于嵌入式Web服務(wù)器的測控系統(tǒng)[J]. 西華大學(xué)學(xué)報(bào)(自然科學(xué)版), 2006,25(6):39-41.
[7] ?Linux網(wǎng)絡(luò)編程[M]. 李卓恒譯. 北京:機(jī)械工業(yè)出版社,2000.
[8]? WEHRLE K, PAHLKE F. The Linux networking architecture[M]. America ,Prentice Hall, 2004.
[9]?MATTHEW N, STONES R. Beginning Linux programming[M]. The 3rd Edition,Canada, Wiley Publishing, Inc,2004:187-189.
[10] PHP與其他CGI的比較. http://www.51iter.com/wangzhan//php/200508/wangzhan_7308.html
[11]?International Forecourt Standard Forum. Communication on?specification over TCP/IP[S], version1.00, England, 2001.