《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 基于Web的網絡控制及其Java技術實現

基于Web的網絡控制及其Java技術實現

2009-01-05
作者:劉其成

??? 計算機控制系統(tǒng)與國際互聯網絡Internet的融合可以使人們能夠通過現有的數據網存取,、監(jiān)測和控制多種設備,。當傳統(tǒng)的控制系統(tǒng)發(fā)展為現場總線控制網絡(Infranet)時,,構建Infranet到Internet的網絡結構就成為可能,,一旦Infranet和Internet相結合,控制網絡就可利用Internet上豐富的資源,,從而為控制領域日益發(fā)展的遠程控制鋪平了道路。

1.Internet中網絡遠程控制系統(tǒng)體系結構?

??? 所謂遠程控制是指本地計算機通過網絡系統(tǒng),主要是Internet,,實現對遠端的生產過程的監(jiān)視和控制。能夠實現遠程控制的計算機軟硬件系統(tǒng)稱為遠程控制系統(tǒng)?,F場總線系統(tǒng)接入Internet,,在一定條件下,便可通過Internet控制這些生產系統(tǒng)和現場設備的運行狀況及各種參數,,即不必親臨現場,,通過網絡實現對遠程被控對象的控制,以節(jié)省大量的交通,、人力,。還可以根據需要,建立起地區(qū)級的,、國家級的乃至世界級的控制中心,,便于大型企業(yè)集團對所屬工廠的整體管理,從而提高經濟效益,。對于制造商來說,,可以對自己產品進行及時維護,對產品性能進行及時跟蹤調查以便進一步改進設計,。

??? 遠程控制的原理:遠程控制實質上是通過遠程控制軟件使本地計算機與遠程計算機之間進行的點對點間的信息傳遞過程,。在進行遠程控制之前,首先要在本地計算機和遠程計算機上安裝遠程控制程序。當對遠程計算機進行遠程控制時,,本地計算機首先向遠程計算機發(fā)出控制請求,,遠程計算機收到控制請求后,先驗證本地計算機是否有訪問的權限,,如果驗證通過,,遠程計算機向本地計算機發(fā)出接受信號,這樣就可以通過本地計算機來控制遠程計算機了,。

??? 要實現遠程控制,,第一要有一個能夠穩(wěn)定運行的現場總線的控制系統(tǒng);第二要有一個能夠通過Internet進行遠程訪問的數據通信系統(tǒng),;第三要有遠程控制系統(tǒng)的各個組成部分間建立的虛擬通信關系,,通過Internet接通遠程異地控制網絡,并利用公用數據網絡豐富的軟硬件資源,,以便通過Internet來控制生產現場,。

??? 根據遠程控制網絡的任務和要求,可以考慮整個系統(tǒng)采用B/S(瀏覽器/服務器)結構,,因為B/S結構便于信息的發(fā)布,,它可以很方便地將現場數據發(fā)向Internet,同時簡化了客戶端的信息處理,,只要在遠程客戶端裝上Internet瀏覽軟件,,即可查閱現場數據,而Internet瀏覽軟件操作簡單,,無需培訓,。系統(tǒng)的總體結構如圖1所示。

圖1? 基于Internet的遠程控制系統(tǒng)總體結構框圖

??? 遠程控制所支持的網絡方式有:LAN,、WAN,、撥號上網的方式、Internet方式,。遠程控制一般是通過一定的軟件或命令,,使用NetBEUI、NetBIOS,、IPX/SPX,、TCP/IP等協(xié)議來實現的。當然,,這里所說的遠程計算機,,只能是一定距離范圍內的計算機。

2.Java技術在網絡遠程控制中的應用?

??? 本文所研究的基于Java的網絡控制系統(tǒng)的實現主要表現在下面幾個方面:基于J2ME技術的無線網絡控制,;JNI技術在計算機控制實時采集系統(tǒng)中的應用,;Java串行通信技術及其對PLC、單片機、變頻器等的控制,;在Intranet中基于Java的虛擬現實技術及其在計算機控制系統(tǒng)仿真研究中的應用,。框圖如圖2所示:

?

2.1? J2ME技術

??? 雖然從Java 1.0發(fā)表后,,Java就被廣泛的應用在桌上型應用程序以及Applet的開發(fā)上,,但從Java 1.1開始,Java又回到了它的設計初衷——嵌入式系統(tǒng)和消費類電子產品上了,。當時,,Sun Microsystems發(fā)表了針對嵌入式系統(tǒng)和消費類電子產品的Embedded Java與Personal Java(簡稱Pjava)兩項Java規(guī)范。其中,,Embedded Java是為資源十分有限且沒有顯示設備的裝置設計的,;Personal Java則是為能夠與Internet聯網,并擁有顯示系統(tǒng)(如彩色LCD)的消費類電子產品設計的,。

