當(dāng)前位置:首頁 > 顯示光電 > 顯示光電
[導(dǎo)讀]基于B/S體系結(jié)構(gòu)開發(fā)Internet應(yīng)用程序是當(dāng)前的流行趨勢。介紹了基于Internet的電廠實時監(jiān)控圖形顯示技術(shù)的實現(xiàn)方法。

摘要:基于B/S體系結(jié)構(gòu)開發(fā)Internet應(yīng)用程序是當(dāng)前的流行趨勢。介紹了基于Internet的電廠實時監(jiān)控圖形顯示技術(shù)的實現(xiàn)方法。采用目前工業(yè)監(jiān)控環(huán)境中的圖形動態(tài)交互技術(shù),針對圖形刷新閃爍現(xiàn)象這一關(guān)鍵問題提出了不同的解決方法。最后介紹了基于ActiveX控件技術(shù)的動態(tài)圖形顯示技術(shù)的應(yīng)用實例。
關(guān)鍵詞:Internet;B/S;實時監(jiān)控;圖形動態(tài)顯示;ActiveX控件

0 前言

    隨著Internet技術(shù)的迅速發(fā)展和Web技術(shù)的日趨成熟,許多企業(yè)都建立了基于網(wǎng)絡(luò)平臺的工業(yè)過程監(jiān)控系統(tǒng),實現(xiàn)企業(yè)信息資源的共享。特別在電力系統(tǒng),隨著電廠廠級實時監(jiān)控系統(tǒng)的日趨完善,建立基于Internet的遠(yuǎn)程實時監(jiān)控系統(tǒng)將成為電廠綜合自動化技術(shù)發(fā)展的必然趨勢,通過把電廠的生產(chǎn)數(shù)據(jù)信息以Web形式網(wǎng)上發(fā)布,實現(xiàn)對分散在各地的電廠實時遠(yuǎn)程監(jiān)控、管理和數(shù)據(jù)信息共享,優(yōu)化生產(chǎn),提高經(jīng)濟(jì)效益等。

    但目前基于Internet的圖形顯示技術(shù)存在著許多問題,主要在三個方面:①圖形動態(tài)顯示的實時性。在監(jiān)控系統(tǒng)中,最關(guān)鍵的是現(xiàn)場設(shè)備、服務(wù)器和用戶之間的圖形數(shù)據(jù)交互,而實時數(shù)據(jù)的傳輸延遲要控制在幾秒內(nèi),否則將出現(xiàn)畫面滯后;②圖形顯示過程出現(xiàn)刷新閃爍現(xiàn)象,這是動態(tài)顯示中需要解決的關(guān)鍵問題;③由于電廠安全性要求很高,因此如何保障圖形數(shù)據(jù)傳輸?shù)陌踩?,也是基于網(wǎng)絡(luò)圖形顯示技術(shù)的難點。

    為克服這些問題,在對目前的圖形交互技術(shù)進(jìn)行詳細(xì)分析的基礎(chǔ)上,本文提出了一種基于ActiveX/DCOM技術(shù)的B/S體系結(jié)構(gòu),實現(xiàn)電廠遠(yuǎn)程監(jiān)控圖形動態(tài)顯示。并針對圖形顯示的關(guān)鍵問題——刷新閃爍現(xiàn)象,提出解決方法;然后通過實例介紹基于ActiveX控件的監(jiān)控圖形顯示技術(shù)。

1 圖形動態(tài)顯示技術(shù)

    目前實現(xiàn)交互式動態(tài)網(wǎng)頁顯示的技術(shù)有很多,從最初的CGI到現(xiàn)在的PHP、Java Applet、ASP和JSP等,它們作用各有利弊。

1.1 Java Applet技術(shù)

    Java Applet技術(shù),是用Java語言編寫的應(yīng)用程序,通過將嵌入在網(wǎng)頁中的Java小程序下載到客戶端直接操作。這種處理方式分散系統(tǒng)尤其是Web服務(wù)器的處理負(fù)擔(dān),提高了系統(tǒng)效率,增強(qiáng)了交互的實時性。但由于Applet要在瀏覽器端運行,增加了本地開銷,不符合Web開發(fā)中“瘦客戶”的要求。

1.2 ASP(Active Server Pages)技術(shù)

    ASP技術(shù)是Web服務(wù)器和數(shù)據(jù)庫服務(wù)器的集成技術(shù),是微軟公司推出的服務(wù)器腳本編寫環(huán)境,結(jié)合HTML網(wǎng)頁、Script語言和ActiveX控件,與數(shù)據(jù)庫綁定,創(chuàng)建動態(tài)、交互的服務(wù)器應(yīng)用程序[1]。ASP最大的優(yōu)點是所有的程序都在服務(wù)器端執(zhí)行,包括所有嵌在HTML網(wǎng)頁中的腳本程序,服務(wù)器僅將執(zhí)行的結(jié)果返回給客戶,這樣就減輕了客戶端瀏覽器的負(fù)擔(dān),大大提高了交互的速度。但ASP的不足是它只能在Windows系列的環(huán)境下運行。圖1為ASP的動態(tài)顯示模型。

