999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于.NET技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2010-04-12 00:00:00陳春娥
現(xiàn)代電子技術(shù) 2010年13期

摘 要:為克服傳統(tǒng)監(jiān)控系統(tǒng)中存在的系統(tǒng)數(shù)據(jù)實(shí)時(shí)性不強(qiáng)、有效資源不能共享等缺陷,提出一種基于.NET技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng),該系統(tǒng)采用B/S模式實(shí)現(xiàn)與局域網(wǎng)的無(wú)縫連接;利用多線程技術(shù)實(shí)現(xiàn)數(shù)據(jù)的采集和處理;利用Socket通信技術(shù)保證現(xiàn)場(chǎng)數(shù)據(jù)和操作指令的可靠傳輸;利用先進(jìn)的GDI+技術(shù)實(shí)現(xiàn)動(dòng)態(tài)圖形的生成和傳送。著重從服務(wù)器端的數(shù)據(jù)采集處理、數(shù)據(jù)通信及客戶端的動(dòng)態(tài)圖形顯示三個(gè)方面對(duì)監(jiān)控系統(tǒng)的實(shí)現(xiàn)進(jìn)行論述。該系統(tǒng)不但彌補(bǔ)了傳統(tǒng)監(jiān)控系統(tǒng)的不足,而且提高了系統(tǒng)的實(shí)時(shí)性和快速性。

關(guān)鍵詞:遠(yuǎn)程監(jiān)控; 多線程; Socket; 動(dòng)態(tài)圖形

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1004-373X(2010)13-0137-03

Design and Realization of Remote Monitoring System Based on .NET Technology

CHEN Chun-e

(College of Physics and Information Technology, Sh

nxi Normal University, Xi’an 710062, China)

Abstract: A remote monitoring system based on .NET technology is proposed for overcoming defects in traditional monitoring system such as weak real-time data and unshared efficient resource. This system adopts B/S mode to connect WAN and LAN seamlessly, uses multithreading technique to realize data acquisition and processing, deploys the Socket technology to ensure a reliable data transmission, uses GDI+ technology to achieve dynamic graphics generation and transmission. The monitoring system is realized by the data acquisition, processing and transmission of server-side and dynamic graphic display of client-side. The system makes up the deficiency of the traditional monitoring system, and improves the speedy and real-time performance.

Keywords: remote monitoring; multithreading; Socket; dynamic figure

遠(yuǎn)程監(jiān)控系統(tǒng)指通過局域網(wǎng)、廣域網(wǎng)等計(jì)算機(jī)網(wǎng)絡(luò),使用TCP/IP技術(shù),遠(yuǎn)程實(shí)現(xiàn)對(duì)工業(yè)生產(chǎn)過程的監(jiān)視及控制,讓管理層或調(diào)度人員看到過去只有操作人員才能看到的生產(chǎn)現(xiàn)場(chǎng)的實(shí)時(shí)信息,并且能夠?qū)崿F(xiàn)對(duì)生產(chǎn)現(xiàn)場(chǎng)的遠(yuǎn)程調(diào)度、指揮決策以及遠(yuǎn)程對(duì)生產(chǎn)設(shè)備的在線配置和故障診斷等功能[1]。傳統(tǒng)的監(jiān)控系統(tǒng)因前臺(tái)的人機(jī)界面層和后臺(tái)的數(shù)據(jù)采集層復(fù)雜程度不同常采用不同的開發(fā)環(huán)境,兩層都是能獨(dú)立運(yùn)行的應(yīng)用程序,在實(shí)際使用時(shí)系統(tǒng)維護(hù)困難、配置復(fù)雜且遠(yuǎn)程調(diào)度的靈活性也很差,網(wǎng)絡(luò)技術(shù)和.NET技術(shù)的發(fā)展很好地解決了上述問題,為更好地實(shí)現(xiàn)遠(yuǎn)程監(jiān)控提供了開發(fā)平臺(tái)。本文提出了一種在.NET技術(shù)基礎(chǔ)上構(gòu)建的基于B/S結(jié)構(gòu)的遠(yuǎn)程監(jiān)控系統(tǒng),克服了傳統(tǒng)監(jiān)控系統(tǒng)的弊端,并使得系統(tǒng)的實(shí)時(shí)性和快速性得到了提高。

