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