圖1  基于ASP的動態(tài)顯示模型

1.3 JSP(Java Server Pages)技術(shù)

    JSP技術(shù)是基于Java Servlet以及整個Java體系的Web開發(fā)技術(shù)[2]??梢杂肵ML標(biāo)識來設(shè)計和格式化最終頁面,生成內(nèi)容的邏輯被封裝在標(biāo)識tag和Java Beans組件中,與腳本程序綁定,然后將JSP編譯成Java Servlet在服務(wù)器端運行來實現(xiàn)動態(tài)顯示。JSP的優(yōu)點是所有腳本均在服務(wù)器端執(zhí)行,實現(xiàn)內(nèi)容的生成和顯示分離;可重用且跨平臺的組件JavaBeans或EJB;而且JSP的腳本在首次執(zhí)行時被編譯成為Servlet,并有Java虛擬機(jī)執(zhí)行,以后執(zhí)行都不需編譯,執(zhí)行效率高。但JSP只能通過JDBC或JDBC-ODBC橋接訪問數(shù)據(jù)庫,效率低。

    通過以上圖形顯示技術(shù)的對比,可以得出這幾種圖形顯示技術(shù)的比較結(jié)果,如表1所示。

表1  幾種圖形顯示技術(shù)比較

2 基于Internet的圖形顯示系統(tǒng)結(jié)構(gòu)

    通過以上圖形顯示技術(shù)的分析比較,采用ASP技術(shù),利用其ActiveX/DCOM組件技術(shù)支持,可以很好的實現(xiàn)電廠遠(yuǎn)程實時監(jiān)控圖形動態(tài)顯示的要求。在B/S體系結(jié)構(gòu)的基礎(chǔ)上[3],我們設(shè)計了一種新型B/S模式的基于Internet的遠(yuǎn)程監(jiān)控圖形動態(tài)顯系統(tǒng),如圖2所示。

    客戶通過瀏覽器登錄到Web服務(wù)器,Web服務(wù)器對用戶身份驗證后,根據(jù)客戶權(quán)限把客戶可以瀏覽的網(wǎng)頁顯示在客戶端,并把網(wǎng)頁中嵌入的ActiveX控件下載并注冊到客戶端;嵌套的組件根據(jù)網(wǎng)頁參數(shù)設(shè)置通過代理機(jī)向應(yīng)用服務(wù)器提出數(shù)據(jù)請求,應(yīng)用服務(wù)器接受用戶請求,通過SQL等方式向數(shù)據(jù)庫服務(wù)器提出數(shù)據(jù)處理請求;數(shù)據(jù)庫接受應(yīng)用服務(wù)器的請求,實現(xiàn)對數(shù)據(jù)庫的操作,并把實時數(shù)據(jù)或圖形結(jié)果提交客戶端。

    這種體系結(jié)構(gòu)的優(yōu)點在于:①充分發(fā)揮B/S 模式的優(yōu)勢,保持瘦客戶端的優(yōu)點;②將服務(wù)器劃分為Web服務(wù)器和應(yīng)用服務(wù)器兩部分。應(yīng)用服務(wù)器采用Active/DCOM組件技術(shù)實現(xiàn)B/S結(jié)構(gòu)中的應(yīng)用邏輯部分,解決了動態(tài)顯示的實時性問題,同時達(dá)到封裝源代碼、保護(hù)知識產(chǎn)權(quán)的目的;③通過代理機(jī)實現(xiàn)圖形數(shù)據(jù)的中轉(zhuǎn)傳輸,保障應(yīng)用服務(wù)器的安全性。代理機(jī)位于防火墻與應(yīng)用服務(wù)器之間,當(dāng)用戶請求數(shù)據(jù)時,代理機(jī)接受請求,并休眠與外網(wǎng)連接線程,然后把請求傳給內(nèi)網(wǎng)應(yīng)用服務(wù)器;當(dāng)數(shù)據(jù)結(jié)果返回時,關(guān)閉與內(nèi)網(wǎng)連接,啟動傳輸線程,把數(shù)據(jù)結(jié)果傳給用戶。在傳輸過程中,電廠內(nèi)外網(wǎng)不直接通信,保障了電廠網(wǎng)絡(luò)系統(tǒng)的安全。

3 圖形顯示自動刷新技術(shù)

    在連續(xù)動態(tài)顯示過程中, 當(dāng)屏幕由一個場景變化為另一個場景時, 須首先將原先的背景擦除, 然后將新的圖形繪制到屏幕上, 但顯示背景不斷擦除以及繪制圖形所用時間較長, 導(dǎo)致屏幕出現(xiàn)不連續(xù)[4],即刷新閃爍現(xiàn)象。為此我們在此提出幾種解決途徑。

