介紹了分布式異構(gòu)系統(tǒng)3級測控網(wǎng)絡(luò)的設(shè)計與實現(xiàn)方法,包括基于RS-485總線串行通訊方式、運用VC++多線程技術(shù)開發(fā)監(jiān)控軟件實現(xiàn)現(xiàn)場設(shè)備系統(tǒng)的集中監(jiān)控與數(shù)據(jù)管理;基于B/S模式、運用WEB數(shù)據(jù)庫訪問技術(shù),實現(xiàn)遠程實時監(jiān)測與數(shù)據(jù)分析。
1、引言
隨著計算機網(wǎng)絡(luò)技術(shù)與自動化技術(shù)的相互融合與發(fā)展,計算機測控技術(shù)已經(jīng)發(fā)展為基于局域網(wǎng)的集中監(jiān)控與管理網(wǎng)絡(luò)和基于Intranet/Internet的遠程監(jiān)控網(wǎng)絡(luò)?;贗ntranet/Internet的多級網(wǎng)絡(luò)結(jié)構(gòu)為實現(xiàn)管控一體化、全局優(yōu)化控制與調(diào)度、異地信息共享提供了有利的硬件條件。但是對于一般企業(yè),設(shè)備系統(tǒng)位置比較分散,同時由于多方面的原因,企業(yè)內(nèi)不同設(shè)備運用了不同的控制系統(tǒng),這樣就造成了位置分散的多種設(shè)備、多種監(jiān)控系統(tǒng)并存的分布式控制環(huán)境,而這其中又多存在一些軟件封閉、互操作性差的異構(gòu)系統(tǒng),因此對設(shè)備的測控網(wǎng)絡(luò)提出了更高的要求,這用一般測控軟件是很難實現(xiàn)的。
針對這種情況,本文介紹了分布式異構(gòu)系統(tǒng)3級測控網(wǎng)絡(luò)的設(shè)計與實現(xiàn)方法,該方法彌補了現(xiàn)有測控軟件的不足,有針對性地解決了設(shè)備位置分散、系統(tǒng)異構(gòu)給測控網(wǎng)絡(luò)帶來的難題。實踐證明,該方法具有實用性強、擴展性強、運行穩(wěn)定等特點。
2、整體設(shè)計
分布式異構(gòu)系統(tǒng)3級測控網(wǎng)絡(luò)是按照“兩種網(wǎng)絡(luò),3層功能,統(tǒng)一結(jié)構(gòu),功能完善”的總體設(shè)計思想開發(fā)的。
“兩種網(wǎng)絡(luò)”是指整個系統(tǒng)由RS-485現(xiàn)場總線和Intranet/Internet兩種網(wǎng)絡(luò)結(jié)構(gòu)組成。
“3層功能”是指根據(jù)功能劃分為設(shè)備層、集中監(jiān)控層和遠程監(jiān)測層(集中監(jiān)控層對于下位是現(xiàn)場設(shè)備的可實現(xiàn)控制,對于下位是已有監(jiān)控系統(tǒng)只監(jiān)測不控制,遠程監(jiān)測層只監(jiān)測不控制)。設(shè)備層與集中監(jiān)控層之間采用RS-485總線連接,集中監(jiān)控層與遠程監(jiān)測層之間采用Intranet/Internet連接。
“統(tǒng)一結(jié)構(gòu)”是指系統(tǒng)處理各種設(shè)備信息時,盡量用統(tǒng)一的數(shù)據(jù)格式與下級設(shè)備和子系統(tǒng)傳送信息、存儲數(shù)據(jù)和顯示數(shù)據(jù),盡量用統(tǒng)一的功能模塊來設(shè)計不同系統(tǒng)設(shè)備的功能。
“功能完善”是指系統(tǒng)既包括了實時數(shù)據(jù)平臺、現(xiàn)場設(shè)備管理、現(xiàn)場監(jiān)控組態(tài)、描述歷史曲線、打印信息報表和故障報警等常規(guī)功能,也包括了基于Intranet/Internet的遠程數(shù)據(jù)實時監(jiān)測功能。
系統(tǒng)以RS-485總線結(jié)構(gòu)連接設(shè)備層和集中監(jiān)控層,實現(xiàn)對設(shè)備的集中監(jiān)控;在集中監(jiān)控層設(shè)一臺服務(wù)器完成WEB服務(wù)器和數(shù)據(jù)庫服務(wù)器任務(wù),并接入企業(yè)內(nèi)部網(wǎng)和以DDN專線或電話線接入Internet,實現(xiàn)遠程的實時監(jiān)測。從而把結(jié)構(gòu)復(fù)雜、繁瑣的系統(tǒng)化為具有典型分布式控制系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)。系統(tǒng)的整體結(jié)構(gòu)如圖1所示。
[ALIGN=CENTER]

