摘 要:介紹虛擬儀器的基本概念,以及利用此技術(shù)組建柴油機(jī)故障診斷系統(tǒng)的方法。在可視化編程環(huán)境中,實(shí)現(xiàn)多功能儀器軟面板,并能對數(shù)據(jù)進(jìn)行處理、顯示和打印等操作。
關(guān)鍵詞:虛擬儀器 柴油機(jī) 故障診斷
1 引言
隨著科學(xué)技術(shù)的發(fā)展,現(xiàn)在計(jì)算機(jī)已成為故障診斷設(shè)備中不可或缺的支撐環(huán)境,我們可以利用其豐富的軟硬件資源提高數(shù)據(jù)采集的精度和數(shù)據(jù)的處理分析能力。傳統(tǒng)儀器中的數(shù)據(jù)處理、結(jié)果顯示等很多功能都可以由計(jì)算機(jī)軟件來實(shí)現(xiàn),只要輔以相應(yīng)的傳感器和數(shù)據(jù)采集設(shè)備,即可組成一套一般儀器所沒有的特殊功能的故障診斷系統(tǒng)。這就運(yùn)用了方興未艾的虛擬儀器技術(shù)。
虛擬儀器(Virtual instrument)是計(jì)算機(jī)技術(shù)同儀器技術(shù)深層次結(jié)合產(chǎn)生的全新概念的儀器,是對傳統(tǒng)儀器概念的重大突破,是儀器領(lǐng)域內(nèi)的一次革命。虛擬儀器是繼第一代儀器——模擬式儀表、第二代儀器——分立元件式儀表、第三代儀表——數(shù)字式儀表、第四代儀器——智能化儀器之后的新一代儀器。在NI公司首先提出這個概念之后,這項(xiàng)技術(shù)得到了迅速的發(fā)展和廣泛的應(yīng)用,它給予用戶極大的自由度,可以根據(jù)自己的實(shí)際需要通過虛擬儀器的軟面板方便的構(gòu)建實(shí)際系統(tǒng)。
本文中針對柴油機(jī)故障診斷系統(tǒng)的特點(diǎn)和需求,利用虛擬儀器的思想,在可視化編程環(huán)境中實(shí)現(xiàn)多功能儀器的軟面板,以及對數(shù)據(jù)分析處理和進(jìn)行故障診斷的功能。
2 系統(tǒng)簡介
柴油機(jī)作為鐵路、礦山、冶金等行業(yè)普遍使用的動力設(shè)備,其工作狀況的好壞,直接影響著使用部門的生產(chǎn)能否正常運(yùn)行。因此,對柴油機(jī)進(jìn)行故障診斷和狀態(tài)檢測,確保其處于最佳工況,在提高使用安全性、降低污染和節(jié)約維修費(fèi)用方面具有重要的意義。
為了對正在使用中的柴油機(jī)設(shè)備進(jìn)行不解體的故障診斷和狀態(tài)監(jiān)測,在這套系統(tǒng)中我們將所有設(shè)備均放置于一個箱體內(nèi),可以對柴油機(jī)的轉(zhuǎn)速、高壓油管壓力波、功率、供油提前角、上止點(diǎn)、缸表面溫度以及燃油消耗等進(jìn)行測量。系統(tǒng)中上位機(jī)采用PALMAX便攜計(jì)算機(jī),用于人機(jī)界面、數(shù)據(jù)分析和處理、波形顯示、磁盤操作和故障診斷。由于傳感器輸出端信號為非標(biāo)準(zhǔn)且包含干擾信號,必須經(jīng)過調(diào)理電路板進(jìn)行濾波、放大,轉(zhuǎn)換成0~5V,4~20mA的標(biāo)準(zhǔn)信號。下位機(jī)使用RZAD-2型筆記本專用并口數(shù)據(jù)采集器,它采用仿總線操作方式,工作時只需一根接于筆記本的并口電纜,使用簡便且易于擴(kuò)展。采樣頻率通過對8253定時器編程實(shí)現(xiàn),A/D轉(zhuǎn)換與數(shù)據(jù)讀入并行工作,不占用CPU時間,板上并具有32K數(shù)據(jù)緩沖區(qū)。其結(jié)構(gòu)如圖1所示:
[align=center]

