李 翔,劉 軼
(西北工業(yè)大學(xué)動(dòng)力與能源學(xué)院,陜西 西安 710072)
一種新型號(hào)發(fā)動(dòng)機(jī)的總體性能設(shè)計(jì)、總體結(jié)構(gòu)設(shè)計(jì)、部件研制和調(diào)試、發(fā)動(dòng)機(jī)各系統(tǒng)設(shè)計(jì)都離不開相關(guān)試驗(yàn)。隨著航空發(fā)動(dòng)機(jī)技術(shù)性能水平的不斷提升,試驗(yàn)技術(shù)應(yīng)隨之不斷提高、發(fā)展。新機(jī)的性能指標(biāo)在很大程度上取決于試驗(yàn)設(shè)備及試驗(yàn)、測(cè)試技術(shù)的水平,所以建立高技術(shù)試驗(yàn)系統(tǒng)是高性能航空發(fā)動(dòng)機(jī)研制的關(guān)鍵技術(shù)之一[1]。
傳統(tǒng)的航空發(fā)動(dòng)機(jī)試驗(yàn)監(jiān)控系統(tǒng)普遍采用C/S(客戶端/服務(wù)器)架構(gòu),雖然其具有強(qiáng)大的數(shù)據(jù)操縱和事物處理能力,但隨著應(yīng)用規(guī)模的擴(kuò)大、互聯(lián)網(wǎng)時(shí)代對(duì)數(shù)據(jù)遠(yuǎn)程訪問及共享的強(qiáng)烈需求,其缺陷也逐漸暴露?;贐/S(瀏覽器/服務(wù)器)架構(gòu)的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng)在繼承了傳統(tǒng)監(jiān)控系統(tǒng)優(yōu)點(diǎn)的基礎(chǔ)上,對(duì)復(fù)雜多變的實(shí)現(xiàn)過程進(jìn)行了“瘦身”,并實(shí)現(xiàn)了遠(yuǎn)程監(jiān)控和遠(yuǎn)程數(shù)據(jù)管理等重要功能。
需求分析是系統(tǒng)開發(fā)過程中的關(guān)鍵環(huán)節(jié)[2]。在此環(huán)節(jié)中,開發(fā)者需要對(duì)用戶需求加以確定。只有在確定了用戶需求之后,開發(fā)者才能夠開始分析、尋求新系統(tǒng)的解決方案。遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng)主要針對(duì)非現(xiàn)場(chǎng)的技術(shù)人員、行業(yè)專家而開發(fā),其設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的遠(yuǎn)端觀察,以便于數(shù)據(jù)的事后分析。在航空發(fā)動(dòng)機(jī)相關(guān)試驗(yàn)中,用戶需要在異種網(wǎng)絡(luò)之間,甚至要在地理位置相對(duì)分散的情況下進(jìn)行數(shù)據(jù)訪問和操作。用戶特點(diǎn)決定了系統(tǒng)必須提供一個(gè)跨網(wǎng)絡(luò)、跨平臺(tái)的解決方案。
遠(yuǎn)程網(wǎng)絡(luò)實(shí)時(shí)監(jiān)控系統(tǒng)主要由2部分組成:本地?cái)?shù)據(jù)采集系統(tǒng)和實(shí)時(shí)數(shù)據(jù)監(jiān)控站點(diǎn)。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
本地?cái)?shù)據(jù)采集系統(tǒng)在繼承了傳統(tǒng)數(shù)據(jù)采集方法的基礎(chǔ)上,使用虛擬儀器技術(shù)對(duì)數(shù)據(jù)的采集過程進(jìn)行了優(yōu)化,可實(shí)現(xiàn)發(fā)動(dòng)機(jī)試驗(yàn)現(xiàn)場(chǎng)的數(shù)據(jù)采集、數(shù)據(jù)分析處理和數(shù)據(jù)存儲(chǔ)等相關(guān)功能。
實(shí)時(shí)數(shù)據(jù)監(jiān)控站點(diǎn)由Web服務(wù)器和遠(yuǎn)程客戶群組成,遠(yuǎn)程客戶群在掌握瀏覽器的使用、操作的基礎(chǔ)上,幾乎不用安裝其他軟件,即可實(shí)現(xiàn)試驗(yàn)過程的監(jiān)測(cè),而后作出相應(yīng)的分析與決策[3]。
從邏輯上來說,一個(gè)典型的應(yīng)用可以由3個(gè)部分組成:
a.表示邏輯層。直接面向用戶的部分,主要完成應(yīng)用的前端界面處理,即人機(jī)界面處理。
b.業(yè)務(wù)邏輯層。實(shí)現(xiàn)應(yīng)用的業(yè)務(wù)規(guī)則處理,決定程序流程。
c.數(shù)據(jù)邏輯層。對(duì)數(shù)據(jù)進(jìn)行管理的部分,主要完成應(yīng)用中對(duì)數(shù)據(jù)的存取、更新和管理等工作,并保證數(shù)據(jù)訪問的安全性、完整性和一致性。
三層架構(gòu)如圖2所示。
圖2 三層架構(gòu)
設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)包含了“板卡采集”和“人工模擬”2個(gè)功能。
由于在實(shí)際應(yīng)用中板卡采集程序可能會(huì)因?yàn)橛布牟煌兴鶇^(qū)別,當(dāng)系統(tǒng)在設(shè)計(jì)階段,甚至投入實(shí)際生產(chǎn)后,“人工模擬”功能作為測(cè)試工具具有相當(dāng)?shù)谋匾浴?/p>
板卡數(shù)據(jù)采集、模擬數(shù)據(jù)生成的目的均是為Web服務(wù)器提供相關(guān)數(shù)據(jù),Web服務(wù)器并不需要了解實(shí)時(shí)傳輸?shù)臄?shù)據(jù)細(xì)節(jié),而是僅僅負(fù)責(zé)所接收到數(shù)據(jù)的顯示、處理;數(shù)據(jù)生成器負(fù)責(zé)數(shù)據(jù)來源選擇、數(shù)據(jù)采集和模擬數(shù)據(jù)生成等工作。為提高系統(tǒng)的執(zhí)行效率,在系統(tǒng)開發(fā)中采用了多線程處理方式;在數(shù)據(jù)傳輸過程中使用了NI提供的Network Variable類,來完成數(shù)據(jù)在采集程序與Web應(yīng)用程序之間的實(shí)時(shí)通訊。
線程對(duì)象的聲明如下:
private Thread paramWorkerThread;
private Thread switchWorkerThread;
private Thread numeralWorkerThread;
paramWorkerThread,switchWorker-Thread,numeralWorkerThread分別用于模擬量數(shù)據(jù)、開關(guān)量數(shù)據(jù)和頻率量數(shù)據(jù)的實(shí)時(shí)傳輸。
數(shù)據(jù)傳輸啟用后,將會(huì)生成新的線程對(duì)象,并開始線程運(yùn)行:
WriteParamData是線程入口函數(shù),在此處負(fù)責(zé)模擬量數(shù)據(jù)傳輸,這部分代碼為:
數(shù)據(jù)傳輸停止時(shí),線程結(jié)束:
paramWorkerThread.Abort();
實(shí)時(shí)數(shù)據(jù)監(jiān)控站點(diǎn)的開發(fā)是利用ASP.NET在Web服務(wù)器上建立Web應(yīng)用程序,即實(shí)時(shí)數(shù)據(jù)監(jiān)控站點(diǎn)。為說明所采集的數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸原理,故將對(duì)“遠(yuǎn)程實(shí)時(shí)監(jiān)測(cè)頁面”的開發(fā)過程進(jìn)行詳細(xì)的介紹。
要正確接收本地?cái)?shù)據(jù)采集系統(tǒng)所提供的數(shù)據(jù),首先應(yīng)對(duì)數(shù)據(jù)源進(jìn)行配置。NI Measurement Studio在ASP.NET中提供了Network Variable Data Source控件,可方便實(shí)現(xiàn)針對(duì)網(wǎng)絡(luò)數(shù)據(jù)源的配置,此控件的任務(wù)框提供了Connection Cache Expiration連接過期時(shí)間以及Connection Timeout超時(shí)時(shí)間等屬性的設(shè)置[4]。
在監(jiān)控頁面的后臺(tái)代碼中調(diào)用NetworkVariableDataSource被綁定成員的GetValue()方法,即可得到由試驗(yàn)現(xiàn)場(chǎng)傳輸來的實(shí)時(shí)數(shù)據(jù)。由于傳輸來的數(shù)據(jù)均為Object類型,所以需要對(duì)接收到的數(shù)據(jù)進(jìn)行強(qiáng)制類型轉(zhuǎn)換:將接收到的模擬量數(shù)據(jù)轉(zhuǎn)化為double[]類型,開關(guān)量數(shù)據(jù)轉(zhuǎn)換為bool[]類型,頻率量數(shù)據(jù)則應(yīng)轉(zhuǎn)換為long[]類型。部分代碼為:
接收到的數(shù)據(jù)將通過Web頁面中的各類控件實(shí)時(shí)顯示給用戶,AutoRefresh服務(wù)器控件的使用可以在給定時(shí)間間隔內(nèi)對(duì)頁面上的控件進(jìn)行更新。Interval屬性指明每次更新的時(shí)間間隔,定時(shí)器時(shí)間到后將激發(fā)Refresh事件。使用Refresh可指定需要更新的單個(gè)控件或控件組。Enabled屬性指定定時(shí)器是否有效或者Refresh事件是否激活。DefaultRefreshItems集合包含了當(dāng)Refresh事件發(fā)生時(shí)需要進(jìn)行相應(yīng)更新的控件集。
在創(chuàng)建了可被遠(yuǎn)程訪問的監(jiān)控頁面后,還沒有阻止未授權(quán)用戶訪問網(wǎng)站的方法。因此,在系統(tǒng)開發(fā)的過程中必須考慮采用特定的安全策略,達(dá)到阻止未授權(quán)用戶訪問系統(tǒng)站點(diǎn)的設(shè)計(jì)目標(biāo)。
在實(shí)現(xiàn)了系統(tǒng)站點(diǎn)的注冊(cè)、登陸之后,還需要考慮將用戶區(qū)分為不同角色,并根據(jù)角色的不同賦予不同的訪問權(quán)限。隨ASP.NET提供的Role Manager(角色管理器)即可實(shí)現(xiàn)系統(tǒng)的權(quán)限管理功能。
系統(tǒng)測(cè)試是指在將已確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等相關(guān)元素結(jié)合起來構(gòu)成信息系統(tǒng)之后,針對(duì)信息系統(tǒng)進(jìn)行的各種組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的是通過與系統(tǒng)需求進(jìn)行比對(duì),發(fā)現(xiàn)系統(tǒng)與用戶需求不符或者相矛盾的地方。對(duì)所開發(fā)的系統(tǒng)進(jìn)行了初步測(cè)試,主要方案是在數(shù)據(jù)采集接口程序的“人工模擬”狀態(tài)下,切換模擬量與開關(guān)量的輸出類型,接收端的Web應(yīng)用程序通過實(shí)時(shí)顯示頁面對(duì)類型的一致性進(jìn)行校核,從而達(dá)到判斷通訊有效性的測(cè)試目的。
以改進(jìn)傳統(tǒng)監(jiān)控系統(tǒng)的地域局限性為研究目的,以非現(xiàn)場(chǎng)的技術(shù)人員與行業(yè)專家為潛在用戶,使用了以網(wǎng)絡(luò)技術(shù)為主的分布式計(jì)算模型,即B/S架構(gòu),將虛擬儀器技術(shù)和Web應(yīng)用程序相結(jié)合,提出了適用于航空發(fā)動(dòng)機(jī)試驗(yàn)的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng)。通過對(duì)本地?cái)?shù)據(jù)采集系統(tǒng)的優(yōu)化和實(shí)時(shí)數(shù)據(jù)監(jiān)控站點(diǎn)的實(shí)現(xiàn),完成了整個(gè)遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng)的開發(fā)。最后,通過調(diào)試數(shù)據(jù)采集接口程序與 Web站點(diǎn)的通訊,對(duì)系統(tǒng)效用進(jìn)行了相關(guān)驗(yàn)證并取得了滿意的結(jié)果。與傳統(tǒng)監(jiān)控系統(tǒng)相比,系統(tǒng)具有易維護(hù)性、較好的開放性和較高的安全性等特點(diǎn),有一定的實(shí)際應(yīng)用價(jià)值。
[1]張寶誠(chéng).航空發(fā)動(dòng)機(jī)試驗(yàn)和測(cè)試技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.
[2]鄭人杰,馬素霞,殷人昆.軟件工程概論[M].北京:機(jī)械工業(yè)出版社,2010.
[3]Li Fu-cai,He Zheng-jia,Zi Yany-ang.On-line condition monitoring and diagnostic network system for rotating machine set[J].International Journal of Plant Engineering and Management,2000,5(4):17-22.
[4]Imar Spaanjaar.ASP.NET3.5入門經(jīng)典[M].張 云,譯.北京:清華大學(xué)出版社,2008.