張麗彬 陳曉寧, 朱衛(wèi)星
(解放軍理工大學(xué)工程兵工程學(xué)院1,江蘇 南京 210007;解放軍理工大學(xué)信息管理中心2,江蘇 南京 210007)
虛擬儀器是儀器技術(shù)和計(jì)算機(jī)技術(shù)深層次結(jié)合的產(chǎn)物,是全新概念的儀器,是對(duì)傳統(tǒng)儀器概念的重大突破,代表著電子測(cè)控儀器的技術(shù)發(fā)展方向。虛擬儀器技術(shù)是隨著現(xiàn)代計(jì)算機(jī)技術(shù)、信息技術(shù)、現(xiàn)代測(cè)量技術(shù)的發(fā)展而出現(xiàn)的一種新技術(shù)。以NI公司為代表的一批廠商已經(jīng)在市場(chǎng)上推出了基于虛擬儀器技術(shù)設(shè)計(jì)的商品化儀器產(chǎn)品,在自動(dòng)化、通信、航空、半導(dǎo)體電路設(shè)計(jì)和生產(chǎn)、過(guò)程控制及生物醫(yī)學(xué)等領(lǐng)域中發(fā)揮了積極的作用。
據(jù)專(zhuān)家預(yù)測(cè),我國(guó)虛擬儀器行業(yè)的產(chǎn)值在未來(lái)若干年內(nèi)將超過(guò)儀器儀表行業(yè)總產(chǎn)值的50%,存在巨大的發(fā)展?jié)摿1]。隨著微型計(jì)算機(jī)的發(fā)展,虛擬儀器系統(tǒng)將逐步取代傳統(tǒng)的測(cè)試、測(cè)控儀器系統(tǒng),成為測(cè)試、測(cè)控儀器系統(tǒng)的主流。
20世紀(jì)70年代,特魯查德和柯徳斯凱在應(yīng)用研究實(shí)驗(yàn)室(applied research laboratory,ARL)完成了一個(gè)大型測(cè)控系統(tǒng)的設(shè)計(jì),主要用于測(cè)試美國(guó)海軍的聲納探測(cè)器。通過(guò)幾年的時(shí)間,柯徳斯凱從該測(cè)試系統(tǒng)得到的啟示中引入了多層虛擬儀器構(gòu)成的概念。20世紀(jì)80年代末,隨著計(jì)算機(jī)技術(shù)和微電子技術(shù)的應(yīng)用,儀器級(jí)的計(jì)算機(jī)化成為可能,在Microsoft公司的Windows誕生之前,美國(guó)NI公司已經(jīng)在Macintosh計(jì)算機(jī)上推出了LabVIEW開(kāi)發(fā)平臺(tái)軟件。當(dāng)前,虛擬儀器技術(shù)已廣泛應(yīng)用到各種自動(dòng)化測(cè)試和測(cè)量領(lǐng)域,虛擬化已經(jīng)成為儀器領(lǐng)域的目標(biāo)[2]。
LabVIEW軟件是NI推出的一種基于G語(yǔ)言的虛擬儀器軟件開(kāi)發(fā)平臺(tái),利用LabVIEW可以很方便地生成虛擬儀器測(cè)控系統(tǒng),廣泛地應(yīng)用于工業(yè)控制、儀表測(cè)量等領(lǐng)域[3-4]。LabVIEW軟件以其直觀簡(jiǎn)便的編程方式、眾多的源碼級(jí)的設(shè)備驅(qū)動(dòng)程序、多種多樣的分析和表達(dá)功能得到廣泛應(yīng)用,其突出特點(diǎn)是基于圖形化編程語(yǔ)言G的虛擬儀器開(kāi)發(fā)環(huán)境,為儀器設(shè)計(jì)人員提供了一種全新的編程方法,即使用直觀的前面板與流程圖相結(jié)合的編程方法來(lái)構(gòu)建虛擬儀器。用戶(hù)通過(guò)友好的圖形界面(稱(chēng)為虛擬面板)操作計(jì)算機(jī),就像操作傳統(tǒng)儀器一樣,通過(guò)庫(kù)函數(shù)實(shí)現(xiàn)儀器模塊間的通信、定時(shí)、觸發(fā),以及數(shù)據(jù)分析、數(shù)據(jù)表達(dá),并形成圖形化接口,為用戶(hù)快捷地構(gòu)筑自己在實(shí)際生產(chǎn)中所需要的儀器系統(tǒng)創(chuàng)造了基礎(chǔ)條件。
便攜文件格式PDF是一種電子的可移植文檔格式,由Adobe公司開(kāi)發(fā)而成,與操作系統(tǒng)平臺(tái)無(wú)關(guān),是數(shù)字化信息傳播的理想文檔格式。越來(lái)越多的電子圖書(shū)、產(chǎn)品說(shuō)明、公司公告、網(wǎng)絡(luò)資料、電子郵件等在使用PDF格式,這種文件格式目前已成為數(shù)字化信息事實(shí)上的一個(gè)工業(yè)標(biāo)準(zhǔn)。
在大型的系統(tǒng)測(cè)試和仿真過(guò)程中,將LabVIEW軟件和PDF格式的文件有機(jī)地結(jié)合起來(lái)會(huì)大大減少編程的工作量,提高編程效率[5]。
ActiveX是基于分布式組件對(duì)象模型(distributed component object model,DCOM)、使得軟件組件能夠在網(wǎng)絡(luò)環(huán)境中進(jìn)行交互的技術(shù)集[6]。DCOM本身并不是一個(gè)編程工具,而是一個(gè)可擴(kuò)展體系結(jié)構(gòu)的規(guī)范,在這個(gè)體系結(jié)構(gòu)中,可以無(wú)縫地加入服務(wù)[7]。ActiveX技術(shù)是符合這一標(biāo)準(zhǔn)的工具,通過(guò)它將計(jì)算機(jī)桌面與其他環(huán)境相連,是 OLE(對(duì)象鏈接和嵌入)技術(shù)的擴(kuò)展。LabVIEW支持客戶(hù)和服務(wù)器雙方信息共享,即雖然程序在雙方各自獨(dú)立存在,但信息是共享的。這種信息共享是通過(guò)客戶(hù)端使用由服務(wù)器端發(fā)布的ActiveX控件來(lái)實(shí)現(xiàn)的。LabVIEW在應(yīng)用編程接口中提供了為客戶(hù)端和服務(wù)器之間鏈接的功能模塊。
作為一個(gè)強(qiáng)大的軟件設(shè)計(jì)工具,LabVIEW擁有很多專(zhuān)業(yè)設(shè)計(jì)功能,如應(yīng)用程序生成器、數(shù)據(jù)庫(kù)連接工具、Microsoft Office報(bào)告生成工具等。這些功能都以附加工具包的形式向用戶(hù)發(fā)布,而這些附加工具包的價(jià)格都比較昂貴,從而增加了使用者的設(shè)計(jì)成本。在不增加設(shè)計(jì)成本的前提下,為了實(shí)現(xiàn)對(duì)PDF文件的訪問(wèn),利用LabVIEW提供的控件和函數(shù)設(shè)計(jì)PDF文件訪問(wèn)程序。
通過(guò)LabVIEW中的ActiveX控件實(shí)現(xiàn)對(duì)PDF的訪問(wèn)。LabVIEW功能模塊中含有ActiveX子模板,子模板中包含與ActiveX服務(wù)器相連的自動(dòng)化節(jié)點(diǎn)函數(shù),其中包括“打開(kāi)自動(dòng)調(diào)用”、“關(guān)閉自動(dòng)”、“調(diào)用節(jié)點(diǎn)”、“屬性節(jié)點(diǎn)”等函數(shù),通過(guò)這些功能函數(shù)的調(diào)用,就可以實(shí)現(xiàn)對(duì)ActiveX控件或嵌有ActiveX控件的應(yīng)用程序的對(duì)象、屬性、方法等進(jìn)行訪問(wèn)[7-8]。
利用ActiveX控件與PDF接口的程序設(shè)計(jì)流程圖如圖1所示。
圖1 利用ActiveX控件的接口程序流程圖Fig.1 Interfacing flowchart with ActiveX control
①調(diào)用ActiveX控件
ActiveX控件是ActiveX最常用的、存放于ActiveX控件容器中的一個(gè)可嵌入的組件。LabVIEW中的ActiveX容器函數(shù)位于“控件”選板下“新式→容器”子選板中。利用“ActiveX容器”函數(shù),用戶(hù)可以調(diào)用第三方提供的各種ActiveX控件。
②程序設(shè)計(jì)
將“ActiveX容器”控件拖放至前面板后,鼠標(biāo)右鍵單擊控件圖標(biāo),從彈出的快捷菜單中選擇“插入ActiveX對(duì)象”項(xiàng),在彈出的“選擇ActiveX對(duì)象”窗口中選擇“adobe PDF Reader”,點(diǎn)擊確定按鈕,此時(shí),前面板上“ActiveX容器”控件的標(biāo)簽變成“AcroPDF”的PDF控件對(duì)象[9]。然后打開(kāi)程序框圖,按照需求進(jìn)行函數(shù)的選擇:“打開(kāi)自動(dòng)化”、“關(guān)閉引用”、“事件結(jié)構(gòu)”、“按名稱(chēng)接觸捆綁”、“while循環(huán)”、“列表框”及其屬性等函數(shù)。
本設(shè)計(jì)中函數(shù)“條件結(jié)構(gòu)”提供相應(yīng)PDF文件的路徑;“按名稱(chēng)解除捆綁”是在數(shù)據(jù)傳輸錯(cuò)誤時(shí)自動(dòng)退出運(yùn)行,返回編輯界面。設(shè)計(jì)完程序框圖,返回到前面板進(jìn)行界面調(diào)整、優(yōu)化。調(diào)取VI屬性,類(lèi)別選擇“執(zhí)行”,將“首選執(zhí)行系統(tǒng)”選為“用戶(hù)界面”,按確定按鈕確認(rèn)。
③運(yùn)行程序
運(yùn)行VI,選擇要打開(kāi)的 PDF文件,按“顯示結(jié)果”,則對(duì)應(yīng)的PDF文件內(nèi)容在LabVIEW軟件的窗口中顯示出來(lái)。
利用VI函數(shù)與PDF接口的程序設(shè)計(jì)流程圖如圖2所示。
圖2 利用VI函數(shù)的接口程序流程圖Fig.2 Interfacing flowchart with VI function
①VI函數(shù)的調(diào)用
程序中所用到的VI函數(shù)是National InstrumentsLabVIEW 8.5vi.libplatformrowser.llb 中的 Open Acrobat Document.vi函數(shù)。該函數(shù)是LabVIEW軟件系統(tǒng)自帶的VI子函數(shù)。
②程序設(shè)計(jì)
將“路徑”、“確定”及“取消”等控件拖放到前面板,在程序框圖中,調(diào)用 Open Acrobat Document.vi函數(shù),再選擇“事件結(jié)構(gòu)”、“while循環(huán)”等函數(shù),然后連線,構(gòu)成完整的設(shè)計(jì)程序。打開(kāi)前面板,調(diào)整界面。
③運(yùn)行程序
運(yùn)行VI,輸入PDF文件的絕對(duì)路徑或者選擇PDF文件的路徑,按“確定”按鈕,將在彈出的Adobe Reader軟件窗口中打開(kāi)PDF文件。
通過(guò)程序設(shè)計(jì)及運(yùn)行,利用ActiveX控件和VI函數(shù)都能很好地打開(kāi)PDF文件,但它們各有優(yōu)劣。
① 兩種接口技術(shù)都需要Adobe Reader軟件環(huán)境支持。
②第一種接口技術(shù)比第二種接口技術(shù)相對(duì)復(fù)雜,第二種接口技術(shù)只需要調(diào)用一個(gè)VI即可。
③第一種接口技術(shù)將PDF文件嵌入在LabVIEW窗口中,即PDF文件直接在LabVIEW環(huán)境中顯示。而第二種接口技術(shù)是單獨(dú)在Adobe Reader環(huán)境下打開(kāi),即PDF文件在Adobe Reader環(huán)境顯示。
通過(guò)上述實(shí)例的分析和比較,ActiveX控件和VI函數(shù)的運(yùn)用避免了重復(fù)開(kāi)發(fā),從而縮短了程序設(shè)計(jì)的開(kāi)發(fā)周期,為新產(chǎn)品的設(shè)計(jì)和開(kāi)發(fā)創(chuàng)造了有利的條件。在ActiveX控件和VI函數(shù)的強(qiáng)大作用下,LabVIEW軟件與PDF文件交互接口技術(shù)的探索,發(fā)揮了LabVIEW的內(nèi)在功能,提高了LabVIEW的利用能力,豐富了LabVIEW的應(yīng)用,增強(qiáng)了LabVIEW與數(shù)字化信息的數(shù)據(jù)共享能力[10]。同時(shí),為L(zhǎng)abVIEW用戶(hù)利用PDF文件提供了簡(jiǎn)單可行的途徑,加快了程序運(yùn)行的速度,提升了LabVIEW軟件性能,方便了程序設(shè)計(jì)。
[1]黃進(jìn)文.虛擬儀器新技術(shù)及其在我國(guó)的發(fā)展現(xiàn)狀與展望[J].科技創(chuàng)新導(dǎo)報(bào),2008(31).
[2]陳金平,王生澤,吳文英.LabVIEW與Excel的通信方法[J].自動(dòng)化儀表,2006,27(4):65 -67.
[3]閆群民.基于LabVIEW的超文本報(bào)表生成方法[J].自動(dòng)化儀表,2010,31(7):29 -31.
[4]戰(zhàn)紹海,高亞峰,肖坦.基于LabVIEW的Excel報(bào)表生成技術(shù)研究[J].測(cè)控技術(shù),2007(10):64 -66.
[5]陳金平.LabVIEW與Matlab接口的方法[J].自動(dòng)化儀表,2004,25(3):53 -54.
[6]林遂芳,冉寶春.基于ActiveX控件的網(wǎng)絡(luò)虛擬儀器實(shí)驗(yàn)室[J].現(xiàn)代電子技術(shù),2003(20):73 -75.
[7]朱曉華,馮玉田.基于組件技術(shù)的虛擬儀器開(kāi)發(fā)方法的研究[J].上海大學(xué)學(xué)報(bào):自然科學(xué)版,1999(4):357-361.
[8]高國(guó)華,張永忠.在LabVIEW中利用ActiveX技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)[J].國(guó)外電子測(cè)試技術(shù),2004,32(2):15 -16.
[9]吳成東,孫秋野,盛科.LabVIEW虛擬儀器程序設(shè)計(jì)及應(yīng)用[M].北京:人民郵電出版社,2008.
[10]歐陽(yáng)華兵,徐溫干.LabVIEW與C語(yǔ)言的接口技術(shù)及其應(yīng)用[J].儀器儀表用戶(hù),2004(6):75-77.