3.1 Web網(wǎng)頁自動刷新技術(shù)

    在Web網(wǎng)頁中自動更新顯示,可在Web網(wǎng)頁設(shè)計中使用META語句來實現(xiàn)。META語句放置在HTML或ASP代碼的頭部,如網(wǎng)頁每隔5秒刷新一次,可以通過以下META語句來實現(xiàn):

<HEAD><META HTTP-EQUIV=“REFRESH” CONTENT=“5” URL=http://202.206.210.146/Trendshow1.ocx> </HEAD>

    刷新一次,整個文件重新執(zhí)行一次到數(shù)據(jù)庫的連接,把數(shù)據(jù)庫中相應(yīng)的圖形數(shù)據(jù)的變動反映給客戶端。這種方法簡單,適用于以只讀方式向客戶端提供數(shù)據(jù),其刷新頻率不宜過快,否則當(dāng)相應(yīng)的數(shù)據(jù)變化較快或比較多時可能出現(xiàn)屏幕顯示不連續(xù),即閃爍現(xiàn)象,不利于數(shù)據(jù)的監(jiān)測。因此,本方法適用于數(shù)據(jù)實時性不強(qiáng)或變化比較緩慢的條件下實現(xiàn)數(shù)據(jù)的實時顯示。

3.2 基于Java程序的更新數(shù)據(jù)

    監(jiān)控電廠生產(chǎn)過程的相關(guān)數(shù)據(jù),要將實時數(shù)據(jù)和實時趨勢曲線顯示在監(jiān)控畫面上??梢圆捎肑ava Applet小程序直接與Web服務(wù)器相連獲取實時數(shù)據(jù)庫中實時數(shù)據(jù),然后利用Java程序自身的多線程和繪圖優(yōu)勢來實現(xiàn)圖形數(shù)據(jù)的自動刷新。為了將背景畫面和與實時數(shù)據(jù)相關(guān)的圖形、數(shù)字區(qū)分開,通常采用雙緩存技術(shù)把背景畫面載入,在Java小程序的Paint()函數(shù)中編寫與實時數(shù)據(jù)相關(guān)的圖形、數(shù)據(jù)的顯示代碼。在Java小程序的線程Run()函數(shù)中利用DAO等實現(xiàn)對數(shù)據(jù)庫的查詢,Java小程序線程的休眠時間由Sleep()函數(shù)決定。每次線程運行時,對數(shù)據(jù)庫重新查詢得到新的數(shù)據(jù),并使得小程序重畫,這樣就把動態(tài)的圖形數(shù)據(jù)反映給客戶。Java小程序執(zhí)行速度快,刷新頻率較快,適合實時圖形數(shù)據(jù)的讀取和顯示。

3.3 圖形畫面刷新無閃爍

    利用ActiveX組件技術(shù)實現(xiàn)遠(yuǎn)程監(jiān)控的圖形動態(tài)顯示,可以徹底解決動態(tài)顯示時自動刷新出現(xiàn)的閃爍現(xiàn)象。一般來說,解決刷新閃爍現(xiàn)象的方法有兩個方面:一是避免反復(fù)設(shè)置背景監(jiān)控畫面和清屏;二是避免直接在屏幕上重畫。

    為此,采用雙緩沖技術(shù)來解決刷新閃爍,即利用ActiveX控件在客戶端建立內(nèi)存緩沖區(qū),把原來直接在屏幕上的繪圖操作全部改在緩沖區(qū)里繪制,最后再將緩存區(qū)中繪制好的圖形一次性畫到屏幕上。對于一般實時性不強(qiáng)的畫面,刷新周期設(shè)置低點,可以解決刷新閃爍現(xiàn)象;對于實時性較強(qiáng)的圖形數(shù)據(jù),通過這種方法也基本能消除刷新閃爍。

    首先利用組態(tài)軟件把監(jiān)控背景畫面和各種圖元繪制好,存放在應(yīng)用服務(wù)器中;其次,通過ActiveX控件中的CDataPathProperty類異步下載圖形元件,緩存到客戶端中,供控件調(diào)用。ActiveX控件中實現(xiàn)繪圖的部分代碼如下:

{……

//將位圖句柄調(diào)入緩沖區(qū)

CBitmap*pOldBitmap=m_pdcMemory->SelectObject(m_pBitmap);

m_pdcMemory-> SelectClipRgn(NULL);

m_pdcMemory->IntersectClipRect(&rectUpdate);

……

//用位圖填充指定的圖形區(qū)域

m_pdcMemory->PatBlt(rectUpdate.left,rectUpdate.top, rectUpdate.Width(), rectUpdate. Height(),PATCOPY);

//將指向緩沖區(qū)的指針傳遞給繪圖函數(shù)

OnDraw (m_pdcMemory);

//將緩沖區(qū)中的繪好的圖形復(fù)制到屏幕上

dc.BitBlt(rectUpdate.left,rectUpdate.top,rectUpdate.Width(),rectUpdate.Height(),m_pdcMemory,rectUpdate.left,rectUpdate.top,SRCCOPY); ……}

