??? 摘?要: 介紹了網(wǎng)絡(luò)控制系統(tǒng)的基本概念,闡述了Web的體系結(jié)構(gòu)并以微軟的最新Web開發(fā)技術(shù)Asp.Net" title="Asp.Net">Asp.Net作為系統(tǒng)開發(fā)工具,提出一種基于Web的監(jiān)控組態(tài)軟件" title="監(jiān)控組態(tài)軟件">監(jiān)控組態(tài)軟件設(shè)計(jì)方法。用戶可通過瀏覽器實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)設(shè)備狀態(tài)的監(jiān)控。該軟件具有編程簡(jiǎn)單、客戶端" title="客戶端">客戶端免維護(hù)等優(yōu)點(diǎn)。
??? 關(guān)鍵詞: 監(jiān)控組態(tài)軟件; 萬維網(wǎng); Asp.Net; 網(wǎng)絡(luò)控制
?
??? 監(jiān)控組態(tài)軟件是集計(jì)算機(jī)技術(shù)、控制技術(shù)、網(wǎng)絡(luò)技術(shù)為一體的高新技術(shù)產(chǎn)品,具有控制功能強(qiáng)、操作方便和可靠性高等特點(diǎn),可以方便地用于對(duì)工業(yè)現(xiàn)場(chǎng)進(jìn)行數(shù)據(jù)采集和監(jiān)視控制。監(jiān)控技術(shù)經(jīng)歷了單機(jī)監(jiān)控系統(tǒng)、集中式監(jiān)控系統(tǒng)和網(wǎng)絡(luò)范圍的遠(yuǎn)程監(jiān)控" title="遠(yuǎn)程監(jiān)控">遠(yuǎn)程監(jiān)控三個(gè)發(fā)展階段。遠(yuǎn)程監(jiān)控是指本地計(jì)算機(jī)通過網(wǎng)絡(luò)系統(tǒng)對(duì)遠(yuǎn)端現(xiàn)場(chǎng)智能設(shè)備進(jìn)行監(jiān)測(cè)和控制。從架構(gòu)模式上區(qū)分,監(jiān)控組態(tài)軟件大致可分為C/S(客戶端/服務(wù)器)模式和B/S(瀏覽器/服務(wù)器)模式兩大類。目前,國(guó)內(nèi)的監(jiān)控組態(tài)軟件以傳統(tǒng)的C/S模式為主,而借助日益普及的Internet網(wǎng)絡(luò)或者LAN網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程監(jiān)控,是工業(yè)控制的一大發(fā)展?;赪eb的實(shí)時(shí)控制技術(shù)是控制技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)相結(jié)合的一種新型遠(yuǎn)程監(jiān)控技術(shù),已成為當(dāng)前監(jiān)控組態(tài)軟件的發(fā)展趨勢(shì)。
1 Asp.Net介紹
??? Asp.Net代表了Microsoft Web開發(fā)的最新方向,它和早期的Microsoft Web開發(fā)環(huán)境的主要差別在于Asp.Net建立在.Net平臺(tái)的基礎(chǔ)上。
??? Asp.Net的核心是公共語言運(yùn)行CLR。CLR 是一個(gè)高效率的執(zhí)行引擎,程序代碼的執(zhí)行由Runtime管理。Runtime的作用是產(chǎn)生對(duì)象、方法(即對(duì)象所能執(zhí)行的動(dòng)作)的呼叫等,Runtime 也可以提供程序代碼一些額外的服務(wù)。在此把要通過CLR 的控制才能執(zhí)行的程序代碼稱為Managed Code,同時(shí)CLR還提供了.Net應(yīng)用的許多關(guān)鍵性服務(wù),包括:(1)代碼管理。(2)安全支持。(3)垃圾收集和錯(cuò)誤處理。CLR的主要任務(wù)就是將編譯產(chǎn)生的中間語言文件轉(zhuǎn)換成目標(biāo)機(jī)器上的本地代碼。
??? 在CLR基礎(chǔ)之上是一個(gè)巨大的類庫,它主要處理程序運(yùn)行時(shí)所要求的各項(xiàng)任務(wù)。Asp.Net支持多種源代碼語言,本文選用C#。
??? 相對(duì)于傳統(tǒng)的Asp,Asp.Net在配置、部署、調(diào)試和安全性等方面都有了很大的改進(jìn)。傳統(tǒng)Asp的配置保存在IIS元數(shù)據(jù)庫中。元數(shù)據(jù)庫是一個(gè)二進(jìn)制的存儲(chǔ)庫,只能通過COM API來管理,而Asp.Net則通過web.config的XML文件指定Asp.Net應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序的配置,該文件放置在應(yīng)用程序根目錄的頂端,并且可以用任何文本編輯器查看和配置。Asp.Net還具有較強(qiáng)的安全性,通過IIS提供身份驗(yàn)證和授權(quán)服務(wù),支持Basic、Digest、Windows身份驗(yàn)證,支持窗體的身份驗(yàn)證,允許應(yīng)用程序提供它們自己的登錄UI,并執(zhí)行它們自己的身份驗(yàn)證。此外,Asp.Net還提供緩存來提高Web應(yīng)用程序的性能。
2 總體設(shè)計(jì)
??? 隨著Internet技術(shù)的發(fā)展,瀏覽器界面已經(jīng)成為計(jì)算機(jī)桌面的基本平臺(tái),將瀏覽器技術(shù)運(yùn)用于監(jiān)控組態(tài)軟件及將瀏覽器界面作為網(wǎng)絡(luò)控制系統(tǒng)的人機(jī)界面,對(duì)擴(kuò)大實(shí)時(shí)系統(tǒng)的應(yīng)用范圍,減少維護(hù)工作量非常有利?;赪eb技術(shù)的監(jiān)控組態(tài)軟件網(wǎng)絡(luò)構(gòu)架如圖1所示。
?