圖1 分布式異構(gòu)系統(tǒng)3級測控網(wǎng)絡(luò)結(jié)構(gòu)圖[/ALIGN]
3、基于VC++多線程的設(shè)備集中監(jiān)控與數(shù)據(jù)管理
3.1 硬件設(shè)計
在硬件設(shè)計上,由一臺PC工控機作為上位機,用來接收并存儲現(xiàn)場的監(jiān)測數(shù)據(jù),本地現(xiàn)場硬件包括已有監(jiān)控計算機(通過編寫軟件來提取已有監(jiān)控系統(tǒng)的數(shù)據(jù))、可編程的PC-Based數(shù)據(jù)采集控制器(通過編程來采集現(xiàn)場設(shè)備的監(jiān)測數(shù)據(jù))和不可編程的I/O節(jié)點(直接進行數(shù)據(jù)采集),遠程現(xiàn)場硬件主要是監(jiān)控計算機(通過編寫軟件來提取已有監(jiān)控系統(tǒng)的數(shù)據(jù))。
在傳輸線路上,根據(jù)企業(yè)現(xiàn)場實際,各子系統(tǒng)線路距離一般不會超過1200m,但位置分散,各子系統(tǒng)通信硬件各異,信號相互干擾會比較嚴重,鑒于這種情況,對各種通信方式(RS-232、RS-422、RS-485、光纖)的特點進行了比較和分析,RS-232傳輸方式數(shù)據(jù)傳輸速率較慢(一般只能達到20kb/s),傳輸距離短(一般裝置間電纜長度為15 m之內(nèi)),且接口處信號容易互相干擾;RS-422總線傳輸方式盡管傳輸距離較遠,但節(jié)點太少;光纖傳輸通信距離遠、性能穩(wěn)定,但成本過高;RS-485傳輸方式不僅具有傳輸距離遠、多節(jié)點(32個)的特點,而且傳輸線成本低。因此為了提高通信穩(wěn)定性、減小工程成本,采用RS-485總線傳輸方式。
在RS-485總線傳輸接口上,上位工控機需采用RS-232/RS-485轉(zhuǎn)換板,將PC串口RS-232信號轉(zhuǎn)換成RS-485信號,而下位機的情況較為復(fù)雜,對于以計算機為下位的子系統(tǒng),也需要安裝RS-232/RS-485轉(zhuǎn)換板,對于以PC-BASE控制器和遠程I/O節(jié)點為下位的子系統(tǒng),其硬件系統(tǒng)支持RS-485通信,不需要安裝其他硬件設(shè)備就可以實現(xiàn)通信。
3.2 軟件設(shè)計
系統(tǒng)在VC++6.0環(huán)境下,使用多線程技術(shù)開發(fā)監(jiān)控軟件來實現(xiàn)設(shè)備系統(tǒng)的集中監(jiān)控與數(shù)據(jù)管理,其系統(tǒng)功能模塊如圖2所示。
[ALIGN=CENTER]

