楊新凱
1 引言
LonWorks是美國(guó)Echelon公司于1990年發(fā)布的技術(shù),用以把傳感器、執(zhí)行器等組成網(wǎng)絡(luò)來(lái)完成控制任務(wù)。它是一種開放性的控制網(wǎng)絡(luò)平臺(tái),提供完整的系統(tǒng)解決方案,支持多種介質(zhì),如雙絞線、電力線、光纖、紅外線等,并具有互操作性。LonWorks的眾多優(yōu)點(diǎn)使它有著非常廣泛的應(yīng)用,如樓宇自動(dòng)化、工廠自動(dòng)化、智能家居、能源管理、交通運(yùn)輸系統(tǒng)等。但是從網(wǎng)絡(luò)的角度看,這些系統(tǒng)中的應(yīng)用屬于局部的小型網(wǎng)絡(luò),它們形成了所謂的“信息孤島”。隨著互聯(lián)網(wǎng)的迅猛發(fā)展,這些信息孤島與互聯(lián)網(wǎng)的融合也成為一種必然的趨勢(shì)。Echelon公司認(rèn)識(shí)到了這一趨勢(shì),在其許多產(chǎn)品中都提供了對(duì)于IP網(wǎng)絡(luò)的支持。該公司于2000年初發(fā)布的i.LON 1000網(wǎng)絡(luò)設(shè)備就是這樣一種產(chǎn)品,通過(guò)這個(gè)設(shè)備可以把LonWorks網(wǎng)絡(luò)與互聯(lián)網(wǎng)進(jìn)行無(wú)縫連接。這是借助硬件產(chǎn)品實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。另外從軟件的角度看,通過(guò)Java技術(shù)也可以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。我們?cè)趯?shí)驗(yàn)室建立了一個(gè)具體的LonWorks網(wǎng)絡(luò),分別實(shí)現(xiàn)了兩種不同的監(jiān)控方案。
2 LonWorks控制網(wǎng)絡(luò)實(shí)例
圖1 LonWorks網(wǎng)絡(luò)模型
我們建立的LonWorks網(wǎng)絡(luò)演示模型如圖1所示,用來(lái)對(duì)HVAC模擬系統(tǒng)進(jìn)行控制。HVAC系統(tǒng)包括報(bào)警子系統(tǒng)、空調(diào)子系統(tǒng)和溫度檢測(cè)子系統(tǒng)。報(bào)警子系統(tǒng)由紅外探頭、蜂鳴器和信號(hào)燈組成,在有外界侵入時(shí)控制聲光報(bào)警輸出。空調(diào)子系統(tǒng)由冷卻塔風(fēng)機(jī)、冷卻水水泵、冷卻水流量檢測(cè)儀表和水冷機(jī)組組成,可以通過(guò)指令控制系統(tǒng)的開啟和關(guān)閉,并在冷卻水流量過(guò)小時(shí)自動(dòng)關(guān)閉系統(tǒng)。溫度檢測(cè)子系統(tǒng)由溫度傳感器和電動(dòng)閥門組成,在外界溫度發(fā)生變化時(shí)自動(dòng)控制水管閥門的開度,通過(guò)調(diào)節(jié)熱媒水的流量來(lái)控制溫度。LonWorks網(wǎng)絡(luò)由模擬量輸入模塊AI、模擬量輸出模塊AO、開關(guān)量輸入模塊DI、開關(guān)量輸出模塊DO1和DO2共五個(gè)LonWorks節(jié)點(diǎn)組成。節(jié)點(diǎn)之間根據(jù)需要進(jìn)行網(wǎng)絡(luò)變量的綁定,例如AI模塊把溫度傳感器檢測(cè)到的溫度值通過(guò)變量綁定的方式發(fā)送給AO模塊,AO模塊則輸出相應(yīng)的數(shù)據(jù)去控制電動(dòng)閥門的開度。由這五個(gè)節(jié)點(diǎn)組成的網(wǎng)絡(luò)已經(jīng)可以完成HVAC系統(tǒng)所需規(guī)定的監(jiān)控任務(wù),但為了實(shí)現(xiàn)Web監(jiān)控,需要增加一臺(tái)PC機(jī)以運(yùn)行LNS Server和Web Server。
3 基于i.LON的Web監(jiān)控方案
基于Web管理的LonWorks網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控方案的構(gòu)成比較簡(jiǎn)單,在如圖1所示的LonWorks網(wǎng)絡(luò)的基礎(chǔ)上,只要添加一臺(tái)i.LON設(shè)備(該設(shè)備需要接入Internet),并使用HTML語(yǔ)言進(jìn)行相應(yīng)的編程工作就可以了。i.LON設(shè)備以Web Server方式運(yùn)行,在互聯(lián)網(wǎng)上做為實(shí)際網(wǎng)絡(luò)的代理,具體實(shí)現(xiàn)細(xì)節(jié)對(duì)監(jiān)控端是完全透明的。監(jiān)控端可以是任何一臺(tái)接入Internet并運(yùn)行瀏覽器程序的PC機(jī),PC機(jī)的接入方式非常靈活,如通過(guò)局域網(wǎng)接入、電話撥號(hào)、xDSL等方式都可以。
圖2 i.LON實(shí)現(xiàn)Web監(jiān)控的主界面
圖3 空調(diào)子系統(tǒng)監(jiān)控界面
針對(duì)這個(gè)具體的網(wǎng)絡(luò),我們需要制作相應(yīng)的網(wǎng)頁(yè)代碼,并將其上傳到i.LON 1000,之后就可以通過(guò)瀏覽器來(lái)訪問(wèn),并通過(guò)主頁(yè)進(jìn)行監(jiān)控。這個(gè)監(jiān)控系統(tǒng)的主界面如圖2所示。如在圖2所示界面中點(diǎn)擊“空調(diào)子系統(tǒng)”,就可以看到圖3所示界面,可以在這個(gè)界面中選擇開啟或者關(guān)閉空調(diào)系統(tǒng),所對(duì)應(yīng)的HTML源文件代碼的主體部分如下。報(bào)警、溫度子系統(tǒng)的界面及源文件與空調(diào)子系統(tǒng)非常類似,因此不做贅述。
<HTML>
<HEAD>
<META HTTP-EQUIV="refresh" content="1"> <TITLE>中央空調(diào)監(jiān)視</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function dispy() {…}
function listview() {…}
</SCRIPT></HEAD>
<body bgcolor="#ccccff" >
<form name="KongTiao1" method="get" action= "KongTiao1.htm"><ILONWEB_URL>
<div align=center>
<FONT SIZE=5 COLOR="#0000ff">中央空調(diào)監(jiān)視界面</FONT>
<HR WIDTH=344 >
<P>   啟動(dòng)按鈕:<iLonWeb func=Hidden size=2 symbol=NVL_zndi_DIv1>
<input name="NVL_zndi_DIv1" size=2> </iLonWeb>
<input name="AnNiu" size=4 value="0"> </P>
<P>冷卻塔風(fēng)機(jī):<iLonWeb func=Hidden size=2 symbol=NVL_zndo1_DOv1>
<input name="NVL_zndo1_DOv1" size=2 ></iLonWeb>
<input name="FengJi" size=4 value="0"> </P>
<P>  冷卻水泵:<iLonWeb func= Hidden size=2 symbol=NVL_zndo2_DOv0>
<input name="NVL_zndo2_DOv0" size=2 ></iLonWeb>
<input name="ShuiBeng" size=4 value="0"> </P>
<P>   水冷機(jī)組:<iLonWeb func=Hidden symbol=NVL_zndo2_DOv1>
<input name="NVL_zndo2_DOv1" size=2 ></iLonWeb>
<input name="JiZu" size=4 value="0"></P>
<P>冷卻水流量:<iLonWeb func=Hidden symbol=NVL_znai_AIv0!FORMAT:RAW>
<input name="NVL_znai_AIv0" size=6 ></iLonWeb>
<input name="LiuLiang" size=4 value="0"> T/h</P>
<P><A HREF="startK.htm" ><H5>開啟空調(diào)</H5></A>
<A HREF="closeK.htm" ><H5>關(guān)閉空調(diào)</H5></A></P>
</div></form></body></HTML>
從程序可以看出,它與普通網(wǎng)頁(yè)不同的地方在于使用了iLonWeb標(biāo)簽,i.LON 1000內(nèi)置的Web Server能夠理解這個(gè)標(biāo)簽的意義,當(dāng)Web Server向?yàn)g覽器發(fā)送頁(yè)面時(shí),它把其中對(duì)于網(wǎng)絡(luò)變量的引用轉(zhuǎn)換成具體的數(shù)值,這個(gè)數(shù)值則是通過(guò)i.LON 1000 向網(wǎng)絡(luò)中所對(duì)應(yīng)的設(shè)備獲取的。由于瀏覽器自身的特點(diǎn),必須通過(guò)頁(yè)面刷新才能實(shí)現(xiàn)網(wǎng)絡(luò)變量數(shù)值的更新。即在需要獲得新的變化情況時(shí),通過(guò)點(diǎn)擊瀏覽器頁(yè)面的刷新按鈕,向Web Server發(fā)送請(qǐng)求,i.LON 1000才會(huì)把新值返回給瀏覽器。
4 基于Java的Web監(jiān)控方案
在這個(gè)方案中不需要i.LON 1000,只需要將圖1所示系統(tǒng)通過(guò)一臺(tái)PC機(jī)連接到互聯(lián)網(wǎng),并在PC機(jī)上運(yùn)行Web Server,編寫網(wǎng)頁(yè)代碼,就可以通過(guò)瀏覽器來(lái)訪問(wèn)LonWorks網(wǎng)絡(luò),對(duì)HVAC系統(tǒng)進(jìn)行相關(guān)的控制和監(jiān)測(cè)。在實(shí)驗(yàn)室我們把這個(gè)系統(tǒng)接入局域網(wǎng),在PC機(jī)上運(yùn)行PWS,然后通過(guò)瀏覽器進(jìn)行監(jiān)控。所使用的網(wǎng)頁(yè)代碼如下:
<HTML>
<HEAD>
<META NAME="GENERATOR" ><TITLE> LonWorks Web Control</TITLE>
</HEAD>
<BODY background = "blue">
<DIV align=center>
<APPLET code=Myapplet.class align="middle" height="300" width="400"
archive = "lonweb.jar, lnshmi.jar"><PARAM NAME="192.168.1.41" VALUE="yxk">
</APPLET> </DIV></BODY></HTML>
從程序可以看出,這個(gè)網(wǎng)頁(yè)代碼相當(dāng)簡(jiǎn)單,其主要部分就是嵌入的Java小程序,所有的監(jiān)控任務(wù)都是通過(guò)Java小程序?qū)崿F(xiàn)的。這個(gè)Java小程序所實(shí)現(xiàn)的界面如圖4所示。
圖4 Java Applet實(shí)現(xiàn)監(jiān)控的主界面
從圖4可以看到監(jiān)控主界面分為上、中、下三部分,上面的部分稱做UpPanel,分別顯示服務(wù)器的IP地址(我們是在局域網(wǎng)的范圍內(nèi)進(jìn)行測(cè)試)、網(wǎng)絡(luò)名稱、網(wǎng)絡(luò)中所有的節(jié)點(diǎn)名稱和所選中節(jié)點(diǎn)所包含的網(wǎng)絡(luò)變量名稱。中間的部分稱做MidPanel,分別用來(lái)顯示報(bào)警、空調(diào)和溫度檢測(cè)子系統(tǒng)的各種狀態(tài)和檢測(cè)值;連接到服務(wù)器后,系統(tǒng)的各種信息就自動(dòng)顯示在這里,并且隨著系統(tǒng)的變化而不斷刷新。下面的部分稱做DownPanel,由三個(gè)按鈕組成,當(dāng)按下“開啟空調(diào)”按鈕后,空調(diào)子系統(tǒng)會(huì)進(jìn)入啟動(dòng)過(guò)程,冷卻塔風(fēng)機(jī)、冷卻水水泵和水冷機(jī)組會(huì)依次打開,在MidPanel面板可以看到系統(tǒng)狀態(tài)的改變;“關(guān)閉空調(diào)”按鈕用于關(guān)閉空調(diào)子系統(tǒng);按下“關(guān)于”按鈕后會(huì)彈出一個(gè)信息框,顯示程序的一些相關(guān)信息。
實(shí)現(xiàn)上述監(jiān)控任務(wù)的程序共有七個(gè)文件組成。Myapplet.java是真正的Java applet,它實(shí)現(xiàn)了Runnalbe接口,通過(guò)調(diào)用三個(gè)類LonModel、LonView和LonGlue 來(lái)訪問(wèn)LNS Server,實(shí)現(xiàn)對(duì)LonWorks網(wǎng)絡(luò)的監(jiān)控任務(wù);UpPanel、MidPanel和DownPanel用來(lái)完成界面的顯示和刷新任務(wù)。這些文件都是由冗長(zhǎng)的代碼構(gòu)成,由于篇幅的限制,在此就不做詳細(xì)介紹了。
5 結(jié)語(yǔ)
從前面的比較可以看出,通過(guò)i.LON 1000這個(gè)硬件設(shè)備實(shí)現(xiàn)Web監(jiān)控,從實(shí)現(xiàn)的角度看要簡(jiǎn)單一些,因?yàn)橹饕皇亲鲆恍〩TML編程方面的工作。但這種方案的缺點(diǎn)在于(1)硬件設(shè)備成本較高;(2)受瀏覽器自身的限制,必須通過(guò)不斷刷新頁(yè)面才能獲得數(shù)據(jù)的更新;(3)i.LON內(nèi)存有限,只能存放1M的HTML源文件,因此其最好的使用方式是建立與其它Web Server的鏈接。
通過(guò)Java 小程序來(lái)實(shí)現(xiàn)Web 監(jiān)控,則不需要i.LON這樣的硬件設(shè)備,并且能夠?qū)崿F(xiàn)實(shí)時(shí)數(shù)據(jù)的動(dòng)態(tài)刷新。但是這種方案需要針對(duì)具體的網(wǎng)絡(luò)編寫復(fù)雜的代碼,并借助于Web Server才能實(shí)現(xiàn)Web監(jiān)控。
總之,LonWorks技術(shù)在我國(guó)的應(yīng)用還處于發(fā)展階段,i.LON互聯(lián)網(wǎng)接入設(shè)備的出現(xiàn)及其廣泛的應(yīng)用前景更加顯現(xiàn)出這種技術(shù)的先進(jìn)性與優(yōu)越性。我們相信,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展以及對(duì)社會(huì)生活各個(gè)方面的滲透,把我們周圍的電子設(shè)備接入互聯(lián)網(wǎng),真正實(shí)現(xiàn)控制網(wǎng)絡(luò)與互聯(lián)網(wǎng)的完全融合,必定能夠帶給人們更加美好的未來(lái)。
參考文獻(xiàn):
[1] Reza S, Raji. Control Networks and the Internet. Echelon Corporation, January 1999.
[2] 樊永生, 楊新凱. 基于Web的LonWorks網(wǎng)絡(luò)的監(jiān)控方案. 測(cè)控技術(shù), 2001,20(2):37-38.