摘 要:本文提出了一套Intranet下旋轉(zhuǎn)機(jī)械監(jiān)測與故障診斷系統(tǒng)的開發(fā)方案。整套系統(tǒng)在Visual C++環(huán)境下開發(fā),集成了DAQ采集、網(wǎng)絡(luò)、數(shù)據(jù)庫、多線程技術(shù),實(shí)現(xiàn)了高速實(shí)時(shí)數(shù)據(jù)采集、現(xiàn)場監(jiān)測、信號分析、故障診斷以及網(wǎng)絡(luò)通訊等多項(xiàng)功能。本文提出了用Matlab數(shù)學(xué)函數(shù)庫接口實(shí)現(xiàn)信號處理的方法。實(shí)踐證明,將這種方法用于故障診斷系統(tǒng)開發(fā),能夠使系統(tǒng)開發(fā)更加高效,工作性能更加穩(wěn)定。目前整套系統(tǒng)已在錦州石化旋轉(zhuǎn)機(jī)組中投入監(jiān)測運(yùn)行,具有工程實(shí)際應(yīng)用價(jià)值。
關(guān)鍵詞:故障診斷;數(shù)據(jù)采集;信號處理;多線程
1前言
旋轉(zhuǎn)機(jī)械是大型企業(yè)生產(chǎn)的關(guān)鍵部件,現(xiàn)代化生產(chǎn)在功率、速度、機(jī)械性能、自動化水平、可靠性、安全性等方面對它提出了越來越高的要求。將故障診斷技術(shù)應(yīng)用在旋轉(zhuǎn)機(jī)械生產(chǎn)中,將有效的降低生產(chǎn)過程中的故障發(fā)生率,對于故障預(yù)防以及故障發(fā)生后的維修具有相當(dāng)?shù)闹笇?dǎo)意義。資料表明:在采用診斷技術(shù)后,生產(chǎn)事故率減少了75%,維修費(fèi)用降低了25%~50%。大大的提高了企業(yè)的經(jīng)濟(jì)效益[1]。
旋轉(zhuǎn)機(jī)械故障診斷與監(jiān)測系統(tǒng)的開發(fā)涉及到傳感器技術(shù)、數(shù)據(jù)采集處理與信號分析技術(shù)、故障機(jī)理的研究、診斷方法的研究等多方面的知識。可以說是一門跨學(xué)科,跨領(lǐng)域的綜合系統(tǒng)的開發(fā)。而現(xiàn)在以TCP/IP模型為代表的迅猛發(fā)展的網(wǎng)絡(luò)技術(shù),為故障診斷系統(tǒng)注入了新鮮血液同時(shí),也為故障診斷系統(tǒng)的設(shè)計(jì)者提出了新的要求。網(wǎng)絡(luò)的加入使故障診斷系統(tǒng)從總體的工作模式設(shè)計(jì),到數(shù)據(jù)的共享傳輸方式的選擇,都產(chǎn)生了革命性的發(fā)展。因此在企業(yè)內(nèi)部網(wǎng)Intranet下開發(fā)出一套完善、高效的故障診斷系統(tǒng)對企業(yè)效益的提高具有深遠(yuǎn)的意義。
2總體設(shè)計(jì)
故障診斷與監(jiān)測系統(tǒng)經(jīng)過了離線、單機(jī)版以及分布式診斷的發(fā)展過程。而分布式診斷又分為B/S、C/S兩種工作模式。從靈活性、經(jīng)濟(jì)性、針對性、可靠性、安全性、推廣度等等多方面考慮,可以說各種診斷模型都具有各自的特點(diǎn)。在企業(yè)內(nèi)部Intranet下,考慮到系統(tǒng)的復(fù)雜功能要求、安全性、可靠性,以及現(xiàn)今國內(nèi)分布式故障診斷系統(tǒng)的發(fā)展規(guī)模、發(fā)展程度,本套系統(tǒng)采用了C/S模式的診斷工作模型。機(jī)組運(yùn)行數(shù)據(jù)經(jīng)過現(xiàn)場計(jì)算機(jī)采集處理之后通過車間監(jiān)控室的網(wǎng)絡(luò)交換機(jī)接入企業(yè)內(nèi)部網(wǎng),傳給各職能部門。這樣,企業(yè)的管理決策和檢修技術(shù)人員在辦公室內(nèi)就可以通過與網(wǎng)絡(luò)連接的計(jì)算機(jī)及時(shí)的了解現(xiàn)場機(jī)組的運(yùn)行狀況,做出相應(yīng)決策。同時(shí)通過企業(yè)內(nèi)部網(wǎng)關(guān)設(shè)置,系統(tǒng)也可以將診斷系統(tǒng)延伸到Internet診斷節(jié)點(diǎn)中,這樣既考慮了安全性,又達(dá)到了診斷系統(tǒng)的空間擴(kuò)充。
3功能設(shè)計(jì)
C/S 模式下,易于設(shè)計(jì)出功能復(fù)雜,針對性、可靠性強(qiáng)的診斷、檢測系統(tǒng)。其中服務(wù)器端運(yùn)行于現(xiàn)場計(jì)算機(jī),采用多線程技術(shù),主要完成數(shù)據(jù)采集、狀態(tài)監(jiān)測、系統(tǒng)管理以及實(shí)現(xiàn)數(shù)據(jù)服務(wù)器功能,滿足同時(shí)向多個(gè)客戶端傳輸數(shù)據(jù)的要求。基本功能模塊包括:數(shù)據(jù)采集、狀態(tài)監(jiān)測、趨勢分析、系統(tǒng)管理和網(wǎng)絡(luò)通訊等模塊??蛻舳塑浖\(yùn)行于各職能部門的計(jì)算機(jī),具有網(wǎng)絡(luò)通訊、狀態(tài)監(jiān)測和分析診斷等功能,基本功能模塊包括:數(shù)據(jù)管理、狀態(tài)監(jiān)測、趨勢分析、信號分析、故障診斷和網(wǎng)絡(luò)通訊等。同樣,客戶端也可以同時(shí)連接多個(gè)服務(wù)器,實(shí)現(xiàn)企業(yè)內(nèi)部的網(wǎng)狀互連。達(dá)到故障監(jiān)測診斷的面式結(jié)構(gòu)。服務(wù)器、客戶端具體功能如圖1所示。