圖2 VC++監(jiān)控軟件功能結(jié)構(gòu)模塊圖[/ALIGN]
集中監(jiān)控主機向各子站數(shù)據(jù)采集控制器和子系統(tǒng)主機發(fā)送查詢數(shù)據(jù)指令,并由數(shù)據(jù)打包模塊將指令整理成數(shù)據(jù)查詢報文,通過通訊模塊傳給數(shù)據(jù)發(fā)送模塊與下位設(shè)備通訊;有查詢報文返回時,再通過通訊模塊、數(shù)據(jù)解包模塊將數(shù)據(jù)還原,然后通過數(shù)據(jù)存儲管理模塊對數(shù)據(jù)進行處理和存儲,其中內(nèi)存中的實時數(shù)據(jù)傳給實時監(jiān)控模塊,硬盤中的數(shù)據(jù)供數(shù)據(jù)統(tǒng)計分析模塊訪問。
軟件前臺功能設(shè)計上,實時監(jiān)控模塊主要包括動態(tài)流程圖顯示、動態(tài)曲線顯示、實時報警顯示、各線路通信狀態(tài)顯示等;數(shù)據(jù)統(tǒng)計分析模塊主要包括總體運行分析、數(shù)據(jù)檢索編輯、歷史曲線查詢、歷史數(shù)據(jù)統(tǒng)計、輸出報表及打印等功能,此外,前臺功能還包括各工作線路模塊、通訊信息輸出模塊。系統(tǒng)具有常規(guī)SCADA軟件的所有功能,實現(xiàn)了全面監(jiān)測設(shè)備和處理信息的任務(wù)。
多線程串行通訊技術(shù)見關(guān)鍵技術(shù)部分。
3.3 串行通信驅(qū)動程序的設(shè)計
在通信功能的實現(xiàn)上,可以直接使用微軟的易于實現(xiàn)串口的通信ACtivex控件MSCOMM,但是根據(jù)串行通信多類型、設(shè)備多的特點,本系統(tǒng)采用了WIN32 API函數(shù)來編寫串口通信類的方法,方便、靈活地實現(xiàn)了串口通信功能。
Win32 API是一個復(fù)雜函數(shù)、消息的集合,它把對串口和其它通信設(shè)備的支持與基本輸入輸出驅(qū)動程序集成為一體,系統(tǒng)只需要通過設(shè)備控制模塊DCB的數(shù)據(jù)結(jié)構(gòu)對串行口和串行通信驅(qū)動程序進行配置。
串口通信編程實現(xiàn)的基本步驟:打開與外設(shè)相連的串口,根據(jù)通信協(xié)議對通信控制模塊(DCB結(jié)構(gòu))進行配置;然后初始化串口的接收和發(fā)送緩沖區(qū)大?。贿M行讀寫操作;通過校驗,對正確接收的數(shù)據(jù)進行處理;最后在串行通信結(jié)束后,關(guān)閉串口。
3.4 數(shù)據(jù)的提取與傳輸
對于需要直接從現(xiàn)場采集運行數(shù)據(jù)的子系統(tǒng),一般采用遠程I/O節(jié)點和基于PC-Based可編程數(shù)據(jù)采集控制器進行數(shù)據(jù)采集,并將數(shù)據(jù)整理成數(shù)據(jù)幀后發(fā)送到485總線上,由上位機對數(shù)據(jù)進行處理和整合。
對于已有監(jiān)控系統(tǒng)的子系統(tǒng),由于其監(jiān)控軟件大多是組態(tài)軟件開發(fā)的,因此系統(tǒng)采用VC++6.0開發(fā)數(shù)據(jù)傳輸軟件的方式,一般互操作性強的子系統(tǒng),采用DDE方式可讀取實時數(shù)據(jù)的方法,而針對于軟件封閉、互操作性較差的子系統(tǒng),則采用直接從其數(shù)據(jù)庫或數(shù)據(jù)文件中讀取最新數(shù)據(jù)的方法,下位軟件周期性地監(jiān)視封閉系統(tǒng)數(shù)據(jù)庫或數(shù)據(jù)文件的屬性,如果屬性發(fā)生了變化,說明有新的數(shù)據(jù)寫入,提取其最新數(shù)據(jù)記錄,并將數(shù)據(jù)記錄整理成數(shù)據(jù)幀,存入相應(yīng)的動態(tài)數(shù)組中,等待收到上位的查詢指令后發(fā)送。并將數(shù)據(jù)通過RS485總線,傳送到上位計算機。
3.5 數(shù)據(jù)的存儲管理
根據(jù)系統(tǒng)多設(shè)備、實時更新、數(shù)據(jù)量大的特點,為了方便對數(shù)據(jù)的操作,更好地管理和保存數(shù)據(jù),整個數(shù)據(jù)庫系統(tǒng)設(shè)有實時數(shù)據(jù)庫和歷史數(shù)據(jù)庫。實時數(shù)據(jù)庫必須滿足實時更新、實時處理的特性,并要利于WEB服務(wù)器進行實時動態(tài)數(shù)據(jù)交換,因此實時數(shù)據(jù)庫采用內(nèi)存數(shù)據(jù)庫和硬盤上的SQL Server2000數(shù)據(jù)庫相結(jié)合的方式;歷史數(shù)據(jù)庫用來保存存放實時數(shù)據(jù)庫中到期的需要永久保存的數(shù)值量數(shù)據(jù),歷史數(shù)據(jù)庫存儲量大,保存時間長,采用SQL Server2000數(shù)據(jù)庫。實時數(shù)據(jù)庫和歷史數(shù)據(jù)庫的配合使用,實現(xiàn)了數(shù)據(jù)的優(yōu)化管理。
數(shù)據(jù)的存儲管理主要包括:數(shù)據(jù)的正確性處理、數(shù)據(jù)的統(tǒng)計、存儲、壓縮、備份與定時清除。其中數(shù)據(jù)的統(tǒng)計主要是對流量型數(shù)據(jù)進行的統(tǒng)計,數(shù)據(jù)的壓縮主要是對實時數(shù)據(jù)在寫入歷史數(shù)據(jù)庫之前的壓縮,對于瞬時流量型數(shù)據(jù),可以設(shè)定不同流量數(shù)據(jù)的壓縮參數(shù)(壓縮偏差、最小壓縮、最大壓縮3個條件參數(shù)),僅保留超過壓縮偏差的數(shù)據(jù);其他的實時數(shù)據(jù)不變化的數(shù)據(jù)不保存,變化的數(shù)據(jù)按照設(shè)定的數(shù)據(jù)時間間隔進行簡單壓縮。
采用ADO技術(shù)實現(xiàn)對數(shù)據(jù)的操作管理,它能以極高的性能訪問數(shù)據(jù)源,與微軟的數(shù)據(jù)庫管理系統(tǒng)SQL Server2000緊密結(jié)合。系統(tǒng)封裝了3類以ADO方式操作數(shù)據(jù)庫的函數(shù):①創(chuàng)建與數(shù)據(jù)源聯(lián)接的函數(shù)、提取記錄集的函數(shù),關(guān)閉記錄集和連接的函數(shù)等;②記錄操作函數(shù)(如增加記錄函數(shù),修改記錄函數(shù),刪除記錄函數(shù)等);③數(shù)據(jù)管理函數(shù),包括數(shù)據(jù)的存儲、壓縮和統(tǒng)計等。
4、基于WEB的遠程實時監(jiān)測與數(shù)據(jù)分析
雖然現(xiàn)場總線對實現(xiàn)面向設(shè)備的自動化系統(tǒng)起了巨大的推動作用,但是由于現(xiàn)場總線開放性是有條件的、不徹底的,隨著生產(chǎn)規(guī)模的擴大和企業(yè)信息化的要求,其開放性也越來越不能滿足要求。在遇到這一阻礙時,Internet、Intranet、Ether-net這些基于TCP/IP協(xié)議的網(wǎng)絡(luò)發(fā)展迅速,與現(xiàn)場總線相比,它們具有技術(shù)成熟、網(wǎng)絡(luò)產(chǎn)品低廉、開發(fā)工具豐富等明顯的優(yōu)勢,使得測控網(wǎng)絡(luò)技術(shù)在遠程監(jiān)控方面有了很大的突破。從現(xiàn)有的體系結(jié)構(gòu)上來看,目前在工業(yè)自動化體系中較為常見且具有很大發(fā)展?jié)摿Φ氖荁/S結(jié)構(gòu)。
B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)一種變化或者改進的結(jié)構(gòu),在傳統(tǒng)的C/S(Client/Server)結(jié)構(gòu)中間加上一層,把原來客戶機所負責(zé)的功能交給中間層來實現(xiàn),這個中間層即為WEB服務(wù)層。即形成了3層結(jié)構(gòu):表示層(用戶界面),功能層(WEB服務(wù)器)和數(shù)據(jù)層(數(shù)據(jù)庫服務(wù)器)。與C/S結(jié)構(gòu)相比,B/S結(jié)構(gòu)具有以下優(yōu)點:①用戶端只需安裝單一的瀏覽器軟件(如IE),界面統(tǒng)一,使用簡單;②由于客戶端無需安裝專用軟件,系統(tǒng)升級時只需更新WEB服務(wù)器端的軟件,使系統(tǒng)易于維護;③B/S結(jié)構(gòu)采用標準的TCP/IP協(xié)議、HTTP協(xié)議,有良好的廣域網(wǎng)支持,擴展性好,易于實現(xiàn)多用戶監(jiān)控,信息共享程度高。
系統(tǒng)遠程監(jiān)測采用B/S結(jié)構(gòu),如圖3所示。
[ALIGN=CENTER]

