譚延軍,聶友偉
(1.中國電子科技集團(tuán)公司第四十七研究所,沈陽 110032;2.沈陽軍區(qū)65042部隊(duì),沈陽 110035)
虛擬儀器(VI)是指通過應(yīng)用程序?qū)⒂?jì)算機(jī)與功能化模塊結(jié)合起來,通過圖形界面操作計(jì)算機(jī),就像操作自己設(shè)計(jì)的儀器一樣,從而完成數(shù)據(jù)采集、分析、處理、顯示、存儲和打印。
虛擬儀器的突出優(yōu)點(diǎn)是不僅可以利用PC組建成為靈活的虛擬儀器,還可以通過各種不同的接口總線,組建不同規(guī)模的自動(dòng)測試系統(tǒng),因此具有定制面板、定制功能、研發(fā)成本低、研發(fā)周期短、儀器升級與計(jì)算機(jī)同步、儀器開放靈活,方便與網(wǎng)絡(luò)及周邊設(shè)備互聯(lián)等優(yōu)點(diǎn)。虛擬儀器分類有多種,一般以計(jì)算機(jī)及其總線控制方式不同,分為下述5類:
(1)PC-DAQ插卡式虛擬儀器
(2)并行口式虛擬儀器
(3)GPIB總線方式虛擬儀器
(4)VXI總線方式虛擬儀器
(5)PXI總線方式虛擬儀器
LabVIEW是實(shí)驗(yàn)室虛擬儀器集成環(huán)境(Laboratory Virtual Instrument Engineering Workbench)的簡稱,是美國國家儀器公司(NATIONAL INSTRUMENT,簡稱NI)的創(chuàng)新軟件平臺,又稱為G語言。
LabVIEW被廣泛應(yīng)用于各種行業(yè),包括汽車、半導(dǎo)體、航空航天、交通運(yùn)輸、電信、生物工程等領(lǐng)域。它的功能非常強(qiáng)大,可擴(kuò)展函數(shù)庫和子程序庫,可方便地調(diào)用Windwos動(dòng)態(tài)鏈接庫和自定義的庫函數(shù),內(nèi)置了用于GPIB設(shè)備控制、VXI總線控制、串口控制,以及數(shù)據(jù)分析、顯示和存儲等的應(yīng)用模塊。對大數(shù)據(jù)塊解析而言,它支持DDE和SQL,對數(shù)據(jù)傳輸而言,它支持TCP/IP和PDP網(wǎng)絡(luò)協(xié)議等。從本質(zhì)上講,它在宏觀上已經(jīng)不再是傳統(tǒng)的馮·諾依曼計(jì)算機(jī)體系結(jié)構(gòu)的執(zhí)行方式了,而是一種帶有圖形控制流結(jié)構(gòu)的數(shù)據(jù)流模式。因此,LabVIEW的程序是數(shù)據(jù)流驅(qū)動(dòng)的,編程人員可以通過相互連接功能方框圖快速簡潔的開發(fā)應(yīng)用程序,甚至可以有多個(gè)數(shù)據(jù)通道同步運(yùn)行。
本文充分運(yùn)用了LabVIEW編程的這些優(yōu)點(diǎn),以驅(qū)動(dòng)串口為例,設(shè)計(jì)一款伺服電機(jī)控制器,通過控制電流和轉(zhuǎn)速,讀取電機(jī)扭矩值,實(shí)現(xiàn)伺服電機(jī)的全功能測試。最后將設(shè)計(jì)的虛擬儀器實(shí)際用于控制ABB公司的伺服控制器和BSM系列電機(jī)中,取得了很好的效果。目前這款虛擬儀器已經(jīng)成功運(yùn)行在某大型儀器設(shè)備上。
LabVIEW的串口控制,可以通過多種方法實(shí)現(xiàn)。
(1)最基本的IN OUT控制。LabVIEW提供了In Port和Out Port兩個(gè)基本輸入輸出VI,通過它就可以直接讀寫寄存器,對于計(jì)算機(jī)的COM1,它的端口地址是0X3F8,完全可以通過它來完成串口通訊。
(2)利用API的WriteFile函數(shù)實(shí)現(xiàn)串口通訊,這是VC進(jìn)行串口通訊的方法。
(3)利用VB提供的MSCOMM控件(這是目前用的最多的,它支持查詢和中斷兩種模式,既可以發(fā)送文本型數(shù)據(jù)(ASCII),也可以發(fā)送二進(jìn)制(BIN,實(shí)際是BYTE ARRAY)。
(4)利用LabVIEW特有的VISA通訊。下面采用的通訊模式是VISA通訊。
LabVIEW用于串行通訊的節(jié)點(diǎn)為VISA節(jié)點(diǎn),打開LabVIEW程序選項(xiàng),選擇VISA子選板,包括8個(gè)節(jié)點(diǎn),實(shí)現(xiàn)配置串口、串口寫入、串口讀取、關(guān)閉串口、監(jiān)測串口緩沖區(qū)等。如圖1所示。
圖1 打開并配置串口節(jié)點(diǎn)
基于此節(jié)點(diǎn)的串口通訊框圖程序如圖2所示。
圖2 串口通訊程序
通過圖2可以看出,LabVIEW的編程是非常直觀簡單的,使用內(nèi)置的節(jié)點(diǎn)和函數(shù),甚至不用寫一行代碼,開發(fā)人員可以把節(jié)省的很多精力用于虛擬儀器的設(shè)計(jì)及儀器功能的完善上。
本文要實(shí)現(xiàn)的虛擬儀器是測量水泥漿的稠度和靜膠凝強(qiáng)度,為此需要直流伺服電機(jī)驅(qū)動(dòng)盛放泥漿樣品漿筒內(nèi)的旋轉(zhuǎn)槳葉,通過測量電機(jī)的轉(zhuǎn)速和驅(qū)動(dòng)電流,計(jì)算出槳葉的扭矩和剪切力,從而計(jì)算出泥漿樣品的稠度和靜膠凝強(qiáng)度。
基于LabVIEW平臺,設(shè)計(jì)的虛擬儀器如圖3所示。
圖3 虛擬儀器面板功能圖
以靜膠凝強(qiáng)度測試為例,儀器實(shí)現(xiàn)的主要功能有:
(1)膠凝強(qiáng)度初始化標(biāo)定
相當(dāng)于儀器校準(zhǔn),在設(shè)備開始測試數(shù)據(jù)前,標(biāo)定基準(zhǔn)數(shù)據(jù),以此作為后續(xù)測量的基準(zhǔn)值。標(biāo)定過程通過在漿筒上加掛不同重量的砝碼,在恒定轉(zhuǎn)速下,測試驅(qū)動(dòng)電流和扭矩。測試值通過濾波、降噪處理后保存在標(biāo)定文件中。
(2)膠凝強(qiáng)度測試
完成儀器的初始化標(biāo)定后,漿筒中裝入固定容積的泥漿(792ml),首先設(shè)定電機(jī)高轉(zhuǎn)速,測量泥漿的驅(qū)動(dòng)電流和扭矩,此時(shí)得出的泥漿特性值為稠度值。在稠度升到一定值后,系統(tǒng)自動(dòng)轉(zhuǎn)入低轉(zhuǎn)速,此時(shí)測得的泥漿特性值為真實(shí)的膠凝強(qiáng)度值,經(jīng)過整形濾波降噪處理,該值以曲線形式顯示在示波器上,數(shù)值保存在計(jì)算機(jī)。根據(jù)泥漿體系配方的不同,整個(gè)測量過程需要幾個(gè)小時(shí)。測量達(dá)到預(yù)定值后,系統(tǒng)自動(dòng)停止。
為了驗(yàn)證所設(shè)計(jì)的虛擬儀器功能,我們加載ABB公司的伺服電機(jī)控制器 Microflex_e100,電機(jī)采用BSM50N-133ABX,驅(qū)動(dòng)器與電機(jī)的通訊接口采用BISS接口,控制器與計(jì)算機(jī)接口為USB。以此為原型設(shè)備,測量泥漿的稠度和膠凝強(qiáng)度,比較數(shù)值見表1所示。
從表1可以看出,在采用相同的濾波和降噪方式下,膠凝強(qiáng)度值在虛擬儀器和原型機(jī)上反映的數(shù)值吻合的非常好,這就充分驗(yàn)證了所設(shè)計(jì)的虛擬儀器完全滿足了原型機(jī)的功能需求。目前,該儀器已成功應(yīng)用于某大型數(shù)字采集設(shè)備中。
表1 測量泥漿的稠度和膠凝強(qiáng)度數(shù)值對比表
結(jié)合ABB公司的伺服控制器和電機(jī),采用LabVIEW平臺開發(fā)具有定制復(fù)雜功能的虛擬儀器,開發(fā)周期短,儀器設(shè)計(jì)成本低,易于功能拓展。通過本文的成功實(shí)踐,證明了采用LabVIEW開發(fā)虛擬儀器的極大優(yōu)越性。
[1]胡仁喜,高海賓.LabVIEW 2010虛擬儀器從入門到精通[M].北京 機(jī)械工業(yè)出版社,2011.
[2]Baldor Comp.Microflex e100 Servo Drive Installation Manul[DB/OL].http://www.baldor.com/support/Literature/Load.ashx/MN1942?ManNumber=MN1942.
[3]ABB Comp.MINT Basic Programming [DB/OL ].http://www.baldor.com/support/Literature/Load.ashx/MN1955WEN?ManNumber=MN1955WEN.