4 應(yīng)用實例

    對于電廠遠(yuǎn)程監(jiān)控系統(tǒng),不僅要訪問實時數(shù)據(jù)信息,而且還要將實時數(shù)據(jù)直觀地顯示在客戶端屏幕上。為此,我們采用Visio 2000來進(jìn)行畫面組態(tài),把組態(tài)的畫面供ActiveX控件調(diào)用,其中用Visual C++來設(shè)計ActiveX控件[5]。

    下面是系統(tǒng)中的機(jī)組運行分析曲線控件"Trendlineshow1.ocx",其屬性如下所示:Host:運行服務(wù)代理的主機(jī)名或IP地址;Graphics:圖形文件的URL;AutoRefresh:是否自動刷新;RefreshTime:刷新周期,缺省為5s;AutoSize:決定是否根據(jù)圖形大小自動改變控件大小,缺省為真。

    控件的工作過程如下:(1)利用CDataPathProperty類異步下載圖形文件,自動緩存在本地機(jī)器中,需要時則直接從緩沖區(qū)中讀取,加快了執(zhí)行速度;(2)利用CSocket類與服務(wù)代理建立TCP連接;(3)根據(jù)刷新周期啟動定時器;(4)處理定時器消息(WM-TIMER),根據(jù)圖形文件中實時元件的定義向服務(wù)代理請求數(shù)據(jù),并刷新圖形數(shù)據(jù)顯示。

    其ASP網(wǎng)頁部分代碼如下:

<H2 align=center>#4機(jī)組運行分析趨勢曲線</H2>

<OBJECT  id=trendlineshow1  style="Z-INDEX:100;LEFT:-2px;POSITION:absolute;TOP:45px" codeBase=http://10.1.32.222/ocx/show1.ocx  classid="clsid:1A2D46F5-434C-42A1-1A9E7B9A2B8B">

<PARAM  NAME="_ExtentX"  VALUE="2312">   <PARAM  NAME="_ExtentY"  VALUE="1132">

<PARAM NAME="SQLServerName"  VALUE="websvr"> <PARAM  NAME="UID"VALUE="RMDSUser">

<PARAM  NAME="PWD" VALUE=""> <PARAMNAME="DataBaseName" VALUE="rmdsdb"></OBJECT>

    這里,網(wǎng)頁代碼中提供了OCX的ClassID和文件的URL??蛻舳藶g覽時,會在本地注冊表中查詢該OCX的ClassID,如果本地沒有該的控件,或其版本不是最新時,瀏覽器會自動按照CodeBase指定的路徑從服務(wù)器下載控件并安裝注冊到本地機(jī)器上??蛻舳擞肐E瀏覽時,其安全級別設(shè)置為擁有合法代碼簽名的ActiveX控件下載。

5 結(jié)論

    基于Internet的電廠遠(yuǎn)程實時監(jiān)控系統(tǒng),采用B/S體系結(jié)構(gòu),利用ASP技術(shù)的ActiveX/DCOM組件支持,很好地實現(xiàn)了系統(tǒng)遠(yuǎn)程監(jiān)控和圖形數(shù)據(jù)的動態(tài)顯示和自動刷新。而且ActiveX技術(shù)對于實現(xiàn)業(yè)務(wù)邏輯封裝、提高軟件的可重用性和可維護(hù)性、開發(fā)高效和安全的圖形顯示系統(tǒng)具有積極的意義,是現(xiàn)代電廠遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展方向。

參考文獻(xiàn):
[1] 陳冠宇,熊偉.基于ASP的圖形動態(tài)顯示技術(shù)[J].微機(jī)發(fā)展,2004.07,49-51.
[2] 孫文波,盧建軍.基于Web的遠(yuǎn)程監(jiān)控技術(shù)及比較[J].西安科技大學(xué)學(xué)報.2002.02.
[3] 李玉奇,劉旺開.基于B/S結(jié)構(gòu)下分布式控制系統(tǒng)的實時監(jiān)控[J].微計算機(jī)信息,2004,20(2),53-55.
[4] 周震,虞鶴松.工業(yè)監(jiān)控環(huán)境下Web頁面實時數(shù)據(jù)的自動更新[J].計算機(jī)應(yīng)用.2001.11.
[5] 宇鵬,王曉峰等.Visual C++實踐與提高-ActiveX篇[M].北京: 中國鐵道出版社.2001.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