基于LabVIEW的多路時(shí)序控制脈沖發(fā)生器設(shè)計(jì)
0 引 言
在過(guò)程控制和自動(dòng)測(cè)量中,經(jīng)常需要一些時(shí)序控制脈沖來(lái)觸發(fā)和關(guān)閉不同的控制單元和功能部件的工作。時(shí)序脈沖信號(hào)的產(chǎn)生,傳統(tǒng)上一般采用硬件方式實(shí)現(xiàn),早期大多采用計(jì)數(shù)器和寄存器進(jìn)行設(shè)計(jì),近年普遍采用可編程邏輯器件(PFGA)或數(shù)字信號(hào)處理器(DSA)。采用硬件方式實(shí)現(xiàn)的時(shí)序脈沖信號(hào)發(fā)生器存在儀器功能單一,信號(hào)輸出通道路數(shù)較少,參數(shù)調(diào)節(jié)不方便,儀器的升級(jí)換代困難等缺點(diǎn);而采用基于LabVIEW的“虛擬儀器”概念設(shè)計(jì)制作的時(shí)序脈沖發(fā)生器卻具有界面直觀、功能多樣、參數(shù)調(diào)節(jié)方便、容易升級(jí)換代等特點(diǎn)。
1 LabVIEW簡(jiǎn)介
實(shí)驗(yàn)室虛擬儀器集成環(huán)境(Laboratory Virtual Instrument Engineering Workbench,LabVIEW)是美國(guó)國(guó)家儀器(National Instruments,NI)公司推出的一種基于“圖形”方式的虛擬儀器開(kāi)發(fā)軟件。它具備強(qiáng)大的信號(hào)采集、信號(hào)發(fā)生、數(shù)據(jù)分析與存儲(chǔ)顯示等功能,集開(kāi)發(fā)、調(diào)試、運(yùn)行于一體,廣泛應(yīng)用于測(cè)試測(cè)量和過(guò)程控制系統(tǒng)中。基于LabVIEW軟件和計(jì)算機(jī)的數(shù)據(jù)采集卡,通過(guò)簡(jiǎn)單編程,可以方便地實(shí)現(xiàn)信號(hào)的采集和產(chǎn)生、分析和處理等功能,即“計(jì)算機(jī)+軟件”等于儀器,比如:可以實(shí)現(xiàn)虛擬的信號(hào)發(fā)生器、數(shù)據(jù)記錄儀、示波器等功能,具有設(shè)計(jì)靈活,界面直觀,通用性強(qiáng).升級(jí)方便等特點(diǎn)。
LabVIEW程序稱(chēng)為“虛擬儀器”或簡(jiǎn)稱(chēng)為VI,一個(gè)LabVIEW程序由前面板和程序框圖兩部分組成。前面板用圖形方式模擬傳統(tǒng)儀器的操作面板,包含各種控件和指示器,用來(lái)為程序提供輸入值,并接受輸出值;程序框圖包含以圖形方式表示的程序代碼。
LabVlEW還為編程、查錯(cuò)、調(diào)試提供簡(jiǎn)單、方便、完整的環(huán)境和工具。除了具備其他語(yǔ)言所提供的常規(guī)函數(shù)功能外,LabVIEW中還集成了大量生成圖形界面的模板,豐富實(shí)用的數(shù)值分析和數(shù)字處理功能,以及多種硬件設(shè)備驅(qū)動(dòng)功能。
LabVIEW面向的是沒(méi)有編程經(jīng)驗(yàn)的用戶,而不是編程專(zhuān)家,尤其適合從事科研開(kāi)發(fā)的科學(xué)家和工程技術(shù)人員,所以被譽(yù)為“工程師和科學(xué)家的語(yǔ)言”。
在此,基于LabVIEW軟件和NI PCI-6229數(shù)據(jù)采集卡設(shè)計(jì)制作了多路時(shí)序控制脈沖信號(hào)發(fā)生器,可以應(yīng)用于各種過(guò)程的自動(dòng)控制中。
2 硬件介紹
基于LabVIEW軟件和多功能數(shù)據(jù)采集卡,可以實(shí)現(xiàn)模擬和數(shù)字信號(hào)的采集,以及信號(hào)產(chǎn)生等多種功能。性價(jià)比較高。NI公司提供了大量不同接口和不同檔次能與LabVIEW軟件很好結(jié)合的數(shù)據(jù)采集卡,使用者可以根據(jù)實(shí)際需要進(jìn)行選擇。這里選擇NI公司的M系列多功能數(shù)據(jù)采集卡NI PCI-6229。采用NI公司的產(chǎn)品,配合NI-DAQmx測(cè)量服務(wù)軟件可以省去硬件驅(qū)動(dòng)程序兼容性等麻煩。NI PCI-6229數(shù)據(jù)采集卡基于PCI接口,共有4路16位模擬輸出,輸出速率達(dá)833 kS/s,輸出電壓范圍為-10~+10 V;32路單通道或16路雙通道16位的模擬輸入,通道采樣頻率可達(dá)250 kS/s;48路數(shù)字輸入/輸出通道,輸出為T(mén)TL電平,板載10 MHz時(shí)鐘的硬件定時(shí)數(shù)字輸入/輸出,能以硬件定時(shí)精度來(lái)同步數(shù)字和模擬功能;兩個(gè)80 MHz,32位的計(jì)數(shù)器/定時(shí)器;采用兩個(gè)DMA通道,能同時(shí)執(zhí)行多個(gè)功能。該板卡具有輸入/輸出路數(shù)較多,配備板載硬件時(shí)鐘源,分辨率較高,穩(wěn)定性好,性價(jià)比較高,時(shí)鐘精度可滿足大多數(shù)系統(tǒng)的要求。
3 時(shí)序脈沖信號(hào)產(chǎn)生的方法
基于LabVIEW的虛擬時(shí)序脈沖信號(hào)產(chǎn)生一般采用定時(shí)翻轉(zhuǎn)輸出狀態(tài)的方法。具體有:
3.1 狀態(tài)延時(shí)法
如圖1所示,先輸出低電平,然后保持低電平并延時(shí),再輸出高電平,再保持高電平并延時(shí),一個(gè)過(guò)程可以產(chǎn)生一個(gè)周期脈沖信號(hào)。循環(huán)上述過(guò)程,就可以周期性地輸出脈沖信號(hào)。
這種產(chǎn)生方法的脈寬和延時(shí)精度決定于高低電平的延時(shí)精度。軟件延時(shí)通過(guò)調(diào)用延時(shí)函數(shù)(即Wait函數(shù))來(lái)實(shí)現(xiàn),而LabVIEW中的Wait延時(shí)函數(shù)最小只能到毫秒級(jí),并且受Windows操作系統(tǒng)中多任務(wù)運(yùn)行的影響,在同時(shí)運(yùn)行其他程序時(shí),延時(shí)時(shí)間不穩(wěn)定。因此,這種方法只有在延時(shí)和脈寬調(diào)節(jié)精度不高的場(chǎng)合可以適用,而對(duì)穩(wěn)定性和精度要求較高的場(chǎng)合,并不適用。
3.2 時(shí)鐘信號(hào)法
利用數(shù)據(jù)采集卡自帶的時(shí)鐘信號(hào)發(fā)生器直接產(chǎn)生周期性的脈沖波形。這種方法可以結(jié)合NI公司的DAQ Insistant(助手)方便地設(shè)置參數(shù),產(chǎn)生所需的脈沖波形。由于采用板卡的時(shí)鐘信號(hào)發(fā)生器是完全基于硬件定時(shí)的,所以延時(shí)時(shí)間和脈寬調(diào)節(jié)精度及穩(wěn)定性較高,具體參數(shù)取決于板卡的時(shí)鐘頻率。但這種方法受數(shù)據(jù)采集卡的時(shí)鐘信號(hào)發(fā)生器個(gè)數(shù)和輸出的路數(shù)限制,一個(gè)時(shí)鐘信號(hào)的發(fā)生器只能輸出一路信號(hào),而普通的數(shù)據(jù)采集卡只有一個(gè)或幾個(gè)時(shí)鐘信號(hào)發(fā)生器,所以產(chǎn)生信號(hào)路數(shù)較少。
3.3 數(shù)字波形法
先通過(guò)軟件產(chǎn)生波形(模擬波形),再轉(zhuǎn)換成數(shù)字波形,然后從數(shù)字通道輸出,循環(huán)上述過(guò)程,就可以連續(xù)產(chǎn)生一路周期性的TTL脈沖信號(hào)。如果需要產(chǎn)生多路的時(shí)序脈沖信號(hào),只要采用多路數(shù)字信號(hào)序列同步輸出的方法產(chǎn)生即可。比如:需要產(chǎn)生如圖2所示的兩路脈沖信號(hào)波形,可以同步地以1 kS/s的樣本輸出速率。分別在兩個(gè)數(shù)字通道輸出如圖3所示的兩列數(shù)字波形。
如果是多路時(shí)序脈沖,只需要增加同步輸出路數(shù)就可以實(shí)現(xiàn)。然而時(shí)序脈沖信號(hào)的延時(shí)精度和脈寬精度調(diào)節(jié)取決于每個(gè)數(shù)字通道的樣本輸出速率,如采用1 MS/s的樣本輸出速率,則可以實(shí)現(xiàn)1μs(1 s/1 MHz)的調(diào)節(jié)精度,延時(shí)時(shí)間和脈沖寬度調(diào)節(jié)則通過(guò)改變延時(shí)數(shù)字樣本數(shù)和脈寬數(shù)字樣本數(shù)實(shí)現(xiàn),具體關(guān)系為:
延時(shí)時(shí)間一精度×延時(shí)數(shù)字個(gè)數(shù),
脈沖寬度一精度×脈沖寬度數(shù)字個(gè)數(shù)
采用數(shù)字波形法來(lái)產(chǎn)生時(shí)序脈沖波形。由于NIPCI-6229數(shù)據(jù)采集卡數(shù)字I/O的同步時(shí)鐘采用板卡自帶的硬件時(shí)鐘定時(shí),所以不受計(jì)算機(jī)操作系統(tǒng)多任務(wù)運(yùn)行時(shí)的影響,穩(wěn)定性好。PCI-6229共有48路DIO通道,因此時(shí)序脈沖輸出路數(shù)擴(kuò)充方便。在此,采用數(shù)字波形法和PCI-6229數(shù)據(jù)采集卡,實(shí)現(xiàn)了多路時(shí)序脈沖信號(hào)發(fā)生器,其延時(shí)和脈寬調(diào)節(jié)精度可以穩(wěn)定地達(dá)到微秒數(shù)量級(jí)。
4 軟件編程
4.1 程序框圖
圖4為兩路脈沖信號(hào)發(fā)生器的程序框圖,多路脈沖發(fā)生器只需增加相應(yīng)的輸入端即可。
先用Pulse Pattern.vi子模板產(chǎn)生一個(gè)模擬脈沖波形,其中延時(shí)、脈寬、周期(即樣本數(shù))用控件調(diào)節(jié),再用Analog to Digital Waveform.vi子模板將模擬脈沖波形轉(zhuǎn)換成數(shù)字波形,同時(shí)設(shè)定正負(fù)邏輯轉(zhuǎn)換開(kāi)關(guān)。再把各單路數(shù)字波形用bundle函數(shù)進(jìn)行捆綁,再通過(guò) DAQmx Write.vi子模板從選定的數(shù)字I/O通道寫(xiě)出,故在各個(gè)數(shù)字輸出通道產(chǎn)生脈沖波形。然而時(shí)序脈沖信號(hào)的周期性通過(guò)For Loop循環(huán)實(shí)現(xiàn),一次循環(huán)產(chǎn)生一個(gè)脈沖波形,即實(shí)現(xiàn)一次控制過(guò)程,如果需要進(jìn)行多次控制,只要設(shè)定循環(huán)次數(shù)即可。
數(shù)字信號(hào)輸出過(guò)程中的關(guān)鍵是數(shù)字通道的樣本輸出速率。樣本輸出速率通過(guò)一個(gè)樣本時(shí)鐘控制,在本發(fā)生器中由計(jì)數(shù)器/定時(shí)器通過(guò)編程輸出設(shè)定頻率的連續(xù)矩形脈沖,再?gòu)臄?shù)據(jù)采集卡的PFI12接口輸入,作為控制各路數(shù)字波形輸出的同步時(shí)鐘,控制各數(shù)字通道同步輸出波形。其中,同步時(shí)鐘脈沖的周期就是時(shí)序脈沖延時(shí)和脈寬調(diào)節(jié)精度。實(shí)際測(cè)量表明,在該數(shù)據(jù)采集卡中最小可達(dá)到0.5μs的調(diào)節(jié)精度。
4.2 前面板圖
圖5所示為四路時(shí)序脈沖發(fā)生器的前面板圖。其中,時(shí)鐘頻率為延時(shí)和脈寬調(diào)節(jié)精度,也就是數(shù)字通道的樣本輸出速率,如頻率為1 kHz,即為1 ms,在該發(fā)生器中最大可以穩(wěn)定達(dá)到2 MHz,即最小延時(shí)可達(dá)0.5μs。其中,各通道的周期在本發(fā)生器中相同,設(shè)定為統(tǒng)一調(diào)整(也可以設(shè)定為不同的周期)。每個(gè)通道的延時(shí)時(shí)間,脈沖寬度可調(diào),并設(shè)有正負(fù)邏輯開(kāi)關(guān),可以輸出正脈沖或負(fù)脈沖波形。信號(hào)周期數(shù)為過(guò)程控制的次數(shù)。同時(shí)設(shè)有產(chǎn)生波形的圖形顯示(圖示為一個(gè)周期的波形),所見(jiàn)即所得,非常直觀。
5 脈沖信號(hào)的硬件輸出
信號(hào)發(fā)生器產(chǎn)生的脈沖信號(hào)通過(guò)數(shù)據(jù)采集卡的相應(yīng)數(shù)字I/O通道輸出,可以使用專(zhuān)用連接電纜連接到接線盒,再由接線盒從相應(yīng)的端口輸出到相關(guān)控制設(shè)備。其中,輸出為T(mén)TL信號(hào)電平,如不能直接驅(qū)動(dòng)設(shè)備,則需要根據(jù)具體設(shè)備情況連接相應(yīng)的接口電路。
設(shè)計(jì)開(kāi)發(fā)完成的時(shí)序脈沖發(fā)生器產(chǎn)生的時(shí)序脈沖信號(hào)經(jīng)示波器實(shí)際測(cè)試,信號(hào)的延時(shí)最小值可以穩(wěn)定地達(dá)到0.5 μs,而脈沖信號(hào)的上升沿可以達(dá)到50 ns。完全能滿足大多數(shù)控制的要求。
6 結(jié) 語(yǔ)
基于LabVIEW軟件和數(shù)據(jù)采集卡可以方便地實(shí)現(xiàn)虛擬的多路時(shí)序脈沖信號(hào)發(fā)生器,具有一定的通用性,可以廣泛地應(yīng)用到各種自動(dòng)測(cè)量和過(guò)程控制中,與傳統(tǒng)基于硬件設(shè)計(jì)的脈沖信號(hào)發(fā)生器相比,具有時(shí)序脈沖延時(shí)和脈寬調(diào)節(jié)精度高,脈沖上升沿時(shí)間短,路數(shù)較多,界面友好,調(diào)節(jié)方便等優(yōu)點(diǎn)。選用不同功能的數(shù)據(jù)采集卡,還可以實(shí)現(xiàn)更復(fù)雜的控制場(chǎng)合。另外,利用數(shù)據(jù)采集卡的模擬I/O,還可以產(chǎn)生同步的模擬控制信號(hào),控制不同的設(shè)備。因此,基于LabVIEW的時(shí)序信號(hào)發(fā)生器不失為一種實(shí)現(xiàn)自動(dòng)控制的好方法。
評(píng)論
查看更多