圖1 監(jiān)控組態(tài)軟件網(wǎng)絡(luò)構(gòu)架
2.1 軟件的架構(gòu)與功能
??? 在B/S模式下采用傳統(tǒng)的三層體系結(jié)構(gòu)來設(shè)計(jì)監(jiān)控組態(tài)軟件,并不能直接實(shí)現(xiàn)與被控對(duì)象進(jìn)行數(shù)據(jù)通信,因此基于Web技術(shù)的監(jiān)控組態(tài)軟件采用四層體系結(jié)構(gòu)進(jìn)行設(shè)計(jì),如圖2所示。它是在一般的三層體系結(jié)構(gòu)的基礎(chǔ)上增加了控制層,用來實(shí)現(xiàn)Web服務(wù)器與被控對(duì)象的通信,進(jìn)一步控制被控對(duì)象。這樣既充分利用了現(xiàn)有的網(wǎng)絡(luò)資源和工業(yè)現(xiàn)場(chǎng)資源,也使得兩者有機(jī)地結(jié)合在一起,達(dá)到了Web服務(wù)器與現(xiàn)場(chǎng)設(shè)備通過現(xiàn)場(chǎng)總線進(jìn)行遠(yuǎn)程通信的目的。
?

??? 各層功能如下:
??? (1)客戶層:它是監(jiān)控組態(tài)軟件的用戶接口部分,是用戶與監(jiān)控組態(tài)軟件交互信息的窗口,即人機(jī)交互界面。用戶通過瀏覽器對(duì)現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè),發(fā)送控制命令和參數(shù),并能夠通過瀏覽器對(duì)工程的組態(tài)架構(gòu)及圖像進(jìn)行修改。
??? (2)功能層:它作為Web Service應(yīng)用程序服務(wù)器端,包括監(jiān)控組態(tài)軟件的事務(wù)處理邏輯,負(fù)責(zé)客戶層與數(shù)據(jù)層及控制層之間的數(shù)據(jù)傳輸。具體表現(xiàn)為接收用戶或控制服務(wù)器的請(qǐng)求(消息),以執(zhí)行對(duì)應(yīng)的處理程序;或與數(shù)據(jù)層進(jìn)行連接,向數(shù)據(jù)層提出數(shù)據(jù)處理請(qǐng)求,并將數(shù)據(jù)層處理的結(jié)果反饋給請(qǐng)求端。本文選擇IIS6(Internet Information Service)作為Web服務(wù)器平臺(tái),在IIS6上可以通過IP地址、端口號(hào)和主機(jī)頭名稱來配置多個(gè)Web站點(diǎn)。
??? (3)數(shù)據(jù)層:它由數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫所構(gòu)成,包括物理數(shù)據(jù)庫和相關(guān)數(shù)據(jù)處理應(yīng)用程序,其功能為實(shí)現(xiàn)監(jiān)控組態(tài)軟件的數(shù)據(jù)處理邏輯。主要是通過功能層的數(shù)據(jù)處理請(qǐng)求,調(diào)用相關(guān)處理程序以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的查詢、增加和刪除等功能。由于在基于Web技術(shù)的監(jiān)控組態(tài)軟件中涉及到較為龐大的數(shù)據(jù)群,本文選擇SQL Server作為物理數(shù)據(jù)庫,并采用ADO.NET數(shù)據(jù)庫技術(shù)對(duì)數(shù)據(jù)庫進(jìn)行管理。ADO.NET使用離線數(shù)據(jù)集,不需要長(zhǎng)時(shí)間地鏈接和鎖定數(shù)據(jù)庫,在線用戶不會(huì)爭(zhēng)奪數(shù)據(jù)庫資源,在對(duì)大量數(shù)據(jù)進(jìn)行操作時(shí)其高效率的性能完全能夠滿足用戶的需求。
??? (4)控制層:位于控制服務(wù)器端,包括監(jiān)控組態(tài)軟件的控制邏輯。它作為客戶層與被控對(duì)象的中間設(shè)備,向被控對(duì)象發(fā)送控制命令、接收被控對(duì)象的實(shí)時(shí)狀態(tài)信息和請(qǐng)求信息。
2.2 軟件的控制原理
??? 用戶通過客戶端的瀏覽器登錄Web服務(wù)器,Web服務(wù)器請(qǐng)求數(shù)據(jù)庫進(jìn)行身份認(rèn)證后,將嵌入了組態(tài)圖像的控制監(jiān)測(cè)頁面以.aspx的形式返回客戶端供用戶使用。瀏覽器端通過事件機(jī)制獲取用戶的各種操作并提交給Web服務(wù)器。用戶可以通過控制服務(wù)器訪問和控制被控對(duì)象,與被控對(duì)象進(jìn)行數(shù)據(jù)通信;可以把被控對(duì)象的狀態(tài)、參數(shù)等數(shù)據(jù)存入數(shù)據(jù)庫;也可以把數(shù)據(jù)庫中的控制命令與定值等數(shù)據(jù)發(fā)送給被控對(duì)象。
??? 通過Asp.Net中的Session對(duì)象對(duì)每一個(gè)用戶建立一個(gè)專用的工作線程,當(dāng)客戶端每新增一個(gè)用戶時(shí),即建立一個(gè)Session對(duì)象,標(biāo)志該用戶的身份,并同時(shí)建立起一個(gè)工作線程負(fù)責(zé)對(duì)該用戶的各種請(qǐng)求進(jìn)行管理,當(dāng)用戶退出后Session對(duì)象即消亡,同時(shí)Session對(duì)象所標(biāo)志的該用戶工作線程結(jié)束。采用了多線程技術(shù)的監(jiān)控組態(tài)軟件能夠滿足大量用戶同時(shí)在線、同時(shí)發(fā)出各種請(qǐng)求時(shí),Web服務(wù)器也能夠及時(shí)地響應(yīng)用戶的請(qǐng)求,避免了單線程技術(shù)所帶來的信息擁塞而使用戶等待的情況出現(xiàn)。
3 軟件實(shí)現(xiàn)的關(guān)鍵技術(shù)
3.1實(shí)現(xiàn)控制服務(wù)器與現(xiàn)場(chǎng)設(shè)備間的通信
??? 在局域網(wǎng)絡(luò)基礎(chǔ)上構(gòu)建互連系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程控制,其關(guān)鍵是實(shí)現(xiàn)控制服務(wù)器對(duì)現(xiàn)場(chǎng)工控機(jī)的控制,再由工控機(jī)對(duì)串口(并口)或其控制卡加以控制以實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)設(shè)備的通信。因此,網(wǎng)絡(luò)通信采用Socket編程。Socket是TCP/IP協(xié)議傳輸所提供的接口。對(duì)于軟件開發(fā)主要使用兩種類型的套接字:
??? (1)流式套接字:提供了無邊界限制的雙向數(shù)據(jù)流,能夠提供有序、無重復(fù)的傳輸,適用于處理大量數(shù)據(jù)。流式套接字是基于直接連接的,建立在TCP基礎(chǔ)上。
??? (2)數(shù)據(jù)報(bào)套接字:支持雙向數(shù)據(jù)流,但不能保證數(shù)據(jù)的順序和不重復(fù)性,同時(shí)也不十分可靠。數(shù)據(jù)報(bào)是無連接的,由UDP(用戶數(shù)據(jù)報(bào)協(xié)議)支持,幾乎是直接建立在IP層上,傳輸速度比較快。
??? 對(duì)于現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù),由于必須保證傳輸?shù)目煽亢蜏?zhǔn)確,因此,對(duì)于控制服務(wù)器與現(xiàn)場(chǎng)工控機(jī)之間的網(wǎng)絡(luò)通信程序,一般采用基于可靠傳輸協(xié)議TCP基礎(chǔ)上的流式套接字編程加以實(shí)現(xiàn)。圖3是現(xiàn)場(chǎng)工控機(jī)與控制服務(wù)器協(xié)同工作的模型。
?