1 遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)

1.1 系統(tǒng)的總體結(jié)構(gòu)

遠(yuǎn)程監(jiān)控系統(tǒng)一般由現(xiàn)場(chǎng)數(shù)據(jù)采集與控制子系統(tǒng)、數(shù)據(jù)存儲(chǔ)與轉(zhuǎn)發(fā)子系統(tǒng)、客戶端接收與命令發(fā)送子系統(tǒng)三部分組成,監(jiān)控系統(tǒng)的網(wǎng)絡(luò)架構(gòu)如圖1所示。在圖1中,現(xiàn)場(chǎng)測(cè)控單元負(fù)責(zé)采集各個(gè)現(xiàn)場(chǎng)控制節(jié)點(diǎn)的運(yùn)行情況數(shù)據(jù),然后與應(yīng)用服務(wù)器交換數(shù)據(jù)以實(shí)現(xiàn)數(shù)據(jù)的通信與顯示;數(shù)據(jù)庫(kù)服務(wù)器用于存儲(chǔ)系統(tǒng)實(shí)時(shí)與歷史運(yùn)行數(shù)據(jù)以及系統(tǒng)設(shè)備參數(shù)等,采集到的實(shí)時(shí)參數(shù)保存于實(shí)時(shí)數(shù)據(jù)庫(kù)以便響應(yīng)客戶端的實(shí)時(shí)數(shù)據(jù)請(qǐng)求,實(shí)時(shí)數(shù)據(jù)更新后送歷史數(shù)據(jù)庫(kù)保存便于統(tǒng)計(jì)分析;Web服務(wù)器和應(yīng)用服務(wù)器提供實(shí)時(shí)監(jiān)控功能以及用戶的查詢分析。

圖1 系統(tǒng)網(wǎng)絡(luò)架構(gòu)

1.2 監(jiān)控系統(tǒng)的軟件模型

該遠(yuǎn)程監(jiān)控系統(tǒng)采用基于Internet的TCP/IP協(xié)議,通過B/S[2]方式實(shí)現(xiàn)對(duì)遠(yuǎn)程設(shè)備的實(shí)時(shí)監(jiān)測(cè)和控制,其工作模式如圖2所示。采用B/S結(jié)構(gòu),客戶端獲取數(shù)據(jù)的渠道不止一條,對(duì)于非實(shí)時(shí)數(shù)據(jù)可以直接向Web服務(wù)器發(fā)出數(shù)據(jù)查詢請(qǐng)求,對(duì)實(shí)時(shí)數(shù)據(jù)可通過頁(yè)面內(nèi)嵌的ActiveX控件,直接與應(yīng)用服務(wù)器通信。同時(shí)B/S模式可實(shí)現(xiàn)不同平臺(tái)的跨接問題,實(shí)現(xiàn)Web網(wǎng)與局域網(wǎng)的無(wú)縫連接,使得不管是監(jiān)控中心內(nèi)部管理員還是上級(jí)調(diào)度人員以及普通用戶只需要安裝通用的瀏覽器就可以訪問遠(yuǎn)程設(shè)備相應(yīng)的運(yùn)行信息。

圖2 監(jiān)控系統(tǒng)的工作模式

1.3 系統(tǒng)功能模塊

用戶管理模塊:包括新增、修改、刪除用戶和對(duì)系統(tǒng)的權(quán)限進(jìn)行設(shè)置,確保不同的權(quán)限只能執(zhí)行相應(yīng)的操作。

實(shí)時(shí)數(shù)據(jù)顯示模塊:以圖形、表格的形式顯示出監(jiān)控點(diǎn)的最新數(shù)據(jù)。