圖1 系統(tǒng)結(jié)構(gòu)框圖[/align]
3 虛擬儀器軟件設(shè)計(jì)
3.1 軟件的整體框架
本系統(tǒng)的軟件主要通過Microsoft公司的Visual Basic(VB)開發(fā)而成,其整體框圖如圖2所示。VB是在Windows環(huán)境下的可視化開發(fā)工具,它簡單易行,具有良好的圖形用戶接口、支持面向?qū)ο蟮某绦蛟O(shè)計(jì)、結(jié)構(gòu)化的事件驅(qū)動編程模式和對數(shù)據(jù)庫的方便操作功能。另外,VB可以直接使用第三方開發(fā)的控件和方便的調(diào)用動態(tài)鏈接庫(DLL)。利用VB的這些靈活性和通用性的特點(diǎn)使得開發(fā)過程變得簡單且可以設(shè)計(jì)出良好的人機(jī)界面。
軟件系統(tǒng)中主要由四個模塊組成,其中柴油機(jī)參數(shù)管理、檢測記錄管理和專家知識庫管理主要是對數(shù)據(jù)庫的操作,分別對相關(guān)的數(shù)據(jù)進(jìn)行管理,在本文中就不作過多的闡述。柴油機(jī)檢測模塊是本系統(tǒng)的核心部分,下面著重對其數(shù)據(jù)采集部分和各部分參數(shù)檢測的軟面板的實(shí)現(xiàn)加以討論。
[align=center]

圖2 軟件結(jié)構(gòu)框圖[/align]
3.2 數(shù)據(jù)采集系統(tǒng)
在VB中不能直接對數(shù)據(jù)采集卡進(jìn)行操作,所以需要調(diào)用其動態(tài)鏈接庫中的API函數(shù)以實(shí)現(xiàn)數(shù)據(jù)采集功能。動態(tài)鏈接庫的編寫是通過VC++6.0完成的,基本結(jié)構(gòu)如下:
int __stdcall CMycjk::Rzads1 (int Inichel,int Chelsum,int SampFreq,int SampleLen,int *SampleData) //動態(tài)鏈接庫入口
?。?
int cheladd=0x84,cheldat=0x40,retval;
…
//初始參數(shù)設(shè)定
ini8253(SampFreq,Chelsum ); //初始化8253定時器
…
retval=datread();//數(shù)據(jù)采集
…
return retval;
?。?
void ini8253(int sampfreq,int chelsum) {…} //初始化8253的子程序
void outputdata(char outadd,char outdat) {…} //向數(shù)據(jù)采集卡寫數(shù)據(jù)子程序
int datread() {…} //數(shù)據(jù)采集子程序
VB中通過調(diào)用這個動態(tài)鏈接庫中的API函數(shù)可以方便的對采樣頻率、采樣通道等數(shù)據(jù)進(jìn)行設(shè)置,使用中需要在標(biāo)準(zhǔn)模塊中做如下聲明:
Public Declare Function Rzads1 Lib "c:\windows\system\myCJK.DLL" (ByVal nouse As Long, ByVal inichel As Long, ByVal chelsum As Long, ByVal fre As Long, ByVal samplen As Long, ByRef sampledata As Long) As Integer
然后VB就可以象調(diào)用函數(shù)一樣來進(jìn)行數(shù)據(jù)采集工作:
Private Sub run()
…
retPressure = Rzads1(0, 0, 2, 200, 19999, arrayBoth(0)) ‘?dāng)?shù)據(jù)采集
…
End Sub
采集到的數(shù)據(jù)保存在arrayBoth的數(shù)組當(dāng)中,然后即可對其進(jìn)行軟件濾波、顯示、特征提取和故障診斷等工作。
3.3 虛擬儀器軟面板的設(shè)計(jì)與實(shí)現(xiàn)
虛擬儀器的軟面板,顧名思義,就是通過軟件來完成原先儀器操作面板的功能,它是虛擬儀器的一個重要組成部分。用戶使用的過程就是通過鼠標(biāo)或鍵盤來操作軟面板上的控件,此時相應(yīng)的代碼開始運(yùn)行,完成指定的動作。這樣就充分的利用了資源,對控件的不同組合就可以形成不同的儀器面板,體現(xiàn)了“軟件即儀器”的思想。
在設(shè)計(jì)的過程當(dāng)中,我們采用了第三方的儀器儀表OCX控件,比如液晶顯示和示波器控件等。它們表現(xiàn)為可嵌入的界面對象,具有一定的屬性、事件和方法,編程時通過代碼與控件進(jìn)行交互。以示波器控件為例,首先對它的屬性進(jìn)行設(shè)置,使其在不同的要求下可以呈現(xiàn)不同的界面:
picPre.DataInit = 3 ‘?dāng)?shù)據(jù)通道設(shè)置
picPre.GraphType = 0 ‘顯示方式設(shè)置
然后只要將數(shù)據(jù)適時傳送給控件,即可對采集到的波形進(jìn)行顯示:
picPre.DataValue(maxShow + 2 - 360 / disVel * (avgZero - iBoth), 0) = -360 / disVel * (avgZero - iBoth)
picPre.DataValue(maxShow + 2 - 360 / disVel * (avgZero - iBoth), 1) = avgPre(iBoth) / maxPre * 100
在實(shí)際運(yùn)行過程中,對于柴油機(jī)高壓油管的油壓波形采集如圖3所示:
[align=center]