l 數(shù)據(jù)采集:與服務(wù)器的其它功能實(shí)現(xiàn)并行操作,完成溫度、轉(zhuǎn)速、振動以及間相數(shù)據(jù)的高速實(shí)時(shí)采集,并實(shí)現(xiàn)采集參數(shù)(如:靈敏度,上下限,衰減系數(shù))的動態(tài)配置。具體內(nèi)容見下文數(shù)據(jù)采集節(jié)。
l 狀態(tài)監(jiān)測:完成實(shí)時(shí)圖以及峰峰圖的動態(tài)顯示。提供報(bào)警提示,以及報(bào)警數(shù)據(jù)的自動記錄功能。
l 信號處理:利用Matlab C/C++數(shù)學(xué)函數(shù)庫實(shí)現(xiàn)各種時(shí)域、頻域的信號分析,包括:時(shí)域波形、FFT頻譜、自功率譜、互功率譜、倒譜、全息譜、自相關(guān)分析、互相關(guān)分析、相干函數(shù)、時(shí)間譜陣、Wigner時(shí)頻分布、濾波軸心軌跡和重構(gòu)軸心軌跡、轉(zhuǎn)速譜陣等等信號處理功能。
l 趨勢分析:采用自回歸分析方法進(jìn)行趨勢預(yù)測。根據(jù)其歷史數(shù)據(jù)來推斷缺陷的發(fā)展速度與趨勢,其目的是為早期判定故障提供一個(gè)有效的手段。
l 故障診斷:系統(tǒng)診斷分為自動診斷和人機(jī)交互診斷兩種方式。自動診斷利用振動信號的頻譜結(jié)構(gòu)識別故障,將診斷對象振動信號的頻譜與標(biāo)準(zhǔn)故障樣本的頻譜進(jìn)行比較,根據(jù)之間的相似程度得出診斷結(jié)論。人機(jī)交互診斷利用專業(yè)工作人員的經(jīng)驗(yàn),根據(jù)信號處理的分析結(jié)果,由人工選擇故障征兆,依據(jù)最優(yōu)診斷規(guī)則識別故障。診斷規(guī)則由實(shí)際診斷案例以及專家總結(jié)形成,經(jīng)過基于廣義粗糙集理論的約簡處理產(chǎn)生,其中涵蓋了亞異步、同步和超異步等三大類共32種常見故障。
l 網(wǎng)絡(luò)通訊:網(wǎng)絡(luò)服務(wù)器包括實(shí)時(shí)數(shù)據(jù)服務(wù)器,趨勢分析數(shù)據(jù)服務(wù)器,歷史文件數(shù)據(jù)服務(wù)器??蛻舳丝梢詣討B(tài)下載服務(wù)器文件列表,并顯示在樹控件中。整套通訊系統(tǒng),在VisualC++環(huán)境下采用多線程技術(shù)與Socket編程相結(jié)合開發(fā)。具體內(nèi)容見下文網(wǎng)絡(luò)通訊與多線程一節(jié)
l 系統(tǒng)管理:此模塊包括數(shù)據(jù)管理、安全管理、服務(wù)器管理三項(xiàng)功能。數(shù)據(jù)管理可以完成對歷史數(shù)據(jù)的自動刪除功能,以及實(shí)現(xiàn)正常數(shù)據(jù)保存天數(shù)、報(bào)警數(shù)據(jù)保存次數(shù)的設(shè)置;安全管理包括用戶權(quán)限管理、密碼管理、注冊管理等等功能;服務(wù)器管理主要實(shí)現(xiàn)服務(wù)器IP地址,通訊端口的動態(tài)設(shè)置,服務(wù)器狀態(tài)的實(shí)時(shí)管理等幾項(xiàng)功能。根據(jù)數(shù)據(jù)庫的規(guī)模,以及系統(tǒng)要求實(shí)現(xiàn)的功能,整個(gè)模塊后臺選擇了Microsoft Access數(shù)據(jù)庫統(tǒng)一管理。由于Access數(shù)據(jù)庫是基于Microsoft Jet引擎建立的,所以在這里又選擇了微軟推出的用于在VisualC++中訪問數(shù)據(jù)庫文件的DAO技術(shù),實(shí)現(xiàn)數(shù)據(jù)的快速訪問與存取。
l 報(bào)表打印及聯(lián)機(jī)幫助:系統(tǒng)根據(jù)監(jiān)測模塊可以自動完成報(bào)表的監(jiān)測數(shù)據(jù)統(tǒng)計(jì)工作。同時(shí)利用信號分析模塊的分析結(jié)果可產(chǎn)生圖形化的分析報(bào)表。整個(gè)報(bào)表生成過程中大部分由系統(tǒng)自動完成,操作方便,直觀。聯(lián)機(jī)幫助系統(tǒng),采用統(tǒng)一的RTF格式文件,經(jīng)過Microsoft Help Workshop工具編譯后生成。其中實(shí)現(xiàn)了主題查詢、關(guān)鍵字索引等功能。幫助文件內(nèi)容包括了系統(tǒng)信息、操作方法以及一些基本技術(shù)原理介紹。
整個(gè)系統(tǒng)采用了友好的用戶界面,操作簡便、直觀,方式多樣。其中集合了數(shù)據(jù)采集技術(shù)、多線程技術(shù)、Socket網(wǎng)絡(luò)編程技術(shù)、數(shù)據(jù)庫存取技術(shù)、COM技術(shù)。具有針對性強(qiáng)、功能完善等特點(diǎn)。下文將以數(shù)據(jù)采集、信號處理、網(wǎng)絡(luò)通訊模塊為例,討論具體模塊功能以及模塊實(shí)現(xiàn)的技術(shù)細(xì)節(jié)。
4技術(shù)細(xì)節(jié)
?。?)數(shù)據(jù)采集
隨著數(shù)字技術(shù)快速發(fā)展,數(shù)據(jù)采集技術(shù)已向著并行、高速、大量存儲、實(shí)時(shí)分析處理、集成化等方向發(fā)展。同時(shí)數(shù)據(jù)采集也是整個(gè)系統(tǒng)信息元工作的源頭。通過這個(gè)部分模塊,系統(tǒng)可以將采得的數(shù)據(jù)進(jìn)行信號分析、趨勢分析、故障診斷,并作為信息載體在整個(gè)Intranet中進(jìn)行發(fā)布。整個(gè)系統(tǒng)采樣硬件部分的具體配置如下:
l 傳感器系統(tǒng):充分利用機(jī)組已經(jīng)配備的監(jiān)測儀表和傳感器系統(tǒng),如Bently電渦流傳感器、轉(zhuǎn)速計(jì)和溫度傳感器等。
l 采樣系統(tǒng):本系統(tǒng)采用National Instruments (美國NI儀器公司,簡稱NI公司)的PCI總線E系列多功能DAQ數(shù)據(jù)采集板卡,采集卡型號為6071E。其提供了多達(dá)64路單端,32路差分模擬輸入以及12位模擬輸入精度等的優(yōu)異性能。
l 現(xiàn)場計(jì)算機(jī):采用性能可靠的工業(yè)控制計(jì)算機(jī)。
系統(tǒng)將傳感器測得的轉(zhuǎn)子徑向振動、軸向振動、轉(zhuǎn)速、鍵相和軸瓦溫度等模擬信號,通過現(xiàn)場監(jiān)測儀表的1-5V或4-20mA標(biāo)準(zhǔn)信號接口與現(xiàn)場工業(yè)計(jì)算機(jī)上的多通道高速A/D采樣卡連接,這中間通過了信號抗干擾,功率縮放等步驟,將采集到的數(shù)據(jù)準(zhǔn)確安全的送入現(xiàn)場工控機(jī)。采集系統(tǒng)具體硬件布置如圖2所示。

