虛擬儀器(virtual instrumention)是基于計算機(jī)的儀器。計算機(jī)和儀器的密切結(jié)合是目前儀器發(fā)展的一個重要方向。粗略地說這種結(jié)合有兩種方式,一種是將計算機(jī)裝入儀器,其典型的例子就是所謂智能化的儀器。隨著計算機(jī)功能的日益強(qiáng)大以及其體積的日趨縮小,這類儀器功能也越來越強(qiáng)大,目前已經(jīng)出現(xiàn)含嵌入式系統(tǒng)的儀器。另一種方式是將儀器裝入計算機(jī)。以通用的計算機(jī)硬件及操作系統(tǒng)為依托,實(shí)現(xiàn)各種儀器功能。虛擬儀器主要是指這種方式。下面的框圖反映了常見的虛擬儀器方案。
虛擬儀器的主要特點(diǎn)有:
n 盡可能采用了通用的硬件,各種儀器的差異主要是軟件。
n 可充分發(fā)揮計算機(jī)的能力,有強(qiáng)大的數(shù)據(jù)處理功能,可以創(chuàng)造出功能更強(qiáng)的儀器。
n 用戶可以根據(jù)自己的需要定義和制造各種儀器。
虛擬儀器實(shí)際上是一個按照儀器需求組織的數(shù)據(jù)采集系統(tǒng)。虛擬儀器的研究中涉及的基礎(chǔ)理論主要有計算機(jī)數(shù)據(jù)采集和數(shù)字信號處理。目前在這一領(lǐng)域內(nèi),使用較為廣泛的計算機(jī)語言是美國NI公司的labview。
虛擬儀器的起源可以追朔到20世紀(jì)70年代,那時計算機(jī)測控系統(tǒng)在國防、航天等領(lǐng)域已經(jīng)有了相當(dāng)?shù)陌l(fā)展。PC機(jī)出現(xiàn)以后,儀器級的計算機(jī)化成為可能,甚至在Microsoft公司的Windows誕生之前,NI公司已經(jīng)在Macintosh計算機(jī)上推出了labview2.0以前的版本。對虛擬儀器和labview長期、系統(tǒng)、有效的研究開發(fā)使得該公司成為業(yè)界公認(rèn)的權(quán)威。
普通的PC有一些不可避免的弱點(diǎn)。用它構(gòu)建的虛擬儀器或計算機(jī)測試系統(tǒng)性能不可能太高。目前作為計算機(jī)化儀器的一個重要發(fā)展方向是制定了VXI標(biāo)準(zhǔn),這是一種插卡式的儀器。每一種儀器是一個插卡,為了保證儀器的性能,又采用了較多的硬件,但這些卡式儀器本身都沒有面板,其面板仍然用虛擬的方式在計算機(jī)屏幕上出現(xiàn)。這些卡插入標(biāo)準(zhǔn)的VXI機(jī)箱,再與計算機(jī)相連,就組成了一個測試系統(tǒng)。VXI儀器價格昂貴,目前又推出了一種較為便宜的PXI標(biāo)準(zhǔn)儀器。
虛擬儀器研究的另一個問題是各種標(biāo)準(zhǔn)儀器的互連及與計算機(jī)的連接。目前使用較多的是IEEE 488或GPIB協(xié)議。未來的儀器也應(yīng)當(dāng)是網(wǎng)絡(luò)化的。
熟悉VB的朋友對使用ActiveX控件一定不會陌生,眾多控件極大地方便了編程,但唯一的缺陷是不能動態(tài)加載控件,必須在設(shè)計時通過引用,將控件放置在窗體上。VB6.0已能夠解決該問題,只是幫助中沒有明確說明,并且沒有描述到一些關(guān)鍵功能,由于以前的版本中可以動態(tài)創(chuàng)建進(jìn)程外服務(wù):如果對象是外部可創(chuàng)建的,可在 Set 語句中用 New 關(guān)鍵字、CreateObject 或 GetObject 從部件外面將對象引用賦予變量。如果對象是從屬對象,則需使用高層對象的方法,在 Set 語句中指定一個對象引用: