楊 斌,張衛(wèi)冬,伍章明,張利欣
(1.北京科技大學(xué) 國家材料服役安全科學(xué)中心,北京 100083;2.阿斯頓大學(xué) 工程與應(yīng)用科學(xué)學(xué)院,英國 伯明翰)
設(shè)備遠程監(jiān)測與故障診斷系統(tǒng),即利用現(xiàn)代化通信技術(shù)實現(xiàn)異地監(jiān)測與診斷的行為。通過設(shè)備故障診斷技術(shù)與分布式計算機技術(shù)相結(jié)合,一方面在企業(yè)內(nèi)部建立狀態(tài)監(jiān)測服務(wù)器,在關(guān)鍵設(shè)備上安裝監(jiān)測點,將實時采集的數(shù)據(jù)存入服務(wù)器;另一方面在技術(shù)力量較強的高校、研究所建立相應(yīng)的故障診斷中心,設(shè)立故障診斷服務(wù)器,隨時為企業(yè)提供遠程技術(shù)支持等服務(wù),在企業(yè)和科研院所之間形成一個跨越地理位置的互聯(lián)診斷網(wǎng)絡(luò)。當(dāng)現(xiàn)場設(shè)備運行出現(xiàn)異常,其狀態(tài)監(jiān)測服務(wù)器便會向遠方的診斷分析服務(wù)器發(fā)出診斷請求,并可通過各種通訊方式向分布在不同區(qū)域的專家發(fā)出請求,在短時間內(nèi)啟動網(wǎng)內(nèi)診斷資源,實現(xiàn)對設(shè)備故障的早期診斷和及時維修[1,2]。
在設(shè)備遠程監(jiān)測與故障診斷系統(tǒng)中,一方面隨著各種信息和計算機技術(shù)(如CORBA、COM、Web Service、XML、P2P等)的發(fā)展,這些技術(shù)在設(shè)備遠程監(jiān)測與故障診斷系統(tǒng)中得到廣泛應(yīng)用,分布式軟件、應(yīng)用集成平臺、各種語言和協(xié)議等在應(yīng)用中的復(fù)雜性問題變得日益突出;另一方面目前國內(nèi)的大型企業(yè)(如石化、鋼鐵冶金、電力等)內(nèi)部都擁有不同規(guī)模、不同平臺、面向不同用戶、在線或離線的監(jiān)測系統(tǒng),每套監(jiān)測系統(tǒng)都擁有獨特的數(shù)據(jù)存儲方式、數(shù)據(jù)格式、診斷方法和診斷規(guī)則。由于運行時間長短不同,每套系統(tǒng)積累的數(shù)據(jù)和資源也大不相同。這些數(shù)據(jù)和資源對于企業(yè)實現(xiàn)預(yù)知維修,減少故障停機次數(shù),提高生產(chǎn)效率和經(jīng)濟效益有著不可估量的價值。但現(xiàn)有的監(jiān)測系統(tǒng)很少能將這些數(shù)據(jù)和資源進行充分整合和利用,很多企業(yè)甚至不得不將這些數(shù)據(jù)拋棄而造成了資源和資金的極大浪費。
因此,針對現(xiàn)有的監(jiān)測與診斷系統(tǒng),如何進行數(shù)據(jù)與資源的整合以及解決系統(tǒng)中的異構(gòu)和復(fù)雜性問題,就顯得十分重要。本論文提出了一種面向服務(wù)(Service-Oriented Architecture,SOA)[3]的平臺架構(gòu)方案,旨在通過利用SOA的架構(gòu)思想為企業(yè)構(gòu)建一個可擴展、易維護、松耦合的設(shè)備遠程監(jiān)測與故障診斷平臺,從而實現(xiàn)對各類監(jiān)測與診斷資源、數(shù)據(jù)和方法的整合以及對未來新的監(jiān)測技術(shù)、監(jiān)測手段和診斷方法的持續(xù)支持。
面向SOA的架構(gòu)是一種設(shè)計方式,指導(dǎo)著業(yè)務(wù)服務(wù)在其生命周期中包括創(chuàng)建和使用的各個方面。SOA也是一種定義和提供信息結(jié)構(gòu)的方式,它允許不同應(yīng)用相互交換數(shù)據(jù)、參與業(yè)務(wù)流程,無論它們使用的是何種操作系統(tǒng)或者采用了何種編程語言。
現(xiàn)代的設(shè)備遠程監(jiān)測與故障診斷系統(tǒng)大多是利用計算機網(wǎng)絡(luò)構(gòu)成的分布式信息系統(tǒng)。復(fù)雜性是信息系統(tǒng)必須面對的一個重要現(xiàn)實,無論是構(gòu)建新應(yīng)用、替換現(xiàn)有應(yīng)用,還是處理各種維護與改進需要,都需要處理各種復(fù)雜狀況。面向服務(wù)的架構(gòu)和面向服務(wù)的開發(fā)通過使用公共編程接口及互操作協(xié)議,降低了信息系統(tǒng)的復(fù)雜性,具有可重用性高的特點。公共編程接口統(tǒng)一了應(yīng)用(服務(wù)和系統(tǒng))的使用方式,而通過使用公共編程接口,可以很輕松的實現(xiàn)、替換和更新系統(tǒng)。
基于SOA的設(shè)備遠程監(jiān)測與故障診斷系統(tǒng)并不是一個全新的事物,事實上在基于CORBA的系統(tǒng)[5]中就有很多部署都是面向服務(wù)的架構(gòu),其新穎之處在于SOA能夠混搭各種執(zhí)行環(huán)境、服務(wù)接口與執(zhí)行技術(shù)明確分離,并采用一致的架構(gòu)方式將它們以“松耦合”的方式結(jié)合起來。然而,先前的大多數(shù)監(jiān)測與診斷系統(tǒng),都是基于單一的執(zhí)行環(huán)境的“緊耦合”系統(tǒng)。
SOA主要是通過文本文件來實現(xiàn)服務(wù)與執(zhí)行環(huán)境的分離,而且分離得更明確,傳統(tǒng)的接口實現(xiàn)沒有考慮這種“松散的”分離,因為它會影響效率。隨著計算機的硬件性能不斷提高,這種影響已越來越小,而如何在信息系統(tǒng)中獲得更強的互操作性遠比效率問題更為重要。
因此,構(gòu)建基于SOA的設(shè)備遠程監(jiān)測與故障診斷系統(tǒng),其本質(zhì)是如何通過以文本文件方式描述的公共編程接口、服務(wù)以及服務(wù)間的互操作協(xié)議把不同“粒度”的監(jiān)測與診斷服務(wù)進行整合,從而實現(xiàn)、替換和更新系統(tǒng)[4]。
服務(wù)是由它所支持的消息交換模式所定義的。消息中包含的數(shù)據(jù)應(yīng)具有相應(yīng)的模式,用于在服務(wù)請求者與服務(wù)提供者之間建立描述。同時,其它一些元數(shù)據(jù)則描述了服務(wù)的網(wǎng)絡(luò)地址、所支持的操作,以及對可靠性、安全性及事務(wù)性方面的要求。
通常的服務(wù)包含服務(wù)描述、服務(wù)實現(xiàn)和服務(wù)映射三個方面。服務(wù)的請求者通過服務(wù)描述和服務(wù)映射層可以獲取服務(wù)實現(xiàn),而同時服務(wù)實現(xiàn)可能會調(diào)用另一個服務(wù)的功能。
SOA及服務(wù)中的元數(shù)據(jù)即服務(wù)的描述信息,元數(shù)據(jù)通常包含以下幾個部分:①服務(wù)的名稱,服務(wù)的唯一標(biāo)識;②消息數(shù)據(jù),用于定義消息中的數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)以及消息間的交換模式;③地址數(shù)據(jù),服務(wù)名稱的網(wǎng)絡(luò)地址,用于服務(wù)的尋址;④服務(wù)質(zhì)量,包含安全性、可靠性、事務(wù)性等服務(wù)策略。
任何能夠提供服務(wù)支持的組件或系統(tǒng)都可以成為服務(wù)實現(xiàn)。服務(wù)實現(xiàn)負責(zé)實現(xiàn)各種Web服務(wù)規(guī)范中定義的Web服務(wù)模型。服務(wù)的定義中一個重要方面是服務(wù)描述與服務(wù)實現(xiàn)是分開的。一個服務(wù)描述可以有多個不同的服務(wù)實現(xiàn)與之關(guān)聯(lián),服務(wù)描述通過一個服務(wù)映射實現(xiàn)與執(zhí)行環(huán)境分離。服務(wù)映射負責(zé)接受消息、轉(zhuǎn)換數(shù)據(jù)以及傳輸數(shù)據(jù)。
本文所闡述的系統(tǒng)正是以這種服務(wù)抽象模型,對監(jiān)測與診斷系統(tǒng)中各類應(yīng)用進行不同層次、不同粒度的抽象,從而將整個監(jiān)測與診斷的系統(tǒng)細分為許多個“松耦合”的服務(wù)實現(xiàn)、服務(wù)描述和服務(wù)映射。這種方式構(gòu)建的監(jiān)測與診斷系的優(yōu)勢是:易于訪問不同類型的服務(wù)和使用各種功能模塊,如新開發(fā)的服務(wù),整合已有的應(yīng)用系統(tǒng)以及使用由第三方提供的服務(wù)。
面向SOA的遠程監(jiān)測與故障診斷系統(tǒng)不同于傳統(tǒng)的分布式架構(gòu)系統(tǒng)[6-8],其主要區(qū)別在于服務(wù)的抽象和系統(tǒng)的松耦合性,可以根據(jù)業(yè)務(wù)邏輯和功能需求將系統(tǒng)抽象為不同層次、不同粒度的服務(wù)。通過這些服務(wù)的組合和互操作構(gòu)建整個系統(tǒng),具有更好的可重構(gòu)性和擴展性。因此,在設(shè)計面向SOA的遠程監(jiān)測與故障診斷系統(tǒng)之前必須對業(yè)務(wù)邏輯和功能需求進行多層次抽象。
遠程監(jiān)測系統(tǒng)主要有兩大功能:一方面是負責(zé)將現(xiàn)場前端采集系統(tǒng)獲取的信號數(shù)據(jù),經(jīng)過處理、抽取和分析實時傳向監(jiān)測客戶端,在監(jiān)測客戶端以各種圖表方式實時顯示設(shè)備運行狀態(tài);另一方面是將這些信號數(shù)據(jù)存入數(shù)據(jù)庫,提供數(shù)據(jù)查詢功能,展示設(shè)備的歷史運行狀態(tài)。因此遠程監(jiān)測系統(tǒng)可以抽象為以下幾個方面:① 信號的獲取,即前端采集系統(tǒng)實時獲取各類監(jiān)測信號;② 信號的處理與分析,包括信號的降噪、計算特征值、報警狀態(tài)判斷和頻譜分析等;③ 信號的顯示,通過波形曲線、棒圖和數(shù)據(jù)表格等多種方式顯示信號;④ 信號的存儲,將信號分類存入數(shù)據(jù)庫以供查詢;⑤信號的查詢,通常包含某個時間點的信號細節(jié)查詢和某個時間段的變化趨勢等方面的查詢。
故障診斷系統(tǒng)主要是利用實時或歷史數(shù)據(jù),通過各種診斷方法設(shè)備運行狀況進行診斷。同時,系統(tǒng)可以根據(jù)用戶的請求對設(shè)備的運行狀態(tài)信號進行分析,給出診斷結(jié)果。在交互式診斷中用戶也可以向遠程診斷中心提出更高級的診斷請求(如專家診斷),或?qū)⒆约旱脑\斷結(jié)果提交到診斷中心,作為典型診斷案例。因此遠程故障診斷系統(tǒng)可以抽象為以下幾個方面:①診斷流程和規(guī)則,無論是用戶的自助診斷還是交互式診斷都需要基于特定設(shè)備的一些診斷流程和規(guī)則;②診斷方法,如目前常用的模糊推理和故障樹等方法;③知識庫,不同的設(shè)備其診斷機理通常會有較大差異,需要利用知識庫提供多種故障診斷規(guī)則、分析規(guī)則和故障排除規(guī)則;④ 案例庫,設(shè)備的故障診斷是診斷經(jīng)驗十分重要的實踐科學(xué),建立典型案例庫的目的就是不斷積累實際的診斷經(jīng)驗。
在對監(jiān)測和診斷的業(yè)務(wù)邏輯和功能需求分析和抽象的基礎(chǔ)上,結(jié)合SOA的設(shè)計思想,可以將整個體系結(jié)構(gòu)劃分為基礎(chǔ)數(shù)據(jù)源層、細粒度的功能模塊和粗粒度服務(wù)層?;A(chǔ)數(shù)據(jù)源層主要是系統(tǒng)的數(shù)據(jù)來源,設(shè)備監(jiān)測和診斷的基礎(chǔ)都是對測點信號數(shù)據(jù)的顯示和分析。細粒度功能服務(wù)層主要通過監(jiān)測或診斷的業(yè)務(wù)邏輯來抽象出通用的細粒度功能模塊,以便通過這些模塊的組合和集成實現(xiàn)更粗粒度的服務(wù)。粗粒度服務(wù)層即提供面向用戶的功能服務(wù)。同時,這些功能服務(wù)通過企業(yè)服務(wù)總線[9]向企業(yè)級或遠程級的用戶發(fā)布。遠程監(jiān)測與故障診斷系統(tǒng)的體系結(jié)構(gòu)如圖1所示。
圖1 狀態(tài)監(jiān)測與診斷系統(tǒng)的軟件體系結(jié)構(gòu)Fig.1 Software Architecture of conditions monitoring and fault diagnosis
2.3.1 信號采集適配器
信號采集適配器負責(zé)現(xiàn)場前端信號采集系統(tǒng)與監(jiān)測診斷系統(tǒng)中各功能服務(wù)之間的數(shù)據(jù)連接。通常企業(yè)中存在多種前端信號采集系統(tǒng)所提供的數(shù)據(jù)格式、采集方式都不相同。因此,信息采集適配器主要是為了屏蔽這種差異性,為后面的各個服務(wù)功能提供統(tǒng)一的信號數(shù)據(jù)獲取接口。信號采集適配器的主要功能只是對通訊協(xié)議和數(shù)據(jù)格式進行統(tǒng)一的轉(zhuǎn)換,并不對信號本身處理。
傳統(tǒng)的集中式數(shù)據(jù)流方式是使用特定的服務(wù)器應(yīng)用程序收集所有前端系統(tǒng)的監(jiān)測點數(shù)據(jù),再通過集中的數(shù)據(jù)中心向外提供監(jiān)測數(shù)據(jù)服務(wù)。顯然,這種方式的缺陷是集中式數(shù)據(jù)中心的運行異?;蚬收蠈?dǎo)致整個監(jiān)測系統(tǒng)的崩潰。與此不同,面向服務(wù)的設(shè)計使得任何一個數(shù)據(jù)源本身都可以成為數(shù)據(jù)服務(wù)的提供者和使用者。圖2顯示了這種既分散又集中的數(shù)據(jù)流服務(wù)方式。
圖2 面向服務(wù)的監(jiān)測信號數(shù)據(jù)流Fig.2 Monitoring signal data stream oriented service
2.3.2 負載均衡與服務(wù)調(diào)度模塊在實時監(jiān)測系統(tǒng)中,通常會出現(xiàn)有限的計算機資源和大量客戶端并發(fā)請求之間的矛盾,為了保證這些應(yīng)用服務(wù)的穩(wěn)定運行,必須在各應(yīng)用服務(wù)中使用負載均衡模塊控制客戶端的連接和優(yōu)化計算機的資源分配。權(quán)重均衡算法可以根據(jù)每個請求(或服務(wù))所需要的不同的處理能力,給每個請求分配不同的權(quán)值,當(dāng)接受相應(yīng)權(quán)值的服務(wù)請求時根據(jù)服務(wù)的權(quán)值計算負載狀態(tài),可以基本確保服務(wù)器和其上服務(wù)的穩(wěn)定運行。因此,權(quán)重均衡算法可以作為負載均衡模塊的核心算法。
不同于傳統(tǒng)的分布式系統(tǒng)客戶端程序的請求與服務(wù)器程序的相應(yīng)之間是一一對應(yīng)的緊耦合聯(lián)系,在SOA中一個相同的客戶端請求在系統(tǒng)中可能存在多個對應(yīng)的服務(wù)的提供者,因此選擇一個合適的服務(wù)提供者不僅可以加快服務(wù)響應(yīng)速度還可以合理分配計算機資源達到負載均衡的目的。負載均衡與服務(wù)調(diào)度模塊的運行流程如圖3所示,負載均衡實際上起到了資源與服務(wù)分配的作用,只有分配成功后才能夠提交至Web服務(wù),在服務(wù)完成后減少當(dāng)前負載數(shù)(釋放資源)。
圖3 負載均衡模塊的運行流程Fig.3 Running flowchart of load balance model
2.3.3 監(jiān)測系統(tǒng)數(shù)據(jù)庫設(shè)計
監(jiān)測系統(tǒng)數(shù)據(jù)庫的設(shè)計原則是便于監(jiān)測數(shù)據(jù)的存儲和查詢,在監(jiān)測系統(tǒng)中最小的信息單元是測點[10]。因此,本文中根據(jù)獨立的單一測點作為庫表結(jié)構(gòu)的基本單元作為設(shè)計和建立數(shù)據(jù)庫的準(zhǔn)則。在頂層有一個root數(shù)據(jù)庫,root數(shù)據(jù)庫包含兩個表:機組信息表和機組數(shù)據(jù)庫信息表,機組信息表存儲了機組的編號、名稱、描述、機組簡圖以及測點分布情況等;機組數(shù)據(jù)庫信息表存儲了后續(xù)子庫(機組數(shù)據(jù)庫)的連接信息和庫表結(jié)構(gòu)。root數(shù)據(jù)庫是整個監(jiān)測系統(tǒng)數(shù)據(jù)庫的入口,設(shè)計root數(shù)據(jù)庫可以動態(tài)維護后續(xù)子庫的信息和庫表結(jié)構(gòu),便于擴展。由于各個機組數(shù)據(jù)庫測點及測量值的差異性,因此需要動態(tài)創(chuàng)建各個機組數(shù)據(jù)庫。
2.3.4 故障診斷知識庫和案例庫
故障診斷和推理是一個基于知識與經(jīng)驗的分析過程,因此通常需要根據(jù)不同類型的診斷對象(設(shè)備)建立完善的知識庫與案例庫[11]。
故障診斷知識庫通常采用多庫結(jié)構(gòu)的組織模式:設(shè)備信息庫、故障征兆庫和診斷規(guī)則庫。這種結(jié)構(gòu)模式可以提高系統(tǒng)工作效率,也便于知識的搜索。各庫之間相互獨立,某個庫的修改不會影響其它庫,其結(jié)構(gòu)如圖4所示。
圖4 診斷知識庫層次結(jié)構(gòu)Fig.4 Hierarchical structure of fault diagnosis knowledge base
設(shè)備信息庫包含設(shè)備結(jié)構(gòu)、運行規(guī)范和運行參數(shù)等信息,是故障診斷重要的背景信息。
對于設(shè)備運行中常見的一些故障類型通常會有特定的征兆與之對應(yīng),故障征兆庫用于存放故障經(jīng)分類整理后表現(xiàn)出來的征兆,由征兆屬性和征兆值組成,對于每個征兆屬性通常有若干個征兆值(如振動特性、溫度等)。
診斷規(guī)則庫中的規(guī)則分成三組:故障診斷規(guī)則組、故障原因分析規(guī)則組和故障排除措施規(guī)則組,表達形式如下。
故障診斷規(guī)則組:[數(shù)據(jù),事實]→故障類型;
故障原因分析規(guī)則組:[事實,故障類型]→故障原因;
故障消除措施規(guī)則組:[事實,故障類型,故障原因]→故障排除指導(dǎo)。
案例庫的建立主要是對現(xiàn)有案例的表示、組織與存儲[12]。案例的表示必須能夠清楚地表達出故障類型、表現(xiàn)形式、因果關(guān)系及故障機理,案例組織與存儲結(jié)構(gòu)則關(guān)系到案例檢索的效率。為了使案例庫能夠方便地進行案例的新增、修改、刪除等操作和維護,本文設(shè)計了故障案例種類表、故障案例表、故障案例特征表三個關(guān)系數(shù)據(jù)表用于描述案例庫的各項信息。故障案例種類表記錄了故障案例中的典型案例種類;故障案例表記錄了每個案例的詳細信息,其中包括故障現(xiàn)象、征兆、解決方法等;故障案例特征表記錄對應(yīng)案例的各特征屬性(振動特征量、溫度、壓力等)的值。
遠程監(jiān)測與故障診斷系統(tǒng)針對上述基礎(chǔ)數(shù)據(jù)源和細粒度功能模塊設(shè)計,使得整個監(jiān)測系統(tǒng)具有良好的擴展性,其中信號采集適配器屏蔽了底層數(shù)據(jù)采集的差異,同時配合靈活的數(shù)據(jù)庫系統(tǒng)設(shè)計使得增加新的數(shù)據(jù)采集模塊只需簡單配置數(shù)據(jù)庫服務(wù)器即可完成。另外,負載均衡與服務(wù)調(diào)度模塊可以靈活應(yīng)對客戶端數(shù)量的擴展,均衡系統(tǒng)資源,提高客戶端服務(wù)的實時性。
2.4.1 測點信息服務(wù)
測點信息服務(wù)主要包含兩類任務(wù),一方面是面向采集適配器為各個測點提供信息的注冊與注銷,在服務(wù)內(nèi)維護一個所有測點信息的列表,發(fā)布的相關(guān)接口提供測點信息的添加、刪除或更新;另一方面是面向客戶端測點信息的各種查詢服務(wù)。測點信息服務(wù)發(fā)布的Web Service包含如下6個接口:① 測點注冊,注冊測點信息,如果測點重合則更新當(dāng)前測點信息;② 測點注銷,刪除測點停止同時通知其他服務(wù)/模塊,停止該測點的相關(guān)信息和數(shù)據(jù)服務(wù);③ 測點更新,更新某個測點的相關(guān)信息;④ 單個測點查詢,利用測點ID查詢相關(guān)信息;⑤ 機組測點查詢,根據(jù)機組名稱(或其他唯一標(biāo)識)查詢該機組對應(yīng)的測點列表;⑥ 全部測點查詢,返回系統(tǒng)內(nèi)所有測點信息。為了方便測點信息的結(jié)構(gòu)本身的擴展與修改,測點信息按照XML規(guī)范組織,測點信息文檔的根節(jié)點是“ROOT”,下一級節(jié)點為機組節(jié)點,機組節(jié)點下一級是該機組擁有測點類型的種類列表(加速度、速度或溫度等)。
2.4.2 實時波形數(shù)據(jù)服務(wù)
實時波形數(shù)據(jù)服務(wù)是指向客戶端提供信號的實時的原始波形數(shù)據(jù)和根據(jù)對應(yīng)的原始波形數(shù)據(jù)計算出的頻譜數(shù)據(jù)。
實時波形數(shù)據(jù)服務(wù)包括兩類操作:一類是當(dāng)實時波形數(shù)據(jù)服務(wù)接收到由監(jiān)測適配器傳來的測點采集數(shù)據(jù)后,進行緩存并調(diào)用信號處理Web Service服務(wù)進行頻譜計算;另一類是當(dāng)接收到客戶端的實時波形數(shù)據(jù)請求時,返回緩存的測點采集數(shù)據(jù)和頻譜數(shù)據(jù)。數(shù)據(jù)操作流程如圖5所示。
圖5 實時波形數(shù)據(jù)服務(wù)流程Fig.5 Sevice flowchart of realtime wave data
2.4.3 實時特征值服務(wù)
實時特征值服務(wù)的實現(xiàn)方式、數(shù)據(jù)流程與實時波形數(shù)據(jù)服務(wù)完全相同,不同是需要根據(jù)接收到的波形數(shù)據(jù)計算其特征值并傳遞給客戶端。
此外實時特征值服務(wù)還有兩個附加的功能:①根據(jù)計算出的特征值服務(wù)判斷當(dāng)前的數(shù)據(jù)是否超過了預(yù)設(shè)的報警線,如果超過則需要將對應(yīng)的數(shù)據(jù)(原始波形和特征值數(shù)據(jù))發(fā)送至實時報警數(shù)據(jù)服務(wù)中進行緩存;②將計算出的特征值數(shù)據(jù)(包含報警狀態(tài)信息)發(fā)送至歷史數(shù)據(jù)庫模塊進行存儲。
2.4.4 測點信號數(shù)據(jù)存儲服務(wù)
測點數(shù)據(jù)存儲服務(wù)的主要任務(wù)是在接收到其它各個服務(wù)模塊發(fā)送來的信號原始數(shù)據(jù)或特征值數(shù)據(jù)時調(diào)用數(shù)據(jù)庫操作模塊進行數(shù)據(jù)存儲。為了能夠?qū)崿F(xiàn)更高效率的數(shù)據(jù)存儲,可以使用存儲過程。由于振動信號的波形數(shù)據(jù)的數(shù)據(jù)量較大,因此在存儲這類數(shù)據(jù)時需要做特殊的處理。本文引用一種“記錄-文件”的方式進行處理,將實際的振動波形數(shù)據(jù)存儲在基于XML規(guī)范的數(shù)據(jù)文件中,同時在數(shù)據(jù)庫中記錄該文件的相關(guān)信息(即建立文件索引),便于將來的查詢。本文使用XML規(guī)范存儲數(shù)據(jù)主要考慮到數(shù)據(jù)文件格式的可擴展性。
測點數(shù)據(jù)存儲服務(wù)屬于系統(tǒng)內(nèi)部服務(wù),因此無需提供外部調(diào)用接口,但仍然需要與SOA基礎(chǔ)架構(gòu)有交互服務(wù)的操作接口。
2.4.5 歷史波形和特征值查詢服務(wù)
由于歷史波形數(shù)據(jù)存儲在特定的數(shù)據(jù)文件中,因此歷史波形查詢服務(wù)在接收到客戶端的查詢請求時需要先搜索在數(shù)據(jù)庫中的文件記錄,再根據(jù)文件的記錄信息訪問實際的波形數(shù)據(jù)文件,然后需要調(diào)用信號處理Web Service服務(wù)計算頻譜數(shù)據(jù),經(jīng)過封裝后返回給客戶端。
在進行歷史特征值數(shù)據(jù)查詢時需要提供查詢的起始時間和終止時間,即查詢的時間跨度。時間跨度短的查詢可以直接查詢和返回查詢結(jié)果,但對于時間跨度長的查詢,其查詢結(jié)果和數(shù)據(jù)將非常龐大,不適合直接使用網(wǎng)絡(luò)傳輸??紤]到歷史特征值數(shù)據(jù)查詢的應(yīng)用大多是進行查看數(shù)據(jù)的歷史趨勢,因此本文對于大跨度時間的查詢進行數(shù)據(jù)提取,在保證原有數(shù)據(jù)變化趨勢不變的情況下,提取可以表征趨勢特征的關(guān)鍵數(shù)據(jù)點以減少數(shù)據(jù)量。
趨勢數(shù)據(jù)的提取策略可以有很多種,本文使用定時間段極值提取策略:①首先確定一個定時間段;②然后按照最為重要的特征值(如振動信號的均方根值)將該時間段中的數(shù)據(jù)描繪為曲線并求出所有的極值點;③最后將得到的極值點作為提取的特征點存儲在數(shù)據(jù)庫中。這種提取策略的優(yōu)勢是可以保留所有趨勢中的拐點數(shù)據(jù),但是需要研究合理的時間段。
通常對于不同的診斷任務(wù),其診斷難度和故障的嚴(yán)重程度往往差別很大,有的故障可能通過信號頻譜分析就可以得到較為準(zhǔn)確的結(jié)果,而某些較為復(fù)雜故障的診斷往往需要領(lǐng)域?qū)<覀兊膮f(xié)同診斷。因此,在面向服務(wù)的監(jiān)測與診斷系統(tǒng)中分別為不同難度、不同層次的診斷需求提供了三種類型的診斷服務(wù):自助診斷、交互式診斷和專家診斷。
2.5.1 自助診斷服務(wù)
自助診斷服務(wù)是指用戶通過向診斷系統(tǒng)提交故障的描述、故障信號以及其他相關(guān)信息后,再選定對應(yīng)信號分析方法和診斷規(guī)則,利用診斷推理機自動獲取診斷結(jié)果的診斷方式。利用自助診斷服務(wù)用戶可自主分析、查詢設(shè)備故障原因,作為診斷參考。自助診斷的流程圖如下圖6所示。
圖6 自助診斷流程圖Fig.6 Self-assist diagnosis flowchart
2.5.2 交互式診斷和專家診斷服務(wù)
交互式診斷是通過用戶和專家交互的方式進行故障診斷。用戶提出診斷請求,診斷平臺管理員將請求分配給相關(guān)的診斷專家,專家做出診斷結(jié)論并反饋給用戶,用戶根據(jù)診斷結(jié)論對設(shè)備做出相應(yīng)處理,如果處理效果不明顯,用戶可以進一步將處理結(jié)果提供給專家,專家再一次對請求給出診斷結(jié)論,此過程可以反復(fù)進行,直到用戶對診斷結(jié)果表示滿意為止,完成一次交互式診斷。
專家診斷服務(wù)的發(fā)起者是請求用戶,但用戶的請求需要系統(tǒng)管理員驗證,只有達到專家診斷的級別的故障案例才能通過驗證。管理員根據(jù)請求確定參加這次專家會診的專家列表,將請求發(fā)送給這些專家。這些專家根據(jù)用戶提出的請求信息,通過系統(tǒng)提供的診斷方法,經(jīng)過分析得出各自的診斷結(jié)論。專家會診的最大優(yōu)勢就是它可以充分利用不同專家的經(jīng)驗,通過相互交流給出結(jié)論,避免了交互式診斷中專家獨自承擔(dān)診斷任務(wù)帶來的片面性,最準(zhǔn)確的給出故障的形成原因以及解決方案。
2.5.3 基于SVG的富客戶端系統(tǒng)
在普通基于HTML的Web頁面上顯示實時的數(shù)據(jù)圖表一直是業(yè)界的一個難題,除了傳統(tǒng)的ActiveX技術(shù)和Java Applet技術(shù)外,目前成熟的解決方案并不是很多,其中主要的兩種解決方法是利用Flash插件和基于SVG的Web矢量圖形技術(shù)。本課題針對監(jiān)測系統(tǒng)的功能需求,設(shè)計和實現(xiàn)了一套簡單的基于SVG技術(shù)的Web動態(tài)圖表組件。
利用SVG技術(shù)的實現(xiàn)Web下的動態(tài)圖表基本原理如下:首先利用 SVG來繪制基本的圖表形狀,然后通過使用Ajax數(shù)據(jù)層向Web服務(wù)器請求最新的實時數(shù)據(jù),當(dāng)接收到實時數(shù)據(jù)則再通過JavaScript腳本調(diào)用DOM接口動態(tài)修改SVG圖形,這樣就實現(xiàn)了Web下的動態(tài)圖表。
為了驗證基于SOA的遠程監(jiān)測與故障診斷系統(tǒng)的可行性以及本文所闡述的設(shè)計思路和功能模塊,設(shè)計并實現(xiàn)了基于SOA的遠程監(jiān)測與診斷演示系統(tǒng)。系統(tǒng)開發(fā)平臺參數(shù)如下:Windows XP專業(yè)版操作系統(tǒng),E4300(1.8G)的 CPU,2 G 內(nèi)存,Web 服務(wù)器為 IIS,數(shù)據(jù)庫系統(tǒng)為SQL Server 2005,開發(fā)語言為ASP,服務(wù)器開發(fā)平臺為VC 2005。另外,在整個演示系統(tǒng)中模擬了10個監(jiān)測點的數(shù)據(jù),采樣頻率為2 kHz,整個演示系統(tǒng)的核心部分是SOA運行監(jiān)測中心,分別包括服務(wù)注冊中心、服務(wù)網(wǎng)關(guān)以及消息總線,詳見圖7部分。下面從SOA運行監(jiān)測中心、遠程監(jiān)測系統(tǒng)、診斷系統(tǒng)三個方面詳細介紹演示系統(tǒng)的運行效果。
圖7 SOA運行監(jiān)測中心的前臺界面Fig.7 The front interface of SOA monitoring center
(1)SOA的運行監(jiān)測中心
SOA的各個功能模塊基本上都屬于系統(tǒng)“后臺”的進程或服務(wù),因此為了使SOA的管理者能夠方便地獲取這些功能模塊的運行狀況,這里通過一個SOA的運行監(jiān)測中心,實時顯示SOA的各個功能模塊的運行狀態(tài)。如圖7所示,監(jiān)測中心主要用于顯示服務(wù)注冊中心、服務(wù)網(wǎng)關(guān)等SOA核心部件的運行狀態(tài),同時提供了對系統(tǒng)中各個功能服務(wù)進行人工管理的方式。
(2)遠程監(jiān)測系統(tǒng)示例
演示系統(tǒng)中主要提供了基于Web的遠程監(jiān)測系統(tǒng)的客戶端,這里以振動信號的實時波形監(jiān)測(圖8)、特征值棒圖監(jiān)測(圖9,去掉瀏覽器部分)為例展示了監(jiān)測系統(tǒng)運行的效果??梢钥闯?,一方面已經(jīng)成功地實現(xiàn)了完全基于Web方式的監(jiān)測界面和操作,另一方面由于和客戶端的數(shù)據(jù)和業(yè)務(wù)相分離,監(jiān)測界面的設(shè)計與實現(xiàn)十分簡單易行,因此將來可以很方便地為實際的應(yīng)用系統(tǒng)設(shè)計更豐富和完善的監(jiān)測界面。
圖8 實時波形監(jiān)測Fig.8 Realtime wave monitoring
圖9 特征值棒圖監(jiān)測Fig.9 Feature bar monitoring
圖10 自助診斷前端Web界面Fig.10 The web interface of self-assist diagnosis
(3)診斷系統(tǒng)示例
本文中所述遠程故障診斷系統(tǒng)主要提供自助診斷、交互診斷和專家診斷三個模塊的服務(wù)與功能。以自助診斷為例,其前端界面如圖10所示。這些前端界面主要提供了用戶與診斷服務(wù)的數(shù)據(jù)交換(用戶提交數(shù)據(jù),服務(wù)結(jié)果顯示等)。
針對目前設(shè)備遠程監(jiān)測與故障診斷系統(tǒng)面臨著日趨復(fù)雜的應(yīng)用需求和環(huán)境,為了在不同的應(yīng)用平臺、不同的開發(fā)環(huán)境、不同的基礎(chǔ)硬件上構(gòu)建一個分布式部署、松耦合、易擴展的應(yīng)用平臺,本文提出了基于SOA的遠程監(jiān)測與故障系統(tǒng)體系結(jié)構(gòu)。該體系結(jié)構(gòu)利用SOA的設(shè)計思想,首先對遠程監(jiān)測與故障診斷系統(tǒng)的業(yè)務(wù)邏輯和功能需求進行了不同層次、不同粒度的抽象和劃分,建立了一個松散耦合的Web服務(wù)系統(tǒng)。然后給出了基于SOA的松耦合Web服務(wù)的構(gòu)建方式,使得功能模塊的可重用度更高,易于系統(tǒng)的擴展,實現(xiàn)了對分散、異構(gòu)的監(jiān)測與診斷系統(tǒng)資源進行有效的整合。最后,本論文開發(fā)并實現(xiàn)了一套基于SOA的遠程監(jiān)測與故障診斷系統(tǒng),驗證了整個遠程監(jiān)測與故障診斷系統(tǒng)體系結(jié)構(gòu)的可行性。
[1]韓 捷,張瑞琳.旋轉(zhuǎn)機械故障機理及診斷技術(shù)[M].北京:機械工業(yè)出版社,1997.
[2]屈梁生,何正嘉.機械故障診斷學(xué)[M].上海:上海科學(xué)技術(shù)出版社,1986.
[3]Newcomer E,Lomow G.Understanding SOA with Web Services[M].Maryland:Addison-Wesley,2005.
[4]郭春燕.基于SOA的企業(yè)應(yīng)用的研究與實現(xiàn)[D].大連:大連理工大學(xué),2005.
[5]王海峰,徐金梧,楊德斌,等.基于CORBA的分布式遠程故障診斷體系[J].北京科技大學(xué)學(xué)報,2004,26(2):192-196.
[6]姚寶恒,楊霞菊,佟德純,等.基于互聯(lián)網(wǎng)的設(shè)備遠程監(jiān)測診斷技術(shù)[J].振動與沖擊,2002,21(3):52 -57.
[7]蔣全勝,賈民平.基于Web的連鑄旋轉(zhuǎn)塔遠程狀態(tài)監(jiān)測與診斷系統(tǒng)[J].東南大學(xué)學(xué)報,2006,36(3):407 -410.
[8]吳立偉,陳 進,孫衛(wèi)祥.遠程設(shè)備監(jiān)測與診斷系統(tǒng)的DCOM組件設(shè)計與實現(xiàn)方法[J].振動與沖擊,2007,26(3):117-120.
[9]Woods D,Mattern T.Enterprise SOA:designing IT for business innovation[M].Cambridge:O'Reilly,2006.
[10]陳一鳴,陳 進,伍 星,等.基于網(wǎng)絡(luò)的遠程監(jiān)測和故障診斷系統(tǒng)的數(shù)據(jù)庫系統(tǒng)[J].振動與沖擊,2005,24(6):61-64.
[11]多麗華,楊擁民,陶利民,等.基于層次分析法和與/或樹的遠程診斷專家系統(tǒng)實現(xiàn)研究[J].華中科技大學(xué)學(xué)報,2005,35(4):75 -78.
[12]王 東,劉懷亮,徐國華.案例推理在故障診斷系統(tǒng)中的應(yīng)用[J].計算機工程,2003,29(12):10-12.