工業(yè)生產(chǎn)過程中,現(xiàn)場條件惡劣,機(jī)器運(yùn)轉(zhuǎn)過程中產(chǎn)生的振動、溫度信號受到了四周環(huán)境的影響。因而對故障信息的完全提取需要高的采樣率的保證。只有這樣才能將機(jī)器運(yùn)轉(zhuǎn)的特征如實(shí)的反映到監(jiān)測系統(tǒng)中。同時(shí),要做到故障的完全跟蹤,對某一時(shí)刻采樣信息的深入提取還是不夠的,這還需要我們在整個(gè)時(shí)域中對機(jī)器運(yùn)轉(zhuǎn)進(jìn)行廣度監(jiān)測。因此實(shí)時(shí)采集也成為了故障信息提取的決定因素之一?,F(xiàn)代采集技術(shù)中,觸發(fā)A/D轉(zhuǎn)換有軟件觸發(fā)、定時(shí)器同步觸發(fā)及外部觸發(fā)三種方式。而數(shù)據(jù)的傳輸方式有軟件查詢、中斷方式、DMA方式及FIFO方式[2]。以研華PCL1800采樣卡為例,四種數(shù)據(jù)傳輸?shù)乃俾时容^如下:軟件查詢(10-20kHz);中斷方式(10-30KHz);DMA方式(200KHz);FIFO方式(330KHz)。高速連續(xù)數(shù)據(jù)采集的情況下,考慮到整個(gè)系統(tǒng)的性價(jià)比后,我們利用6071E快速離散式DMA技術(shù)將定時(shí)器同步觸發(fā)與FIFO數(shù)據(jù)傳輸方式相結(jié)合,使得處理器從DAQ板卡的事件中解放出來。實(shí)踐證明,這種方法將大大提高系統(tǒng)的采樣頻率和數(shù)據(jù)的可靠性,同時(shí)也改善了WINDOWS環(huán)境下實(shí)時(shí)數(shù)據(jù)采集中整個(gè)系統(tǒng)的性能。
采樣部分軟件設(shè)計(jì)從整個(gè)系統(tǒng)的開發(fā)效率以及工作性能出發(fā),利用NI公司提供的API函數(shù):NI-DAQ Function,在Visual C++語言中進(jìn)行高速的信號采集,使整個(gè)系統(tǒng)最高采樣達(dá)到了1.25M/s的速度,為后續(xù)的開發(fā)分析奠定了基礎(chǔ)。
?。?)信號處理
系統(tǒng)信號處理部分采用C++與MathWorks公司推出的科學(xué)計(jì)算軟件MATLAB完成。
MATLAB是MathWorks公司推出的功能強(qiáng)大的科學(xué)計(jì)算軟件,具有高速的運(yùn)算能力以及穩(wěn)定安全的算法庫,目前其在許多學(xué)科領(lǐng)域都得到了應(yīng)用。其開放的軟件體系為Matlab與其它工具語言的協(xié)同工作提供了可能。通過MEX文件,在Matlab環(huán)境中可以調(diào)用C、C++或Fortran語言編寫的程序;MAT文件提供了Matlab與其它應(yīng)用程序之間數(shù)據(jù)交換的途徑;而Matlab ActiveX技術(shù)則實(shí)現(xiàn)了Matlab與其它應(yīng)用程序之間客戶機(jī)、服務(wù)器的工作模式,利用啟動的Matlab進(jìn)程,可以將Matlab作為一個(gè)計(jì)算引擎服務(wù)器,在其他程序中直接調(diào)用[3]。但以上三種方法具有一個(gè)共同的缺點(diǎn),那就是他們的工作都脫離不了Matlab軟件環(huán)境,這對于發(fā)布式的應(yīng)用軟件是一個(gè)致命的弱點(diǎn)。為克服這一缺點(diǎn)并提高數(shù)據(jù)處理或程序開發(fā)的效率,本套系統(tǒng)選擇了Matlab 為C/C++語言提供的數(shù)學(xué)函數(shù)庫接口。Matlab數(shù)學(xué)函數(shù)庫提供了大量高效的數(shù)學(xué)函數(shù),尤其在復(fù)雜矩陣計(jì)算處理方面更加出色。通過Matlab C/C++數(shù)學(xué)函數(shù)庫,在C或C++程序中調(diào)用Matlab C/C++數(shù)學(xué)庫函數(shù)。從整體性能上講采用這種方式提高了算法設(shè)計(jì)速度,縮短程序開發(fā)周期,使開發(fā)方式靈活、獨(dú)立,并且顯著的提高了程序性能以及穩(wěn)定性,保證了程序運(yùn)行的健壯性。下面以一維快速Fourier變換為例,說明在C++環(huán)境中對Matlab C/C++數(shù)學(xué)庫函數(shù)的調(diào)用方法。
#include "matlab.h"
/*
?。?函數(shù)介紹:通過Matlab數(shù)學(xué)函數(shù)將輸入數(shù)據(jù)進(jìn)行傅立葉變換后輸出
?。?輸入?yún)?shù):double dDataIn 變換前輸入數(shù)據(jù)
?。?輸出參數(shù):double dDataOut 變換后輸出數(shù)據(jù)
?。?返回值 :無
*/
void CFuction::FFT(double dDataIn[], double dDataOut[], int iNum)
?。?
mlfEnterNewContext(0,0);//建立內(nèi)存上下文
double *fpAbs;
mxArray *mxpArray=NULL;
mxArray *mxpFft=NULL;
mxArray *mxpAbs=NULL;
//建立陣列變量
mlfAssign(&mxpArray,mlfDoubleMatrix(iNum,1,dDataIn,NULL));//由輸入數(shù)據(jù)構(gòu)造陣列
mlfAssign(&mxpFft,mlfFft(mxpArray,NULL,NULL));//傅立葉計(jì)算
mlfAssign(&mxpAbs,mlfAbs(mxpFft));
//得到傅里葉變換后模值
fpAbs=mxGetPr(mxpAbs);//模值實(shí)部
for(i=0;i
?。?
dDataOut[i]=(*fpabs)/N;
fpAbs++;
?。?/end of if
mlfRestorePreviousContext(0,0);
//導(dǎo)入原內(nèi)存上下文
mxDestroyArray(mxpAbs);//數(shù)組銷毀
mxDestroyArray(mxpArray); //數(shù)組銷毀
mxDestroyArray(mxpFft); //數(shù)組銷毀
return;
?。?
圖3為FFT頻譜曲線圖,是現(xiàn)場采樣數(shù)據(jù)經(jīng)過Matlab C/C++數(shù)學(xué)庫函數(shù)處理后,在診斷系統(tǒng)中自動生成特征曲線圖。

可見,采用這種技術(shù)對程序運(yùn)行穩(wěn)定性、結(jié)果正確性都提供了有利的保障。本系統(tǒng)通過C++語言與Matlab C/C++數(shù)學(xué)庫函數(shù)的結(jié)合,在信號處理組件部分實(shí)現(xiàn)了時(shí)域波形、FFT頻譜、自功率譜、互功率譜、倒譜、全息譜、自相關(guān)分析、互相關(guān)分析、相干函數(shù)、時(shí)間譜陣、Wigner時(shí)頻分布、濾波軸心軌跡和重構(gòu)軸心軌跡、轉(zhuǎn)速譜陣等等信號處理分析。
(3)網(wǎng)絡(luò)通訊與多線程
在Windows操作系統(tǒng)環(huán)境下,服務(wù)器軟件有三種技術(shù)可以并發(fā)處理來自多個(gè)客戶機(jī)的服務(wù)請求:多線程、消息驅(qū)動和循環(huán)處理。其中多線程編程最直接,32位的Windows操作系統(tǒng)提供了多任務(wù)的管理,這樣,服務(wù)器端程序能夠?yàn)槊總€(gè)請求服務(wù)的客戶機(jī)創(chuàng)建一個(gè)或多個(gè)任務(wù)線程,以便同時(shí)處理多項(xiàng)任務(wù)。消息驅(qū)動和循環(huán)處理只需要一個(gè)線程,節(jié)省了多線程間上下文切換的CPU開銷。同時(shí)它們也可以解決使用單任務(wù)線程同時(shí)處理多個(gè)客戶機(jī)請求的問題。在消息驅(qū)動方式中,請求到來時(shí),系統(tǒng)分發(fā)特定的消息,服務(wù)器捕捉到該消息后,觸發(fā)消息響應(yīng)程序;而在循環(huán)處理方式中,程序主動循環(huán)查詢系統(tǒng)是否收到客戶機(jī)的請求,為防止線程阻塞,可以采用異步I/O調(diào)用,以便同時(shí)進(jìn)行其它的處理。但是循環(huán)處理和消息驅(qū)動兩種方式在滿足多任務(wù)的前提下,卻破壞了程序執(zhí)行的自然邏輯順序。循環(huán)處理程序,為了及時(shí)響應(yīng)客戶機(jī)的請求,代碼使用了異步接收和發(fā)送數(shù)據(jù)的辦法,把長的傳輸間隔分成小的時(shí)間片,并且有人機(jī)交互時(shí)還要不停的查詢鍵盤、鼠標(biāo)等輸入設(shè)備。這樣就破壞了程序的自然的邏輯順序。而消息驅(qū)動方式也無法預(yù)知消息出現(xiàn)的時(shí)間,同樣也保證不了程序自然的邏輯結(jié)構(gòu),很難將代碼實(shí)際運(yùn)行的次序確定下來。根據(jù)故障診斷程序的多任務(wù),大處理器、IO需求的特點(diǎn),本系統(tǒng)采用并發(fā)式TCP方式作為服務(wù)器程序。首先建立各數(shù)據(jù)服務(wù)器的監(jiān)聽線程。這樣一個(gè)處理客戶機(jī)請求的線程在收到完整的請求前能夠一直保持阻塞狀態(tài),而不必?fù)?dān)心會妨礙對服務(wù)器其它模塊運(yùn)行的處理。同時(shí)各線程內(nèi)部采用消息循環(huán)機(jī)制,實(shí)現(xiàn)用戶請求的消息驅(qū)動。當(dāng)收到請求后,監(jiān)聽線程立刻創(chuàng)建連接線程,為客戶請求提供服務(wù)。同時(shí)監(jiān)聽線程阻塞返回,繼續(xù)監(jiān)聽其它客戶請求。連接線程完成客戶服務(wù)后,自動關(guān)閉連接。這樣就完成了一個(gè)用戶請求循環(huán)。
在VisualC++環(huán)境中,線程內(nèi)部如果需要提供消息驅(qū)動支持,那么必須啟動用戶界面線程,這里系統(tǒng)為歷史數(shù)據(jù)服務(wù)器、實(shí)時(shí)數(shù)據(jù)服務(wù)器以及趨勢分析服務(wù)器各建立了一個(gè)用戶界面監(jiān)聽線程。建立線程同時(shí)將各線程界面隱藏,這樣就實(shí)現(xiàn)了各服務(wù)器同時(shí)阻塞監(jiān)聽,而線程內(nèi)部消息驅(qū)動的設(shè)計(jì)要求。
本系統(tǒng)網(wǎng)絡(luò)傳輸部分采用Windows Sockets[4]規(guī)范編寫。首先,客戶機(jī)和服務(wù)器都創(chuàng)建一個(gè)套接字。接著服務(wù)器調(diào)用bind()函數(shù)給套接字分配一個(gè)公用的端口。這樣客戶機(jī)和服務(wù)器就能夠使用同樣的端口來表示服務(wù)器套接字。一旦客戶機(jī)與服務(wù)器建立了連接,就能夠使用send()函數(shù)向服務(wù)器發(fā)送數(shù)據(jù)、信息。同樣服務(wù)器也能夠使用send()和recv()函數(shù)來傳遞數(shù)據(jù),直到完成通訊。最后調(diào)用closesocket( )來關(guān)閉套接字,完成信息傳遞。
5結(jié)束語
故障監(jiān)測、診斷系統(tǒng)開發(fā)涉及到廣闊的學(xué)科領(lǐng)域知識。本系統(tǒng)采用了外部程序接口完成了采樣以及分析模塊,并在通訊方面滲透了多線程以及網(wǎng)絡(luò)編程技術(shù),從而高效的開發(fā)出了一套功能強(qiáng)大的分布式監(jiān)測、診斷系統(tǒng)。本系統(tǒng)已在石油企業(yè)中長期運(yùn)行,性能以及穩(wěn)定性都得到了檢驗(yàn)。今后,可以建立監(jiān)測、診斷系統(tǒng)標(biāo)準(zhǔn),將各個(gè)診斷系統(tǒng)連接起來,最終形成統(tǒng)一的大規(guī)模故障監(jiān)測、診斷網(wǎng),指導(dǎo)工程生產(chǎn)。
參考文獻(xiàn)
1 施圣康. 汽輪發(fā)電機(jī)組振動故障診斷技術(shù)的發(fā)展現(xiàn)狀[J]. 動力工程,2001,21(4) :1295-1298
2 吳道虎,王緒軍. 具有高可靠性的高速連續(xù)數(shù)據(jù)采集的設(shè)計(jì)與實(shí)施方法[J]. 電子技術(shù)應(yīng)用,2002,6:13-15
3 劉志儉,潘獻(xiàn)飛,連軍想. Matlab外部程序接口[M]. 北京:科學(xué)出版社, 2002
4 汪濮陽. 因特網(wǎng)應(yīng)用編程[M]. 北京:清華大學(xué)出版社, 2000