譚翠萍
(內(nèi)蒙古建筑職業(yè)技術(shù)學(xué)院,呼和浩特 010050)
所謂B/S結(jié)構(gòu),即瀏覽器/服務(wù)器結(jié)構(gòu),是互聯(lián)網(wǎng)技術(shù)不斷發(fā)展的產(chǎn)物,主要是由表示層、功能層以及數(shù)據(jù)層三層構(gòu)成的[1]。所謂分布式空調(diào)系統(tǒng),也叫做集散空調(diào)系統(tǒng),是對(duì)空調(diào)的運(yùn)行進(jìn)行集中管理以及分散控制的一種計(jì)算機(jī)系統(tǒng)。隨著現(xiàn)代化科學(xué)技術(shù)的迅猛發(fā)展,互聯(lián)網(wǎng)影響力的日益擴(kuò)大,工業(yè)自動(dòng)化水平也有了很大程度的提升,借助分布式控制系統(tǒng)來實(shí)時(shí)監(jiān)控并有效管理空調(diào)的運(yùn)行成為當(dāng)前的一大熱點(diǎn)課題;與此同時(shí),借助WEB技術(shù)以及瀏覽器/客戶端結(jié)構(gòu)實(shí)施遠(yuǎn)程監(jiān)控也受到各個(gè)領(lǐng)域企業(yè)的高度重視和廣泛關(guān)注,并在企業(yè)自動(dòng)化生產(chǎn)發(fā)展中發(fā)揮著不容忽視的重要作用[2]。
本分布式空調(diào)系統(tǒng)主要是由過程檢測(cè)級(jí)、現(xiàn)場(chǎng)控制級(jí)、中央管理級(jí)以及遠(yuǎn)程監(jiān)控級(jí)等四部分構(gòu)成。其中,過程檢測(cè)級(jí)位于分布式空調(diào)系統(tǒng)最前面,主要包括傳感器、變送器以及相應(yīng)的執(zhí)行機(jī)構(gòu)等部分,充當(dāng)?shù)氖菣z測(cè)元件及執(zhí)行器;一系列的智能調(diào)節(jié)儀表以及測(cè)量模塊共同構(gòu)成了現(xiàn)場(chǎng)控制級(jí),其主要作用是收集、處理并控制所有現(xiàn)場(chǎng)過程信號(hào);中央控制計(jì)算機(jī)是中央管理級(jí)的主要部件,通過RS-422、RS-485或ISA總線連接到現(xiàn)場(chǎng)控制級(jí),其主要作用是對(duì)試驗(yàn)情況實(shí)施動(dòng)態(tài)監(jiān)控,對(duì)試驗(yàn)數(shù)據(jù)進(jìn)行管理,進(jìn)而生成與之對(duì)應(yīng)的曲線或報(bào)表,除此之外,還通過將相應(yīng)的控制指令發(fā)送到下位測(cè)控級(jí)的方式實(shí)現(xiàn)對(duì)分布式空調(diào)系統(tǒng)運(yùn)行的有效控制[3];企業(yè)內(nèi)部網(wǎng)或互聯(lián)網(wǎng)中相應(yīng)的遠(yuǎn)程監(jiān)控計(jì)算機(jī)是遠(yuǎn)程監(jiān)控級(jí)的主要組成部分,利用TCP/IP協(xié)議開展與中央控制計(jì)算機(jī)的通信,以獲取與試驗(yàn)相關(guān)的信息,準(zhǔn)確掌握試驗(yàn)進(jìn)展情況。基于B/S分布式空調(diào)系統(tǒng)的硬件方案如圖1所示。