??? Sun公司為了使Java語言進入嵌入式系統(tǒng)和消費類電子產品領域,,在Java 2中推出了J2ME。摩托羅拉是J2ME的主要支持者,,第一個在手機上移植了KVM,,又領導全球手機廠家制定了MIDP規(guī)范。在2000年的Java One大會上,,摩托羅拉總裁宣布:摩托羅拉的主要手機都將支持J2ME,。

??? 與WAP相比,在傳輸層,,J2ME提供了一組面向應用程序的高層協(xié)議,,包括HTTP和TCP(或UDP)等,,實際的傳輸可以基于其它方式(如CSD或GPRS等),。在應用層,J2ME提供了全功能的Java開發(fā)環(huán)境,,可以用Client/Server方式訪問Internet上的所有數據,。如果需要,軟件開發(fā)商甚至可以開發(fā)出HTML Browser,。

??? J2ME具有很多Java技術特性,,主要有:可以在各種支持Java的設備上運行;代碼短??;充分利用Java語言的優(yōu)勢;安全性好,;用J2ME實現的應用可以方便的升級到J2SE和J2EE,。為了支持用戶和嵌入式市場提出的靈活性和可定制的要求,J2ME在設計中非常注重模塊伸縮性。J2ME在設備原有的操作系統(tǒng)上建造了三層軟件,,即JVM層,、配置層、框架層,,實現模塊化和伸縮性,。

2.2? JNI技術

??? 對于底層的硬件系統(tǒng)的狀態(tài),純粹的Java語言當然是無法得知,,要想得知底層的硬件系統(tǒng)的狀態(tài),,必須借助于Java的JNI技術:

??? 本機方法Java Native Interface(JNI)是Java平臺的強大特征之一。使用本地方法的應用程序可以與用其他編程語言(例如C和C++)編寫的本地代碼,,也可以與Java語言編寫的代碼取得一致,。當然,JNI允許程序員充分利用Java平臺的功能,,因為JNI是Java平臺的一部分,。

??? JNI增強了JDK的功能,將Java語言與其它編程語言聯合使用,,主要運用于以下方面:

??? (1)Java編程者可能需要訪問特殊的操作系統(tǒng)設備或聲卡,、調制解調器等外圍設備使可用功能盡量讓人滿意,而這些設備不能通過JDK來訪問。

??? (2)Java程序可能需要具有與第三方中間件和通信系統(tǒng)(例如Lotus Notes等等)或專用的企業(yè)軟件系統(tǒng)(例如SAP R/3,、Bean等)之間的接口,,而這些企業(yè)的應用軟件的解決方法帶有它們自己的專用接口API,這些專用接口通常是使用C或C++來編寫的,,因此需要使用Java本地方法,。

??? (3)可以無縫集成大量的已存在的程序而不需要考慮用戶接口。

??? (4)實時Java系統(tǒng)中的某些時間高度緊張的操作可能需要利用匯編程序來進行這樣使用JNI是唯一的選擇,。

2.3 串口通信技術?

??? 在科研和工業(yè)應用中,,串口是常用的計算機與外部串行設備之間的數據傳輸通道。串行通信方便易行,,應用十分廣泛,。Java語言本身并不能直接對串行通信進行編程控制,但是我們可以先使用其它語言(例如C/C++)編寫好對硬件控制的方法,,然后借助于Java的本地方法調用來達到控制串行通信的目的,。由Sun公司推出的javax.comm類庫已經做好了這部分工作,我們只需要調用javax.comm API,,就可以編寫出Java串行通信程序,,非常方便方便。

javax.comm類庫提供了6個類,,分為3個層次,,如表1所示,。

??? 類庫提供的功能:

??? (1)搜索系統(tǒng)中的可用端口。由CommPortIdentifier.getPortIdentifiers()靜態(tài)方法返回一個CommPortIdentifier對象,里面包含系統(tǒng)中所有可用的端口信息,。CommPortIdentifie對象是javax.comm類庫中最重要的對象,所有對端口的操作都是基于該對象進行的,。

??? (2)用上層類通過CommPortIdentifie對象打開端口,并且聲明對端口的所有權,。

??? (3)協(xié)調多個應用程序之間對端口的所有權沖突,。它通過事件消息來告知相關的應用程序,并使得當前占用端口的應用程序放棄所有權,。如果打開端口失敗,,程序將拋出PortInUseException異常。

??? (4)實現通訊端口的同步和異步I/O,。底層類(例如SerialPort)都提供有管理通訊端口I/O的方法,。

2.4? 虛擬現實技術

??? 創(chuàng)建虛擬現實環(huán)境可以用以下兩種方法,Java 3D和VRML與Java結合,。

2.4.1 Java 3D?