實(shí)時(shí)控制模塊:對(duì)遠(yuǎn)程設(shè)備的運(yùn)行參數(shù)進(jìn)行修改,從而控制其運(yùn)行狀態(tài)。

數(shù)據(jù)查詢模塊:正常監(jiān)控?cái)?shù)據(jù)查詢或者根據(jù)自定義條件對(duì)歷史數(shù)據(jù)進(jìn)行分析查詢。

統(tǒng)計(jì)報(bào)表模塊:生成監(jiān)控?cái)?shù)據(jù)報(bào)表、綜合運(yùn)行數(shù)據(jù)報(bào)表,并能夠生成日?qǐng)?bào)、月報(bào)、半年報(bào)和年報(bào)等各種報(bào)表,報(bào)表格式可按照用戶的要求定制,可直接進(jìn)行預(yù)覽、打印。

2 遠(yuǎn)程監(jiān)控系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)

2.1 基于多線程的數(shù)據(jù)采集和處理[3-5]

遠(yuǎn)程監(jiān)控系統(tǒng)既要進(jìn)行實(shí)時(shí)數(shù)據(jù)采集處理,又要進(jìn)行數(shù)據(jù)顯示刷新,還要不斷掃描是否有故障發(fā)生,同時(shí)還要接受遠(yuǎn)程的控制命令,為了使系統(tǒng)能夠穩(wěn)定、快速的運(yùn)行在此采用多線程技術(shù)。.NET是一個(gè)多線程的環(huán)境,.NET基礎(chǔ)類庫(kù)的System.Threading命名空間提供了大量的類和接口支持多線程,它能夠創(chuàng)建并控制線程,設(shè)置其優(yōu)先級(jí)并獲取其狀態(tài)。

分析服務(wù)器端程序任務(wù),主要有偵聽、接收客戶端連接請(qǐng)求,數(shù)據(jù)采集,數(shù)據(jù)處理、傳輸和存儲(chǔ)、控制命令的接收與下發(fā)等,因此在程序中使用了四個(gè)線程處理上述任務(wù)。分別為:

(1) 主線程:主要進(jìn)行一系列相關(guān)的系統(tǒng)初始化、輔助線程的創(chuàng)建與管理、數(shù)據(jù)刷新顯示、數(shù)據(jù)交互及報(bào)表管理打印等。

(2) 數(shù)據(jù)采集、處理線程:主要輪詢各現(xiàn)場(chǎng)測(cè)控單元,接收現(xiàn)場(chǎng)設(shè)備運(yùn)行數(shù)據(jù),創(chuàng)建數(shù)據(jù)處理線程。

(3) 數(shù)據(jù)處理線程:主要對(duì)采集來(lái)的現(xiàn)場(chǎng)原始數(shù)據(jù)進(jìn)行格式識(shí)別,打包發(fā)往客戶端;按一定的時(shí)間間隔將識(shí)別后的數(shù)據(jù)存入歷史數(shù)據(jù)庫(kù),同時(shí)在這個(gè)過程中對(duì)故障報(bào)警做出立即響應(yīng)。

(4) 控制命令線程:主要從用戶的操作中獲取控制命令,然后根據(jù)被控對(duì)象組織相應(yīng)的報(bào)文,并調(diào)用通訊模塊下發(fā)調(diào)控命令。

下面的代碼說(shuō)明線程的創(chuàng)建過程:

//在代碼段的頂部導(dǎo)入名稱空間

Imports System

Imports System.Threading

//主線程創(chuàng)建和管理輔助線程

Protected Sub main()

Dim object1 as new class1() //創(chuàng)建數(shù)據(jù)采集類Class1的對(duì)象

Dim object2 as new class2() //創(chuàng)建數(shù)據(jù)處理類Class2的對(duì)象

Dim t1 as Thread=new Thread(Addressof object1.method1)

//創(chuàng)建數(shù)據(jù)采集線程的對(duì)象,并通過Addressof操作符找到t1線程要運(yùn)行方法的地址

Dim t2 as Thread=new Thread(Addressof object2.method2)