圖1 基于B/S分布式空調(diào)系統(tǒng)的硬件方案示意圖
基于B/S分布式空調(diào)系統(tǒng)軟件是由中央管理級(jí)實(shí)時(shí)控制軟件以及遠(yuǎn)程控制級(jí)實(shí)施監(jiān)控軟件兩部分構(gòu)成的,中央管理級(jí)實(shí)時(shí)控制軟件一個(gè)線程的任務(wù)是及時(shí)向遠(yuǎn)程控制級(jí)實(shí)時(shí)監(jiān)控軟件傳輸所收集到的相關(guān)數(shù)據(jù)。
1)中央管理級(jí)實(shí)時(shí)控制軟件。實(shí)時(shí)性及多任務(wù)性是中央管理級(jí)實(shí)時(shí)控制系統(tǒng)的主要性能。所謂實(shí)時(shí)性,主要強(qiáng)調(diào)的是時(shí)間對(duì)于控制系統(tǒng)中的重要性,務(wù)必確保在既定的時(shí)間內(nèi)開展控制行為,并在規(guī)定的時(shí)間內(nèi)完成,并依照時(shí)序要求將信號(hào)發(fā)送出去;所謂多任務(wù)性,主要指的是數(shù)個(gè)獨(dú)立或者半獨(dú)立的任務(wù)在系統(tǒng)中同時(shí)存在,各自負(fù)責(zé)處理既定的信號(hào),同時(shí)控制與之對(duì)應(yīng)的設(shè)備及過程。根據(jù)上述闡述不難看出,實(shí)時(shí)控制系統(tǒng)對(duì)實(shí)時(shí)性的要求極高,與此同時(shí),系統(tǒng)實(shí)時(shí)性在很大程度上主要是受任務(wù)管理的影響。
選擇Windows 2000操作系統(tǒng)運(yùn)行測(cè)控系統(tǒng)。利用單進(jìn)程多線程技術(shù)開展中央管理級(jí)實(shí)施控制軟件的設(shè)計(jì)工作,單純從Windows操作系統(tǒng)分析,線程之間區(qū)別不大,然而在MFC方面,線程則包括使用者界面線程以及工作者線程兩種,其最大的不同之處體現(xiàn)在前者增加了消息隊(duì)列。每一個(gè)使用者界面線程便構(gòu)成一個(gè)系統(tǒng)主線程,主要負(fù)責(zé)執(zhí)行與消息循環(huán)相關(guān)的操作,并對(duì)人機(jī)交互命令進(jìn)行處理;工作者線程主要任務(wù)是對(duì)后臺(tái)工作進(jìn)行處理。筆者在此所闡述的基于B/S分布式空調(diào)系統(tǒng)設(shè)計(jì)方案主要包括實(shí)時(shí)采集及控制、實(shí)時(shí)數(shù)據(jù)存儲(chǔ)、實(shí)時(shí)監(jiān)控、串口通訊以及遠(yuǎn)程監(jiān)控?cái)?shù)據(jù)存儲(chǔ)等五個(gè)線程。其中,對(duì)實(shí)時(shí)性要求最高的是實(shí)時(shí)采集及控制線程,該線程還負(fù)責(zé)將所收集到的數(shù)據(jù)向其他線程進(jìn)行傳輸,所以,該線程具有最高的優(yōu)先級(jí)。中央管理級(jí)實(shí)時(shí)控制軟件結(jié)構(gòu)詳見下圖所示。