圖3 油壓波形采集界面[/align]
同樣的方法,可以組成對于其它信號采集界面,并且可以對波形進(jìn)行存儲和回放,滿足了用戶使用和維護(hù)需要。通過對數(shù)據(jù)的處理和分析,可以進(jìn)一步完成對于柴油機(jī)的故障診斷工作。
4 結(jié)束語
虛擬儀器技術(shù)作為今后儀器的一個發(fā)展方向,將儀器與計(jì)算機(jī)、DSP技術(shù)相結(jié)合,通過基本的硬件模塊組成系統(tǒng),只要設(shè)計(jì)不同的軟件就可以實(shí)現(xiàn)不同儀器的功用。本系統(tǒng)采用了這種技術(shù)之后,使得其通用性和可擴(kuò)展性都得到了提高,只要添加一些傳感器,在采集通道夠用的情況下,軟件中增加相應(yīng)的模塊即可對柴油機(jī)的另外一些參數(shù)進(jìn)行采集,大大方便了了用戶的使用。
參考文獻(xiàn)
1 姜斯平,王軍,賈繼德. 虛擬儀器技術(shù)在內(nèi)燃機(jī)臺架測控系統(tǒng)中的應(yīng)用. 農(nóng)業(yè)機(jī)械學(xué)報(bào),第31卷第2期,2000(3):75~78
2 樸成日,崔漢國,高誠. 多功能虛擬儀器軟面板的設(shè)計(jì)與實(shí)現(xiàn). 海軍工程大學(xué)學(xué)報(bào),總第95期,2000(6):82~85
3 朱宏輝,佟力. 一種實(shí)用的虛擬儀器軟面板設(shè)計(jì)技術(shù). 自動化與儀器儀表,總第91期,2000(5):32~34
4 胡丹峰,方凱. 柴油機(jī)數(shù)據(jù)采集和故障診斷系統(tǒng)的研究. 計(jì)算機(jī)測量與控制,2002(5):298~300