//創(chuàng)建數(shù)據(jù)采集線程的對(duì)象,并通過Addressof操作符找到t2線程要運(yùn)行方法的地址

T1.start()//啟動(dòng)數(shù)據(jù)采集線程

T2.start()//啟動(dòng)數(shù)據(jù)處理線程

…… //異常處理

End sub

在系統(tǒng)的實(shí)現(xiàn)過程中,將數(shù)據(jù)的各種處理方法封裝在類中,為了達(dá)到數(shù)據(jù)采集和數(shù)據(jù)處理的同步,使用SyncLock聲明來(lái)保證執(zhí)行的多線程不會(huì)同時(shí)訪問共享數(shù)據(jù)。

2.2 基于Socket技術(shù)實(shí)現(xiàn)系統(tǒng)的實(shí)時(shí)監(jiān)控[6-7]

監(jiān)控系統(tǒng)中客戶端和前置機(jī)均支持TCP/IP協(xié)議,同時(shí)為了保證采集到的現(xiàn)場(chǎng)設(shè)備運(yùn)行數(shù)據(jù)通過網(wǎng)絡(luò)傳輸時(shí)的可靠性、準(zhǔn)確性和控制命令傳輸?shù)募皶r(shí)性,網(wǎng)絡(luò)通信采用基于TCP/IP基礎(chǔ)上的Socket技術(shù)來(lái)實(shí)現(xiàn),它通過內(nèi)置的流量控制解決數(shù)據(jù)的擁塞,將數(shù)據(jù)當(dāng)作字節(jié)流,應(yīng)用程序可以發(fā)送任意長(zhǎng)的數(shù)據(jù),這正符合系統(tǒng)對(duì)數(shù)據(jù)的要求,同時(shí)客戶端發(fā)出的調(diào)控命令根據(jù)設(shè)備協(xié)議編輯結(jié)果組裝成數(shù)據(jù)包,通過現(xiàn)場(chǎng)測(cè)控單元發(fā)送給設(shè)備,實(shí)現(xiàn)對(duì)設(shè)備的調(diào)控。

在實(shí)現(xiàn)的過程中,通過在應(yīng)用服務(wù)器內(nèi)封裝Socket的服務(wù)器端,而在ActiveX控件內(nèi)封裝Socket的客戶端應(yīng)用,并將ActiveX控件嵌入Web頁(yè)面實(shí)現(xiàn)監(jiān)控界面的顯示。當(dāng)用戶第一次訪問服務(wù)器的網(wǎng)頁(yè)時(shí),IE瀏覽器會(huì)自動(dòng)把ActiveX控件下載到本地計(jì)算機(jī)中,并自動(dòng)注冊(cè)。通過使用ActiveX控件和Socket,客戶端可以直接讀取應(yīng)用服務(wù)器上數(shù)據(jù)采集程序采集的數(shù)據(jù)并實(shí)時(shí)更新,并不需要通過數(shù)據(jù)庫(kù)進(jìn)行中轉(zhuǎn),這樣用戶就可以對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行實(shí)時(shí)監(jiān)控。查詢歷史數(shù)據(jù)時(shí),用戶通過瀏覽器向Web服務(wù)器提出請(qǐng)求,Web服務(wù)器接受請(qǐng)求后通過ADO.NET訪問數(shù)據(jù)庫(kù),并將查詢結(jié)果以HTML頁(yè)面的形式返回到瀏覽器。.NET框架下在System.Net.Socket命名空間內(nèi)可以實(shí)現(xiàn)Socket接口的托管。以下的示例顯示如何使用Socket向服務(wù)器發(fā)送數(shù)據(jù)和接收響應(yīng)。

//發(fā)送數(shù)據(jù)

Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp)//創(chuàng)建Socket對(duì)象并通過TCP發(fā)送數(shù)據(jù)

s.Connect(Ephost) //通過特定端口連接服務(wù)器

s.Send(ByteGet,ByteGet.Length,0) //向服務(wù)器發(fā)送采集到的數(shù)據(jù)

