葛中澤 崔愿星
(鄂州大學(xué) 計算機系,湖北鄂州 436000)
遠程實時檢測系統(tǒng)趨勢線設(shè)計技術(shù)研究
葛中澤 崔愿星
(鄂州大學(xué) 計算機系,湖北鄂州 436000)
隨著自動化技術(shù)的發(fā)展,以互聯(lián)網(wǎng)為基礎(chǔ)的遠程實時檢測開始在煤礦開采得到應(yīng)用,如何在Web環(huán)境下設(shè)計檢測趨勢線是我們經(jīng)常面對的一個問題。針對目前趨勢線設(shè)計技術(shù)存在的的問題,以GDI+和Ajax技術(shù)為基礎(chǔ),提出了一個新的設(shè)計方法;給出了該方法設(shè)計趨勢線的詳細步驟,分析了其優(yōu)點。該方法已在煤礦開采實際中得到應(yīng)用,證明是可行的。
檢測趨勢線;OPC;Activex;Ajax
網(wǎng)絡(luò)化控制系統(tǒng)是指將網(wǎng)絡(luò)與控制相結(jié)合的控制系統(tǒng),已經(jīng)成為自動化領(lǐng)域中研究的一個重要課題。目前,在網(wǎng)絡(luò)化控制系統(tǒng)中使用ActiveX控件設(shè)計趨勢線[1],但它存在一定的問題。針對這個的問題,本文以GDI+和Ajax技術(shù)為基礎(chǔ),提出了一種設(shè)計趨勢線的新方法,詳細說明了該方法的設(shè)計步驟和制作過程,并通過注漿參數(shù)檢測系統(tǒng)的應(yīng)用來驗證了該方法的可行性和優(yōu)點。
目前網(wǎng)絡(luò)化控制系統(tǒng)中設(shè)計趨勢線一般常用ActiveX控件。ActiveX是一個開放的軟件集成平臺,其為Web生產(chǎn)商、用戶和開發(fā)人員提供了一個簡便而快速的在Internet創(chuàng)建程序集成及內(nèi)容的方法[2]。其原理是瀏覽器首先根據(jù)HTML代碼中ActiveX控件的CLSID來查找本地注冊表,定位需初始化的程序信息,成功則加載;否則自動從CODEBASE所指定的服務(wù)器目錄中下載,在本地注冊并激活。該方法存在以下問題:1)在客戶端部署時存在困難,比如客戶端不能正確下載,下載了完了又不能正確執(zhí)行;2)下載的時候需要設(shè)置IE的安全級別,允許個人防火墻對ActiveX控件的安裝等等,這些都限制了ActiveX控件的使用。
GDI+(Graphics Device Interface)是圖形設(shè)備接口技術(shù),是微軟公司-MET框架中專門用于圖形編程的類庫,其通過對早期GDI(視窗圖形設(shè)備接口)進行包裝,提供了多種多樣繪圖功能,可以通過編程來創(chuàng)建圖形、繪制文本、生成復(fù)雜圖形效果,它還可以將圖形作為對象進行操作。AJAX是“異步JavaScript和XML”,與傳統(tǒng)的Web應(yīng)用程序進行比較,AJAX有許多優(yōu)勢:最少的數(shù)據(jù)傳送量、用戶體驗的連貫性、減少服務(wù)器的負載、異步通信模式等等。
考慮到檢測系統(tǒng)一般使用window操作系統(tǒng),因此選擇asp.net作為開發(fā)工具,數(shù)據(jù)庫使用SQL2005,以KEPServer為遠程實時檢測通訊服務(wù)軟件,使用OPC通訊協(xié)議。
2.1 數(shù)據(jù)采集
數(shù)據(jù)采集使用KEPServer通訊服務(wù)軟件。OPC服務(wù)器通過OPC通訊協(xié)議與現(xiàn)場設(shè)備如PLC通訊,實時獲得遠程檢測數(shù)據(jù)。OPC服務(wù)器是安裝了KEPServer的服務(wù)器,配置KEPServe的方法為:首先依據(jù)所要連接的PLC對設(shè)備進行授權(quán),再依據(jù)上文對OPC服務(wù)器的了解,在KEPServer中建立OPC服務(wù)器,最后依據(jù)所用設(shè)備的型號以及所接的模塊新建Device(服務(wù)器對象),新建Group(組對象),新建Tag(項對象)。為了獲得OPC服務(wù)器的采集數(shù)據(jù),還需要進行OPC客戶端的編程。基本過程為:在Asp.net中添加OPC DA Automation Wrapper 2.02引用,連接需要的OPC服務(wù)器,創(chuàng)建group,添加item,讀寫OPC服務(wù)器實時獲取遠程檢測數(shù)據(jù)[3-4]。
2.2 GDI+設(shè)計趨勢線
在Asp.net中設(shè)計GDI+趨勢圖需要在項目中添加一個一般處理程序文件,該文件實現(xiàn)了IHttpHandler接口,可以響應(yīng)HTTP請求,生成動態(tài)圖片和動態(tài)文本,且因為它不包含控件解析和頁面處理的過程,比傳統(tǒng)的.aspx文件效率高。在一般處理程序文件中設(shè)計趨勢圖的步驟為:
1)從數(shù)據(jù)庫中獲取數(shù)據(jù),為圖形的設(shè)計提供數(shù)據(jù)源。該過程主要使用ADO.MET技術(shù)使用sqlData-Adapeter對象從數(shù)據(jù)庫讀取數(shù)據(jù),數(shù)據(jù)源以數(shù)據(jù)集dataset的形式存在;
2)建立Graphics對象。該步驟以Bitmap對象為基礎(chǔ),生成繪圖對象,即Graphics g=Graphics.From Image(img);
3)創(chuàng)建畫筆、字體和筆刷對象并設(shè)置屬性;
4)使用g.DrawRectangle函數(shù)繪制圖形底色和邊框;
5)繪制標(biāo)題及過程信息;
6)繪制圖形坐標(biāo)和網(wǎng)格線。坐標(biāo)使用繪圖對象的DrawLine方法生成,而坐標(biāo)網(wǎng)格線和坐標(biāo)標(biāo)簽使用循環(huán)方法由DrawLine及DrawString來完成。橫坐標(biāo)的時間標(biāo)簽數(shù)據(jù)是變化的,從數(shù)據(jù)源中讀?。?/p>
7)繪制檢測曲線。由Point數(shù)組定義曲線轉(zhuǎn)折點,從數(shù)據(jù)源讀取時間和注漿流量值填充Point數(shù)組,用DrawLines(Rp,p)繪制注漿流量曲線;同時用DrawString方法繪制記錄點的注漿流量,用DrawRectangle(Rp,p[i].X-1,p[i].Y-1,2,2)繪制記錄點;
8)輸出圖片,顯式釋放資源。即把位圖Bitmap對象以.Jpeg的格式輸出到流stream中,然后在asp.net的上下文Context的內(nèi)置Response對象中以二進制的方法輸出流stream[5]。
最后在項目中還需要添加一個頁面,用其中的image控件來接收并顯示該曲線圖,即<asp:Image ID=″Image1″runat=″server″ImageUrl=″~/Handler.ashx″/>。
2.3 圖形動態(tài)顯示
在前面介紹了網(wǎng)絡(luò)化控制系統(tǒng)檢測曲線圖的設(shè)計,這樣設(shè)計的曲線圖還只是靜態(tài)的圖形,不能夠滿足動態(tài)檢測實時顯示數(shù)據(jù)的要求。為此,需要使用Ajax異步刷新來動態(tài)更新曲線。在Asp.net中Ajax異步刷新有兩種模式:客戶端編程模式和服務(wù)器端UpdatePanel模式[6]。這里選擇服務(wù)器端UpdatePanel異步刷新模式來實現(xiàn)動態(tài)趨勢圖的更新。為此,在頁面中添加一個ScriptManager控件和一個UpdatePanel控件;再在UpdatePanel控件中拖入需要異步更新的Image控件,同時添加一個定時器Timer控件,設(shè)置其時間Interval屬性為20 000毫秒(20秒)。在Timer的Tick事件中重新設(shè)置Image控件的ImageUrl值,即Image1.ImageUrl=″Handler.ashx?″+DateTime.Mow.ToLongTimeString()。運行程序,即可實現(xiàn)趨勢圖的動態(tài)顯示。
2.4 新技術(shù)的特點
Asp.net是微軟公司開發(fā)的動態(tài)網(wǎng)站設(shè)計的強大工具,是網(wǎng)絡(luò)化控制檢測系統(tǒng)開發(fā)的首選,而GDI +是.Met平臺圖形編程的類庫,AJAX和ADO.MET技術(shù)在ASP.MET中十分成熟,它們之間自成一體的高度融合,可以設(shè)計任何需要的復(fù)雜圖形。該方法設(shè)計的趨勢線不需要注冊,可以直接與OPC客戶端交換數(shù)據(jù),直接對數(shù)據(jù)庫進行操作。由于本方法設(shè)計的趨勢線是在服務(wù)器端生成,通過網(wǎng)絡(luò)傳輸?shù)氖菆D片文件而不是檢測數(shù)據(jù),系統(tǒng)的安全性較高。
在煤礦開采中,注漿防滅火方法(Method of Fire Fighting by Grouting)是將注漿材料(黃土、頁巖、矸石、粉煤灰、尾礦等)細?;蠹铀苽涑蓾{,用水力輸送到煤礦井下注入需防滅火區(qū)域內(nèi),封堵漏風(fēng)通道、包裹煤巖阻止氧化、冷卻煤巖溫度而預(yù)防或撲滅礦井火災(zāi)的一項技術(shù)措施。生產(chǎn)礦井對注漿量以及注漿濃度十分關(guān)注,尤其是在大型重要礦井中,其注漿質(zhì)量直接關(guān)系到煤礦的安全生產(chǎn),需要對礦井中注漿參數(shù)實施遠程實時檢測。
注漿參數(shù)檢測系統(tǒng)是一種實時遠程檢測系統(tǒng),通過現(xiàn)場設(shè)備對注漿的漿液濃度、實時流量等相關(guān)數(shù)據(jù)進行實時檢測,通過網(wǎng)絡(luò)將數(shù)據(jù)傳輸?shù)綑z測中心實時處理和顯示,從而判別注漿是否達到了質(zhì)量要求。
圖1是煤礦開采中對注漿參數(shù)進行遠程監(jiān)控的系統(tǒng)結(jié)構(gòu)圖。系統(tǒng)Web客戶層、Web服務(wù)層和數(shù)據(jù)服務(wù)層。數(shù)據(jù)服務(wù)層的現(xiàn)場數(shù)據(jù)采集設(shè)備(各種傳感器等)將采集到的數(shù)據(jù)傳到OPC服務(wù)器,Web服務(wù)層的Web服務(wù)器安裝有OPC客戶端程序,它通過OPC通訊協(xié)議實時讀取OPC服務(wù)器數(shù)據(jù),再通過asp.net服務(wù)器應(yīng)用程序教學(xué)處理,生成的處理結(jié)果經(jīng)過網(wǎng)絡(luò)傳輸?shù)絎eb客戶層的用戶瀏覽器,供用戶使用。
圖1 注漿參數(shù)檢測系統(tǒng)結(jié)構(gòu)圖
圖2是Web客戶層的瀏覽器上實時生成的注漿漿液流量檢測曲線圖。該圖形是將實時檢測到的漿液流量參數(shù),傳輸?shù)絎eb服務(wù)器后利用GDI+技術(shù)繪制出趨勢圖,客戶端使用Ajax異步刷新方式來動態(tài)更新圖形。通過該圖形,用戶在互聯(lián)網(wǎng)的遠端可以實時的觀察到現(xiàn)場的生產(chǎn)情況,實現(xiàn)遠程實時監(jiān)控。
該方法是在Web服務(wù)器上生成趨勢圖,客戶端使用Ajax異步刷新方式來動態(tài)更新的。較之傳統(tǒng)的ActiveX控件方法,它能有效地穿越網(wǎng)絡(luò)上的各種防火墻的攔截,且可以避免在客戶端注冊ActiveX控件帶來的問題。它能與SQL Server無縫對接,高效讀寫現(xiàn)場實時數(shù)據(jù);它能利用微軟.Met平臺,實現(xiàn)監(jiān)控系統(tǒng)與信息系統(tǒng)的融合,從而實現(xiàn)監(jiān)控和決策統(tǒng)一。
圖2 注漿漿液實時流量檢測曲線截圖
煤礦開采中安全工作至關(guān)重要,通過實時遠程檢測系統(tǒng)可以對生產(chǎn)各個環(huán)節(jié)的目標(biāo)參數(shù)進行監(jiān)控,確保安全生產(chǎn)。遠程實時檢測趨勢線的設(shè)計是網(wǎng)絡(luò)化檢測系統(tǒng)應(yīng)用的一項基礎(chǔ)性技術(shù),文章提出的“用GDI+和Ajax技術(shù)”設(shè)計趨勢線,是一項新的技術(shù)。在煤炭開采中通過對注漿漿液流量的監(jiān)控應(yīng)用表明,該方法是可行的,能克服目前趨勢線設(shè)計技術(shù)中存在的問題。
[1] 錢東海,李福軍.基于W eb和OPC技術(shù)的遠程檢測系統(tǒng)的研究[J].計算機應(yīng)用與軟件,2008,2:170-172.
[2] 郝小繪,渠云田,姚李威.基于ActiveX技術(shù)的煤礦供電繪圖方法研究[J].煤炭技術(shù),2011,9:30-31
[3] 寧桂峰.礦井綜合自動化信息集成平臺設(shè)計研究[J].煤礦開采,2008,12:11-12.
[4] 劉敏.KEPServer在PLC和VB.MET通訊中的應(yīng)用[J].大眾科技,2012,7:42-45.
[5] 張琪,陳和平,馬科.基于VC++.Met的JPEG圖像顯示方法[J].計算機應(yīng)用與軟件,2008,10:227-228.
[6] 黃葵,朱興動.基于ASP.MET AJAX的web頁面異步刷新模式研究[J].微計算機信息,2010,9:66-67.
Design Technology on the Trend Line of Remote Rea l.Time Detection System
GE Zhong.ze CU IYuan.xing
(Department of Computer Science,E Zhou University,Ezhou 436000,China)
With the development of automation technology,internet-based remote real-time detection began to get application in coalmining.How to design and detect the trend line in aWeb environment is an issue we often face.As to recent existed questions in the trend line drawing technology,based on GDI+and Ajax technology,this paper puts forward a new method for drawing and detailed steps to drawing a trend line.The method has been applied in the coalmining and proved to be feasible.
detection trend line;OPC;Activex;Ajax
TP311.1
A
1009-0312(2014)01-0036-04
2013-09-23
葛中澤(1969—),男,湖北鄂州人,副教授,碩士,主要從事軟件工程與自動化研究。