圖3 遠程實時監(jiān)測結(jié)構(gòu)圖[/ALIGN]
其中WEB服務(wù)器采用Microsoft Windows Server2000、IIS5.0和Internet Explorer系統(tǒng)平臺,以ASP技術(shù)來發(fā)布系統(tǒng)信息。ASP(Active Server Pages,活動服務(wù)器頁面)是Microsoft公司推出的一種服務(wù)器端腳本語言執(zhí)行環(huán)境,ASP技術(shù)能夠把HTML WEB頁面、腳本語言、ActiveX組件等有機地結(jié)合起來,形成一個能夠在服務(wù)器上運行的應(yīng)用程序,并把按用戶要求專門制作的標準HTML頁面送給客戶端瀏覽器。
集中監(jiān)控軟件將實時采集的現(xiàn)場數(shù)據(jù)在內(nèi)存中進行處理后,通過VC的ADO數(shù)據(jù)庫訪問技術(shù)保存到SQL Server2000中的實時數(shù)據(jù)庫(臨時數(shù)據(jù)庫Tempdb)和歷史數(shù)據(jù)庫(硬盤數(shù)據(jù)庫)中。遠程計算機通過WEB瀏覽器向WEB服務(wù)器發(fā)出請求,WEB服務(wù)器處理后調(diào)用相應(yīng)的ASP文件到數(shù)據(jù)庫上進行查詢,查詢結(jié)果送回WEB服務(wù)器后,以HTML頁面的形式返回到瀏覽器。
基于B/S結(jié)構(gòu),運用ASP技術(shù),系統(tǒng)實現(xiàn)了流程圖動態(tài)顯示、數(shù)據(jù)曲線與統(tǒng)計圖實時顯示、數(shù)據(jù)表格實時顯示等遠程實時監(jiān)測與數(shù)據(jù)分析功能。
5、關(guān)鍵技術(shù)
5.1 基于VC++多線程的串行通信技術(shù)
中央監(jiān)控軟件采用基于多線程的串行通信技術(shù)來實現(xiàn)對下位的查詢和對數(shù)據(jù)的接收。上位軟件采用多線程的“輪詢”+“消息驅(qū)動”方式,在主線程中完成打開串口、配置串口、初始化串口并創(chuàng)建輔助通信線程,由輔助通信線程輪流向下位不同設(shè)備系統(tǒng)發(fā)送查詢數(shù)據(jù)指令,并實時監(jiān)視串口通信狀態(tài),等待下位的回復(fù),一旦查詢到數(shù)據(jù)已經(jīng)發(fā)送到串行口上,輔助線程自動接收數(shù)據(jù),并向主線程發(fā)送數(shù)據(jù)接收到的消息,主線程取走數(shù)據(jù)并進行處理。若上位通訊線程在設(shè)定時間內(nèi)一直未收到下位某子系統(tǒng)對查詢指令的回復(fù),則發(fā)送查詢下一子系統(tǒng)數(shù)據(jù)的指令,這樣通過輪詢的方式,所有子系統(tǒng)的數(shù)據(jù)都被傳送到上位。根據(jù)現(xiàn)場實際,系統(tǒng)設(shè)有相應(yīng)數(shù)量的通信線程,監(jiān)視對應(yīng)通信線路的串口狀態(tài),同時系統(tǒng)定義了發(fā)送、發(fā)送完成、接收、接收完成4個消息,以完成原定的消息處理功能。另外,考慮到與同構(gòu)系統(tǒng)相比,異構(gòu)系統(tǒng)存在多子系統(tǒng)并存且通信線路較長的特點,所以數(shù)據(jù)在傳輸上難免受到外界環(huán)境的干擾,為了克服因客觀原因帶來的通信不穩(wěn)定,在程序設(shè)計上采用重要數(shù)據(jù)多次發(fā)送的方法。圖4為RS-485總線通訊方式中上位軟件通信線程流程。
[ALIGN=CENTER]

