色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于Internet的電廠實(shí)時(shí)監(jiān)控圖形顯示技術(shù)應(yīng)用

          基于Internet的電廠實(shí)時(shí)監(jiān)控圖形顯示技術(shù)應(yīng)用

          作者: 時(shí)間:2007-06-04 來源:網(wǎng)絡(luò) 收藏

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

          0 前言

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

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

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

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

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

          1.1 Java Applet技術(shù)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          3.3 圖形畫面刷新無(wú)閃爍

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

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

          首先利用組態(tài)軟件把監(jiān)控背景畫面和各種圖元繪制好,存放在應(yīng)用服務(wù)器中;其次,通過ActiveX控件中的CDataPathProperty類異步下載圖形元件,緩存到客戶端中,供控件調(diào)用。ActiveX控件中實(shí)現(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)用實(shí)例

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

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

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

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

          H2 align=center>#4機(jī)組運(yùn)行分析趨勢(shì)曲線/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)頁(yè)代碼中提供了OCX的ClassID和文件的URL??蛻舳藶g覽時(shí),會(huì)在本地注冊(cè)表中查詢?cè)揙CX的ClassID,如果本地沒有該的控件,或其版本不是最新時(shí),瀏覽器會(huì)自動(dòng)按照CodeBase指定的路徑從服務(wù)器下載控件并安裝注冊(cè)到本地機(jī)器上。客戶端用IE瀏覽時(shí),其安全級(jí)別設(shè)置為擁有合法代碼簽名的ActiveX控件下載。

          5 結(jié)論

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

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



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