圖2 中央管理級(jí)實(shí)時(shí)控制軟件結(jié)構(gòu)示意圖
2)基于B/S結(jié)構(gòu)的遠(yuǎn)程監(jiān)控級(jí)實(shí)時(shí)監(jiān)控軟件。所謂B/S結(jié)構(gòu),也就是瀏覽器/服務(wù)器結(jié)構(gòu),是隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展而出現(xiàn)的,該結(jié)構(gòu)在一定程度上對(duì)之前的C/B結(jié)構(gòu)進(jìn)行了改進(jìn),改進(jìn)之處主要體現(xiàn)在:在之前的客戶/服務(wù)器結(jié)構(gòu)基礎(chǔ)之上新增加了中間層,中間層主要用來負(fù)責(zé)實(shí)現(xiàn)之前屬于客戶機(jī)的功能,這個(gè)新增加的中間層就是WEB服務(wù)層。由此可知,B/S結(jié)構(gòu)主要包括表示層、功能層以及數(shù)據(jù)層三層,其中,表示層也就是用戶界面,功能層也就是WEB服務(wù)器,數(shù)據(jù)層也即是數(shù)據(jù)庫服務(wù)器。瀏覽器/服務(wù)器結(jié)構(gòu)與之前的客戶/服務(wù)器結(jié)構(gòu)相比較而言,其優(yōu)勢(shì)主要體現(xiàn)在以下兩方面:第一,對(duì)于用戶端而言,所需要的瀏覽器軟件只有一個(gè),比較常見的瀏覽器軟件有IE,這樣實(shí)現(xiàn)了統(tǒng)一的界面,操作難度也大大降低;第二,客戶端不用安裝專用的軟件,只需要對(duì)WEB服務(wù)器的軟件進(jìn)行更新便可以達(dá)到系統(tǒng)升級(jí)的目的,這就給系統(tǒng)的維護(hù)提供了極大的便利;最后,瀏覽器/服務(wù)器結(jié)構(gòu)所使用的是標(biāo)準(zhǔn)的TCP/IP通信協(xié)議以及HTTP協(xié)議,具有較高的廣域網(wǎng)基礎(chǔ),擴(kuò)展性能優(yōu)越,可以較為輕松的實(shí)現(xiàn)多用戶監(jiān)控以及信息共享。
筆者在此所探討的數(shù)據(jù)主要指的是實(shí)時(shí)采集的數(shù)據(jù),也就是各個(gè)時(shí)間點(diǎn)現(xiàn)場(chǎng)數(shù)據(jù)的綜合,涉及到各個(gè)監(jiān)測(cè)點(diǎn)的數(shù)值以及時(shí)間戳[4]。中央控制軟件中數(shù)個(gè)線程均會(huì)利用到實(shí)驗(yàn)數(shù)據(jù)、控制狀態(tài)參數(shù)以及報(bào)警信息等,因此,筆者在分布式空調(diào)系統(tǒng)設(shè)計(jì)方案中將其歸入到共享數(shù)據(jù)范疇,同時(shí)利用臨界區(qū)來對(duì)共享數(shù)據(jù)的安全性提供保障。出于確保線程執(zhí)行效率不斷提升的考慮,要保證各個(gè)線程所生產(chǎn)的副本大小與共享數(shù)據(jù)相一致,在對(duì)共享數(shù)據(jù)進(jìn)行讀取的過程中[5],將共享區(qū)視為內(nèi)存塊,同時(shí)在副本中對(duì)其進(jìn)行復(fù)制,之后立刻退出共享資源,執(zhí)行相應(yīng)的任務(wù)。為確保傳輸過程中數(shù)據(jù)的準(zhǔn)確性不受影響,線程相互間選用事件同步。對(duì)于所保存的數(shù)據(jù)資料,主要采取二進(jìn)制文件以及數(shù)據(jù)庫文件兩種管理方式。其中,二進(jìn)制文件系統(tǒng)可以實(shí)現(xiàn)較高的存儲(chǔ)效率,并且文件相對(duì)較小,所以,筆者在此選擇該管理方式,這樣可以更加便利的查詢中央控制軟件中的動(dòng)態(tài)趨勢(shì)曲線;除此之外,選擇MS SQL SERVER數(shù)據(jù)庫文件對(duì)相關(guān)數(shù)據(jù)進(jìn)行保存,這樣可以為遠(yuǎn)程實(shí)時(shí)監(jiān)控WEB網(wǎng)頁創(chuàng)造有利條件[6]。
對(duì)于中央控制軟件的數(shù)據(jù)采集模塊做收集到的相關(guān)數(shù)據(jù),首先需要由遠(yuǎn)程監(jiān)控?cái)?shù)據(jù)存儲(chǔ)線程進(jìn)行復(fù)制,之后,在通過遠(yuǎn)程監(jiān)控?cái)?shù)據(jù)存儲(chǔ)線程將其在MS SQL SERVER 2000數(shù)據(jù)庫中進(jìn)行保存。在VC中利用ADO技術(shù)實(shí)現(xiàn)與數(shù)據(jù)庫的連接,同時(shí)動(dòng)態(tài)生成以試驗(yàn)起始時(shí)間為表名的數(shù)據(jù)庫文件,試驗(yàn)數(shù)據(jù)通過帶參數(shù)的存儲(chǔ)過程進(jìn)行保存。應(yīng)用程序與數(shù)據(jù)庫之間開展新型交流的方式主要有兩種,一種是在應(yīng)用程序中寫入T-SQL語句,之后開展針對(duì)數(shù)據(jù)庫的相關(guān)操作;另外一種就是在存儲(chǔ)過程中寫入T-SQL語句,針對(duì)數(shù)據(jù)庫的操作主要是通過調(diào)取應(yīng)用程序中的存儲(chǔ)過程來實(shí)現(xiàn)。利用存儲(chǔ)過程能夠在很大程度上為更改和升級(jí)應(yīng)用程序提供便利條件,不僅如此,通過存儲(chǔ)過程還能夠?qū)崿F(xiàn)對(duì)網(wǎng)絡(luò)通信量的有效控制,促進(jìn)運(yùn)行特性的進(jìn)一步提升。主要原因在于:對(duì)于用戶而言,若通過應(yīng)用程序?qū)-SQL語句發(fā)送到服務(wù)器,T-SQL語句發(fā)送的主要途徑主要是網(wǎng)絡(luò),同時(shí)在每次的運(yùn)行過程中都需要進(jìn)行重新編譯;但是,若利用存儲(chǔ)過程來進(jìn)行T-SQL語句的發(fā)送[7],便可以借助一個(gè)語句將這些T-SQL語句從應(yīng)用程序中調(diào)取出來并按照要求進(jìn)行運(yùn)行,每個(gè)存儲(chǔ)過程都會(huì)由SQL SERVER進(jìn)行編譯處理,進(jìn)而得到一個(gè)可以單獨(dú)執(zhí)行的一組T-SQL語句,在首次執(zhí)行該存儲(chǔ)過程的情況下,將會(huì)在數(shù)據(jù)庫內(nèi)存中存儲(chǔ)這一計(jì)劃,這樣,該計(jì)劃就可以被反復(fù)利用,更重要的是,在運(yùn)行存儲(chǔ)過程的時(shí)候,SQL SERVER也不會(huì)對(duì)應(yīng)用程序進(jìn)行重新編譯。
WEB頁面自動(dòng)刷新的實(shí)現(xiàn)。實(shí)時(shí)監(jiān)控頁面可以對(duì)數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)信息進(jìn)行調(diào)取,并且利用VBSCRIPT確保數(shù)據(jù)庫有效連接、查詢以及顯示等順利實(shí)現(xiàn);不僅如此,還會(huì)將HTML的REFRESH標(biāo)記添加在文件的開頭位置,并將WEB頁面進(jìn)行自動(dòng)刷新的時(shí)間添加到CONTENT當(dāng)中,WEB頁面自動(dòng)刷新的時(shí)間單位是秒。整個(gè)文件都會(huì)在每次的WEB頁面自動(dòng)刷新過程中執(zhí)行連接數(shù)據(jù)庫、查詢及顯示,一旦數(shù)據(jù)庫中相關(guān)數(shù)據(jù)出現(xiàn)變動(dòng),WEB頁面可以及時(shí)將該變化反饋給用戶[8]。
畫面閃爍問題的解決。遠(yuǎn)程監(jiān)控軟件的顯示方式主要有數(shù)據(jù)表格實(shí)時(shí)顯示以及流程圖動(dòng)態(tài)顯示兩種,對(duì)于頁面刷新來說,如果未經(jīng)任何處理,就會(huì)存在頁面閃爍現(xiàn)象,導(dǎo)致這一問題的主要原因就是頁面資源在瀏覽器中的重新載入,尤其是在頁面資源包含有圖片、ACTIVEX控件或者是JAVAAPPLET的情況下,頁面閃爍問題將會(huì)變得更加嚴(yán)重。筆者在此所闡述的基于B/S分布式空調(diào)系統(tǒng)在選擇流程圖動(dòng)態(tài)顯示方式的情況下,因?yàn)槠渲邪蠮PG圖片資源,因此,如果不進(jìn)行適當(dāng)?shù)奶幚?,在進(jìn)行頻率較高的刷新的情況下就很難看清楚畫面內(nèi)容。為了確保實(shí)現(xiàn)理想的顯示效果,筆者對(duì)服務(wù)器端ASP程序進(jìn)行了一定的完善,主要是對(duì)流程圖動(dòng)態(tài)顯示進(jìn)行了適當(dāng)?shù)膭澐?,這樣就得到流程圖畫面部分以及實(shí)時(shí)測(cè)量數(shù)據(jù)部分,針對(duì)二者分別制作與之相應(yīng)的頁面,在此將其稱作為畫面頁面以及數(shù)據(jù)頁面;之后對(duì)二者進(jìn)行集成。畫面頁面只負(fù)責(zé)顯示,數(shù)據(jù)頁面主負(fù)責(zé)定時(shí)刷新,同時(shí)負(fù)責(zé)向畫面頁面?zhèn)鬏敂?shù)據(jù),這樣畫面閃爍問題便得以妥善解決。
綜上所述,隨著科學(xué)技術(shù)的發(fā)展,互聯(lián)網(wǎng)影響力的擴(kuò)大,工業(yè)自動(dòng)化水平明顯提升,借助分布式控制系統(tǒng)來實(shí)時(shí)監(jiān)控并有效管理空調(diào)的運(yùn)行成為當(dāng)前的一大熱點(diǎn)課題?;贐/S分布式空調(diào)系統(tǒng)具有極大的發(fā)展空間。
[1] 張書濤, 劉延斌, 賈晨輝, 仲志丹. 復(fù)雜設(shè)備的網(wǎng)絡(luò)化遠(yuǎn)程監(jiān)控及故障診斷系統(tǒng)[J]. 河南科技大學(xué)學(xué)報(bào)(自然科學(xué)版). 2010, (06).
[2] 岳寶華. 基于嵌入式Linux的多線程遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 信陽農(nóng)業(yè)高等??茖W(xué)校學(xué)報(bào), 2008, (01).
[3] 郝令培, 江宇, 鄭宏瑞, 郭利波. 電信機(jī)房監(jiān)控?cái)?shù)據(jù)采集器軟件的設(shè)計(jì)與實(shí)現(xiàn)[J]. 煤炭科學(xué)技術(shù), 2007, (11).
[4] 尉學(xué)軍, 劉躍. 基于Web的B/S結(jié)構(gòu)實(shí)時(shí)監(jiān)控系統(tǒng)[J]. 貴州工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版), 2002, (05).
[5] 曹小華, 陶德馨, 周強(qiáng). 基于無線網(wǎng)絡(luò)的多機(jī)網(wǎng)絡(luò)化監(jiān)控系統(tǒng)研究[J]. 武漢理工大學(xué)學(xué)報(bào)(交通科學(xué)與工程版),2007, (02).
[6] 王志勇, 巴力登, 石磊. 基于B/S結(jié)構(gòu)下分布式控制系統(tǒng)的實(shí)時(shí)監(jiān)控[J]. 工業(yè)控制計(jì)算機(jī), 2006, (04).
[7] 趙成, 朱同坤, 曹小華. 基于無線局域網(wǎng)的港口機(jī)械監(jiān)控系統(tǒng)研究[J]. 中國水運(yùn)(理論版), 2006, (04).
[8] 賈永振, 劉載文, 段長(zhǎng)明, 馬永宏. 基于WEB的遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的實(shí)現(xiàn)技術(shù)[J]. 微計(jì)算機(jī)信息, 2006, (22).