a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 光電顯示 > 設計應用 > 基于Internet的電廠實時監控圖形顯示技術應用

基于Internet的電廠實時監控圖形顯示技術應用

作者: 時間:2007-06-04 來源:網絡 收藏

摘要:B/S體系結構開發應用程序是當前的流行趨勢。介紹了技術的實現方法。采用目前工業環境中的動態交互技術,針對刷新閃爍現象這一關鍵問題提出了不同的解決方法。最后介紹了ActiveX控件技術的動態圖形技術的應用實例。
關鍵詞:;B/S;;圖形動態;ActiveX控件

0 前言

隨著Internet技術的迅速發展和Web技術的日趨成熟,許多企業都建立了基于網絡平臺的工業過程監控系統,實現企業信息資源的共享。特別在電力系統,隨著廠級監控系統的日趨完善,建立基于Internet的遠程實時監控系統將成為綜合自動化技術發展的必然趨勢,通過把電廠的生產數據信息以Web形式網上發布,實現對分散在各地的電廠實時遠程監控、管理和數據信息共享,優化生產,提高經濟效益等。

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

為克服這些問題,在對目前的圖形交互技術進行詳細分析的基礎上,本文提出了一種基于ActiveX/DCOM技術的B/S體系結構,實現電廠遠程監控圖形動態顯示。并針對圖形顯示的關鍵問題――刷新閃爍現象,提出解決方法;然后通過實例介紹基于ActiveX控件的監控圖形顯示技術。

1 圖形動態顯示技術

目前實現交互式動態網頁顯示的技術有很多,從最初的CGI到現在的PHP、Java Applet、ASP和JSP等,它們作用各有利弊。

1.1 Java Applet技術

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

1.2 ASP(Active Server Pages)技術

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

圖1 基于ASP的動態顯示模型

1.3 JSP(Java Server Pages)技術

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

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

表1 幾種圖形顯示技術比較

2 基于Internet的圖形顯示系統結構

通過以上圖形顯示技術的分析比較,采用ASP技術,利用其ActiveX/DCOM組件技術支持,可以很好的實現電廠遠程實時監控圖形動態顯示的要求。在B/S體系結構的基礎上[3],我們設計了一種新型B/S模式的基于Internet的遠程監控圖形動態顯系統,如圖2所示。

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

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

3 圖形顯示自動刷新技術

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

3.1 Web網頁自動刷新技術

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

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

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

3.2 基于Java程序的更新數據

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

3.3 圖形畫面刷新無閃爍

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

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

首先利用組態軟件把監控背景畫面和各種圖元繪制好,存放在應用服務器中;其次,通過ActiveX控件中的CDataPathProperty類異步下載圖形元件,緩存到客戶端中,供控件調用。ActiveX控件中實現繪圖的部分代碼如下:

{……

//將位圖句柄調入緩沖區

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

m_pdcMemory-> SelectClipRgn(NULL);

m_pdcMemory->IntersectClipRect(rectUpdate);

……

//用位圖填充指定的圖形區域

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

//將指向緩沖區的指針傳遞給繪圖函數

OnDraw (m_pdcMemory);

//將緩沖區中的繪好的圖形復制到屏幕上

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

4 應用實例

對于電廠遠程監控系統,不僅要訪問實時數據信息,而且還要將實時數據直觀地顯示在客戶端屏幕上。為此,我們采用Visio 2000來進行畫面組態,把組態的畫面供ActiveX控件調用,其中用Visual C++來設計ActiveX控件[5]

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

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

其ASP網頁部分代碼如下:

H2 align=center>#4機組運行分析趨勢曲線/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>

這里,網頁代碼中提供了OCX的ClassID和文件的URL。客戶端瀏覽時,會在本地注冊表中查詢該OCX的ClassID,如果本地沒有該的控件,或其版本不是最新時,瀏覽器會自動按照CodeBase指定的路徑從服務器下載控件并安裝注冊到本地機器上。客戶端用IE瀏覽時,其安全級別設置為擁有合法代碼簽名的ActiveX控件下載。

5 結論

基于Internet的電廠遠程實時監控系統,采用B/S體系結構,利用ASP技術的ActiveX/DCOM組件支持,很好地實現了系統遠程監控和圖形數據的動態顯示和自動刷新。而且ActiveX技術對于實現業務邏輯封裝、提高軟件的可重用性和可維護性、開發高效和安全的圖形顯示系統具有積極的意義,是現代電廠遠程監控技術的發展方向。

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



評論


相關推薦

技術專區

關閉