//接受響應(yīng)

Dim bytes As Int32=s.Receive(RecvBytes, RecvBytes.Length, 0)

strRetPage=″Default HTML page on″ server ″:″ ControlChars.CrLf

strRetPage = strRetPage+ASCII.GetString(RecvBytes, 0, bytes)

2.3 基于GDI+技術(shù)的動(dòng)態(tài)圖形的生成和傳送[8]

對(duì)于遠(yuǎn)程監(jiān)控系統(tǒng)不僅要求其能夠提供各種數(shù)據(jù)報(bào)表,同時(shí)還要求提供各種趨勢(shì)曲線的分析畫面,給人以形象直觀的印象中。各種設(shè)備對(duì)象的運(yùn)行情況根據(jù)實(shí)時(shí)數(shù)據(jù)改變狀態(tài),動(dòng)態(tài)圖形相當(dāng)復(fù)雜,為了將動(dòng)態(tài)圖形在瀏覽器中顯示,方便監(jiān)控中心的工作人員進(jìn)行監(jiān)控,在該監(jiān)控系統(tǒng)中采用了.NET提供的GDI+繪圖類庫(kù)在服務(wù)器端生成復(fù)雜的動(dòng)態(tài)圖形,然后根據(jù)瀏覽器的請(qǐng)求將動(dòng)態(tài)圖形實(shí)時(shí)發(fā)送到客戶機(jī)的方法。.NET生成圖形功能在System.Drawing名稱空間中封裝建立一個(gè)普通圖形所要求的邏輯后,構(gòu)造一個(gè)圖形對(duì)象通過它的Save方法將其保存到磁盤或者將其發(fā)送到.NET輸出流中,在ASPNET中通過ResponseO(jiān)utputStream屬性解釋.NET輸出流,這樣就可以直接將圖形的內(nèi)容發(fā)送到客戶端瀏覽器。具體實(shí)現(xiàn)如下:

dim newCharEngine as New ChartEngine

//定義繪圖對(duì)象,其中ChartEngine使用.NET提供的GDI+編寫的畫圖類模塊

dim pl as BitMap=newCharEngine.DrawChart(600,400,myChartData)

//使用ChartEngine類,圖形生成后以流的形式發(fā)送到客戶端瀏覽器

pl.Save(Response.OutputStream,ImageFormat.JPEG)

3 結(jié) 語(yǔ)

.NET 是一個(gè)開發(fā)和運(yùn)行軟件的新環(huán)境,便于開發(fā)基于 Web 的服務(wù),擁有豐富的運(yùn)行庫(kù)服務(wù)以支持用多種編程語(yǔ)言編寫的組件,具有跨語(yǔ)言和跨平臺(tái)的互操作能力。基于.NET的遠(yuǎn)程監(jiān)控系統(tǒng)實(shí)現(xiàn)了對(duì)各種監(jiān)測(cè)對(duì)象的實(shí)時(shí)監(jiān)控,并具有實(shí)時(shí)故障診斷,歷史記錄可查詢、打印,易于升級(jí)和擴(kuò)展等諸多優(yōu)點(diǎn),目前已經(jīng)在實(shí)際中得到了應(yīng)用。

參考文獻(xiàn)

[1]劉建榮,武樺,趙楊.基于.NET的水電廠遠(yuǎn)程監(jiān)控系統(tǒng)的研究[ J] .西北水力發(fā)電,2006(1):4-7.

[2]郝曉弘,蘇淵.基于Web的變電站遠(yuǎn)程監(jiān)控系統(tǒng)[ J] .電網(wǎng)技術(shù),2003(7):32-35.

[3]張焰林.基于VB.NET的多線程技術(shù)應(yīng)用[ J] .計(jì)算機(jī)系統(tǒng)應(yīng)用,2009(2):136-138.

[4]馮美霞.多線程應(yīng)用程序的同步技術(shù)[ J] .計(jì)算機(jī)應(yīng)用,2001(6):24-26.

[5]孫開放,張紅.再談多線程技術(shù)在變電站監(jiān)控系統(tǒng)中的應(yīng)用[ J] .微計(jì)算機(jī)信息,2006,22(7):60-61.

[6]鄢鋒,桂衛(wèi)華,胡志坤,等.基于Socket的整流裝置遠(yuǎn)程監(jiān)控系統(tǒng)[ J] .計(jì)算機(jī)工程,2008(5):243-245.

[7]李宗寶,陳虹,董航飛,等.基于ASP.NET技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng)實(shí)現(xiàn)方法[ J] .電力系統(tǒng)通信,2007,34(2):40-42.

[8]牟罕勇,張禮貴.GDI+和.NET技術(shù)在機(jī)艙自動(dòng)化監(jiān)控系統(tǒng)中的應(yīng)用[ J] .江蘇船舶,2009(4):32-34.

[9]胡士毅,魏豐,曹宇.一種基于.NET技術(shù)的Web遠(yuǎn)程監(jiān)控方案[ J] .工業(yè)控制計(jì)算機(jī),2003(2):39-40.

[10]王超,張鵬.ASP.NET/XML深入編程技術(shù)[M].北京:希望電子出版社,2002.

主站蜘蛛池模板: 日韩午夜伦| 成人欧美日韩| 97se亚洲综合在线韩国专区福利| 亚洲小视频网站| 2019年国产精品自拍不卡| 成人中文字幕在线| 亚洲国产综合第一精品小说| 國產尤物AV尤物在線觀看| 91网址在线播放| 色国产视频| 丁香五月亚洲综合在线| 国产精品人成在线播放| 欧美一级视频免费| 亚洲国产成人在线| 5388国产亚洲欧美在线观看| 久草国产在线观看| 成人日韩精品| 亚洲视频无码| 亚洲大学生视频在线播放| 久久综合九色综合97婷婷| 国产精品30p| 亚洲永久色| 在线观看免费人成视频色快速| 91精品国产情侣高潮露脸| 熟女成人国产精品视频| 中文字幕人成乱码熟女免费| 免费A级毛片无码无遮挡| 国产乱子精品一区二区在线观看| 午夜国产理论| 日本国产精品一区久久久| 国产自视频| 欧美翘臀一区二区三区| 国产高清免费午夜在线视频| 四虎亚洲国产成人久久精品| 日韩欧美国产成人| 天天色天天综合| 欧美日韩国产高清一区二区三区| 日韩黄色在线| 午夜不卡视频| 亚洲三级视频在线观看| 中文字幕1区2区| 成人午夜免费观看| 韩日午夜在线资源一区二区| 午夜毛片福利| 亚洲 欧美 日韩综合一区| 996免费视频国产在线播放| 免费全部高H视频无码无遮掩| 91精品国产综合久久香蕉922 | 久久99精品久久久久纯品| 亚洲日韩久久综合中文字幕| 人妻丰满熟妇av五码区| 亚洲日韩每日更新| 欧美日韩在线亚洲国产人| 国产精品一区在线观看你懂的| 毛片在线播放a| 日韩经典精品无码一区二区| 国产精品lululu在线观看| 成人在线观看一区| 亚洲男人的天堂在线观看| 无码精品国产dvd在线观看9久| 欧美区国产区| 成人亚洲国产| 午夜a视频| 国产精品福利导航| 亚洲国产精品一区二区第一页免 | 国产高清免费午夜在线视频| 91久久大香线蕉| 不卡的在线视频免费观看| 白丝美女办公室高潮喷水视频| 欧美日本激情| 米奇精品一区二区三区| 国产精品久久久久久影院| 91久久偷偷做嫩草影院电| 欧美国产日产一区二区| 国产制服丝袜91在线| 粉嫩国产白浆在线观看| 一区二区欧美日韩高清免费 | 免费毛片全部不收费的| 黄色污网站在线观看| 精品国产一区二区三区在线观看| 日本黄网在线观看| 欧美黄网在线|