圖4 上位軟件通信線程流程圖[/ALIGN]
針對串行通信的特點,采用事件(Event)對象來同步串行通信中各線程對通信端口和內(nèi)存數(shù)據(jù)的訪問,避免引起多線程間的沖突和死鎖。具體通過WaitForSingeObject(),SetEvent()和Reset-Event()3個函數(shù)來協(xié)調(diào)重疊I/O的操作。
5.2 多種通信協(xié)議與配置文件的有效配合
基于VC++的集中監(jiān)控與數(shù)據(jù)管理軟件相當(dāng)于整個網(wǎng)絡(luò)體系結(jié)構(gòu)的心臟,它處理數(shù)據(jù)的速度、合理的編程構(gòu)架決定著整個系統(tǒng)的性能。
根據(jù)現(xiàn)場多設(shè)備、多系統(tǒng)并存的實際情況,在數(shù)據(jù)傳輸上采用了多種數(shù)據(jù)幀格式,即不同系統(tǒng)設(shè)備有不同的數(shù)據(jù)幀格式,既有原硬件定義幀格式(下位為遠程I/O節(jié)點的子系統(tǒng))又有多種自定義幀格式。在數(shù)據(jù)的校驗方法上,采用校驗和(CheckSum)方式來校驗接收數(shù)據(jù)正誤,方法是將所有傳送字符的ASCII碼累加后除以255得到的。
針對系統(tǒng)多設(shè)備、多系統(tǒng)的特點,既有直接從現(xiàn)場采集的數(shù)據(jù),也有從原有異構(gòu)系統(tǒng)數(shù)據(jù)文件中讀取的數(shù)據(jù);既有模擬量,也有數(shù)字量和開關(guān)量。這樣程序在運行過程中,需要不斷修改子系統(tǒng)通信參數(shù),采用修改源程序代碼,費時又費力。為了增強程序的靈活性和可擴展性,避免以往組態(tài)軟件的設(shè)計缺陷,系統(tǒng)采用了配置文件與多種數(shù)據(jù)幀格式相結(jié)合的方式,以讀取配置文件的方法初始化涉及到每個設(shè)備的功能模塊。在程序運行前,通過修改配置文件中的信息,靈活地預(yù)置了不同設(shè)備的通信參數(shù),而無需修改復(fù)雜的原程序。系統(tǒng)的配置文件分為兩種:通信線路信息文件和數(shù)據(jù)結(jié)構(gòu)信息。前者包含每條通信線路的端口號、波特率、子系統(tǒng)個數(shù)等;后者包括信號個數(shù)、信號名稱、校驗方式等數(shù)據(jù)幀格式信息。多種數(shù)據(jù)幀格式和配置文件預(yù)置的有效配合,大大提高了系統(tǒng)的靈活性和可擴展性。
5.3 數(shù)據(jù)庫實現(xiàn)技術(shù)
數(shù)據(jù)庫服務(wù)器上應(yīng)安裝比較通用且功能強大的數(shù)據(jù)庫系統(tǒng),既方便于WEB服務(wù)器進行數(shù)據(jù)交換,又要能快速存儲集中監(jiān)控層數(shù)據(jù)。在數(shù)據(jù)庫服務(wù)器上建有兩種類型的數(shù)據(jù)庫:實時數(shù)據(jù)庫和歷史數(shù)據(jù)庫。前者用來存儲實時數(shù)據(jù),以供WEB服務(wù)器進行動態(tài)顯示,要求有較高的存取速度。后者用來存儲每一時段的歷史數(shù)據(jù),以供用戶查詢,繪制歷史曲線,要求有較大的數(shù)據(jù)容量。
嚴格來說,實時數(shù)據(jù)庫應(yīng)采用專用的工業(yè)實時數(shù)據(jù)庫系統(tǒng)來實現(xiàn),但是對于測控系統(tǒng)而言,其實時性要求不是太高,一些商用數(shù)據(jù)庫系統(tǒng)如SQL Server 2000等已能滿足其要求??紤]到集中監(jiān)控層數(shù)據(jù)采集與存儲速度為ms級,而遠程訪問刷新的速度為10s,因此實時數(shù)據(jù)庫采用了內(nèi)存數(shù)據(jù)庫與SQL Server2000數(shù)據(jù)庫相結(jié)合的方式。
內(nèi)存實時數(shù)據(jù)庫通過在內(nèi)存中開辟線性數(shù)據(jù)結(jié)構(gòu)的順序表來實現(xiàn),實現(xiàn)了隨機存儲,存儲速度快,對于存儲空間估計,可通過程序提供的動態(tài)數(shù)組來解決。SQL Server2000實時數(shù)據(jù)庫采用臨時數(shù)據(jù)庫Tempdb,由于Tempdb中數(shù)據(jù)不會象其他的數(shù)據(jù)庫在硬盤中保存,因而在Tempdb中的表上進行的操作比其他數(shù)據(jù)庫要快得多,專為WEB瀏覽器實時監(jiān)測頁面提供動態(tài)訪問數(shù)據(jù)。
5.4 WEB畫面的動態(tài)顯示技術(shù)
在遠程實現(xiàn)動態(tài)監(jiān)測,最好能在瀏覽器上實現(xiàn)一個類似DCS系統(tǒng)的基于流程圖動態(tài)顯示的人機界面,但由ASP所產(chǎn)生的動態(tài)網(wǎng)頁在客戶端只能顯示表格數(shù)據(jù),很難產(chǎn)生組態(tài)畫面、統(tǒng)計圖形、曲線等動能,為了更為直觀的顯示監(jiān)測畫面,在WEB頁面中嵌入了JPG圖片和Active X控件。
為了實現(xiàn)動態(tài)監(jiān)測,畫面要求實時刷新,系統(tǒng)刷新時間為10s。由于頁面中包含了圖片、Active X控件,有些流程圖體積較大,無法通過WEB達到要求,并且畫面在刷新時,由于瀏覽器重新載入頁面資源,還會出現(xiàn)頁面閃爍的現(xiàn)象。解決這些問題的唯一方法就是只刷新顯示的數(shù)據(jù)而不刷新流程圖,即將動態(tài)顯示頁面分為流程圖頁面和刷新數(shù)據(jù)頁面,用分為兩幀的頁面來集成這兩個頁面。刷新數(shù)據(jù)頁面每隔10s自動刷新,以從服務(wù)器端取得最新的數(shù)據(jù),然后觸發(fā)頁面中的javascript函數(shù),自動將最新數(shù)據(jù)顯示在流程圖頁面上,從而實現(xiàn)了流程圖的動態(tài)平滑顯示。
6、結(jié)束語
上述分布式異構(gòu)系統(tǒng)3級測控網(wǎng)絡(luò)的設(shè)計與實現(xiàn)方法,已在北京西站3級網(wǎng)絡(luò)監(jiān)測與數(shù)據(jù)管理系統(tǒng)中成功應(yīng)用,具有可靠性強、低成本、易于使用、靈活性和可擴展性強的特點。具體體現(xiàn)為:①體系結(jié)構(gòu)先進,方便擴展和與以太網(wǎng)、Internet的網(wǎng)絡(luò)連接;②功能強大,可開辟多路后臺線程,實時監(jiān)控多種設(shè)備系統(tǒng);③系統(tǒng)具有常規(guī)SCA-DA軟件所有功能,實現(xiàn)了全面監(jiān)測設(shè)備和處理信息的任務(wù);④系統(tǒng)開放性好,支持TCP/IP協(xié)議、RS-485協(xié)議,支持標準的管理數(shù)據(jù)庫接口;⑤系統(tǒng)功能靈活,模塊化的結(jié)構(gòu)使得用戶可以方便地擴充系統(tǒng)功能,更改線路結(jié)構(gòu),從而很容易地對系統(tǒng)進行放縮。