???? Java 3D API可以用來編寫獨立的三維圖象應用程序和基于Web的3D Applets,,它提供了產生和操作3D幾何對象和用于描述幾何特性的高層構件,使得開發(fā)者可以用構件來描述廣大的虛擬現實,。

??? Java 3D包含了一種相當完整而且有機的立即模式,,它的設計使所有用Java 3D API編寫的應用程序實現了跨平臺操作的能力。Java 3D的立即模式提供了通用立即模式層特性的最佳折中,,同時還能得到滿意的性能,。

??? Java 3D提供了復雜的基于視點模型的虛擬現實,但從典型的應用角度看,,Java 3D的視點模型是很簡單的,。如果一項應用想在現存的使用基于攝像機來建立鏡頭的參數即刻。但是,,Java 3D視點模型不能置于現存的基于攝像機的視點模型之上,。

??? Java 3D能夠支持六自由度的跟蹤模型。AWT提供了最普通的桌面交互外設:鼠標和鍵盤,,Java 3D同樣使用它們,,而不是另選一種不兼容的I/O模型。Java 3D提供了能力位,,保證了節(jié)點對象的大部分可修改狀態(tài),它們的默認值對于現場圖景是不授權路徑的,。當今的絕大部分3D環(huán)境是運行時環(huán)境,,而不是編輯環(huán)境。如果應用程序只識別那些會改變的對象,,Java 3D就能對大部分的圖形進行優(yōu)化操作,,于是Java 3D提供了能力位,,使得應用程序可以定義這樣的重要信息。???

2.4.2 Java與VRML?

??? VRML的動畫效果其實就是依靠一個給定的時間傳感器和一系列各種各樣的內插節(jié)點來控制場景中各種動畫效果,。其基本的方法就是時間傳感器給出一個控制動畫效果的時鐘,,這個時鐘包含了動畫效果的開始時間、停止時間,、時間間隔和是否循環(huán)等動畫控制參數,,然后通過這個時鐘的輸出在虛擬世界中驅動各種內插節(jié)點產生各種相應的動畫效果,而在內插節(jié)點中將給出各種動畫效果的關鍵點和關鍵值,,VRML瀏覽器將自動地根據這些關鍵點通過線性插值的方法來完成整個動畫過程,。另外,在VRML中虛擬世界和用戶之間的交互是通過一系列檢測器來實現的,,通過這些檢測器節(jié)點,,使瀏覽器感知用戶的各種操作,這樣用戶就可以和VRML虛擬世界中的三維對象進行直接交互,。

??? 利用時間傳感器和內插節(jié)點創(chuàng)造的動畫效果在虛擬空間中都是自發(fā)進行的,,也就是說和瀏覽者沒有任何的交互性可言,各種動畫效果只是有給定的時間傳感器來控制,。所以我們使用Java技術來改變這一弱勢,。

??? 外部創(chuàng)作接口(External Authoring Interface,EAI)是由SGI公司的Chris Marrin設計并提出來的,,主要目的是增強VRML場景與外部環(huán)境通信聯系和融合能力的一個高層次的Java類包,,它使得一個外部程序使用VRML的事件模型可以訪問和控制VRML場景中的節(jié)點。這里的外部程序主要是指和VRML虛擬場景嵌在同一個網頁中的Java Applet程序,。在VRML的事件模型中,,一個給定節(jié)點的出事件(EventOut)可以被路由(Route)到另一個節(jié)點的入事件(EventIn)。當出事件對象產生了一個事件,,入事件對象就會得到通知并處理接收到的事件,。如果一個腳本節(jié)點中有一個指向給定節(jié)點的域,它就可以對該節(jié)點直接發(fā)送入事件,,并可以讀取該節(jié)點的任何一個出事件的最后發(fā)送值,。

??? 通過使用EAI,用戶不再僅僅局限于作為一個觀眾,,而是可以參與,、介入到虛擬場景的構建過程中去。用戶借助自己豐富的想象力,,可以去更改所看到的VRML場景,、修改場景的物體、改變這些物體的表現形式,、設計場景中的動畫,、定義場景中各個角色的行為方式,。

3.結束語?

??? 本文從J2ME、JNI,、javax.comm和Java3D及Java與VRML結合等幾方面,,粗略地探討了Java技術在基于Web的遠程控制中的應用。在后續(xù)的研究中,,將具體地研究各個部分的具體編程實現,。在具體實現時,將會設計Java安全性技術,。另外,,如何使用Java技術中的Jini技術構建分布式網絡控制,如何將Smart Card等嵌入式技術運用于嵌入式控制網絡等問題也將進行深入研究,。

本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點,。轉載的所有的文章,、圖片、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者,。如涉及作品內容、版權和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失,。聯系電話:010-82306118,;郵箱:[email protected]