3.2 安全策略
??? Web服務(wù)器提供用戶認(rèn)證及用戶認(rèn)證訪問權(quán)限,非注冊(cè)用戶無權(quán)登錄到Web服務(wù)器,注冊(cè)用戶權(quán)限分三級(jí):管理員、控制員、一般用戶。管理員有權(quán)發(fā)送定值命令對(duì)現(xiàn)場(chǎng)設(shè)備的參數(shù)進(jìn)行設(shè)置,并能夠增刪用戶??刂茊T有權(quán)發(fā)送控制命令對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行控制。一般用戶能夠登錄到運(yùn)行界面,對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行實(shí)時(shí)狀態(tài)監(jiān)測(cè)。由于現(xiàn)場(chǎng)設(shè)備在同一時(shí)間只能由一個(gè)用戶進(jìn)行控制操作,其他用戶只能瀏覽,因此,為防止現(xiàn)場(chǎng)設(shè)備多用戶使用時(shí)發(fā)生沖突,應(yīng)當(dāng)建立設(shè)備鎖定機(jī)制。
??? 目前,以Web技術(shù)為基礎(chǔ)的通過互聯(lián)網(wǎng)絡(luò)來進(jìn)行遠(yuǎn)程監(jiān)控的技術(shù),已成為監(jiān)控組態(tài)軟件的發(fā)展趨勢(shì)。工業(yè)監(jiān)控系統(tǒng)與Web技術(shù)的結(jié)合實(shí)現(xiàn)了集控制、管理、信息、調(diào)度、網(wǎng)絡(luò)于一體的企業(yè)綜合自動(dòng)化。本文提出的設(shè)計(jì)方案是以Web技術(shù)實(shí)現(xiàn)監(jiān)控組態(tài)軟件的一種實(shí)踐,設(shè)計(jì)中的部分思想已經(jīng)運(yùn)用到實(shí)際的產(chǎn)品開發(fā)中。
??? 本文的創(chuàng)新點(diǎn):(1)Web技術(shù)是監(jiān)控組態(tài)軟件的最新發(fā)展方向,利用網(wǎng)絡(luò)優(yōu)勢(shì)與嵌入式系統(tǒng)的完美結(jié)合,實(shí)現(xiàn)網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)將成為主流,而本文給出的正是將Web技術(shù)應(yīng)用到監(jiān)控組態(tài)軟件中的一種實(shí)現(xiàn)方案。(2)將基于Web技術(shù)的監(jiān)控組態(tài)軟件劃分為四層體系結(jié)構(gòu)進(jìn)行開發(fā),對(duì)基于Web技術(shù)的監(jiān)控組態(tài)軟件的應(yīng)用及普及具有前瞻性。
參考文獻(xiàn)
[1] ?王亞民,陳青. 組態(tài)軟件設(shè)計(jì)與開發(fā)[M]? 西安:西安電子科技大學(xué)出版社,2003.
[2] ?曾志. 基于B/S架構(gòu)Web遠(yuǎn)程控制的研究及實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2005,(11).
[3] ?陳新. 基于Web的遠(yuǎn)程監(jiān)控與數(shù)據(jù)采集系統(tǒng)[J]. 電子科技大學(xué)學(xué)報(bào), 2003,(8).
[4] ?孫磊.Asp.Net在遠(yuǎn)程控制中的應(yīng)用[J].工程設(shè)計(jì)學(xué)報(bào), 2005,(2).
[5] ?KIRTLAND M. Designing component-based application. Microsoft Press, 2000.
[6] ?張婭, 周學(xué)文. COM研究及其在組態(tài)軟件中的應(yīng)用[J]. ?微計(jì)算機(jī)信息(測(cè)控自動(dòng)化),2006,(12).
