新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > Labview基本常見(jiàn)問(wèn)題解答(一)

Labview基本常見(jiàn)問(wèn)題解答(一)

作者: 時(shí)間:2012-06-12 來(lái)源:網(wǎng)絡(luò) 收藏

1、如何實(shí)現(xiàn)由一個(gè)事件引發(fā)其他三個(gè)事件的順序發(fā)生,且這三次事件間的時(shí)間間隔為50ms?回答:可以引用狀態(tài)機(jī)來(lái)設(shè)計(jì)程序,將觸發(fā)事件作為狀態(tài)機(jī)的狀態(tài)控制參數(shù),后面發(fā)生的三個(gè)事件依次作為狀態(tài)機(jī)的三個(gè)順序狀態(tài),設(shè)置狀態(tài)切換時(shí)間間隔為500ms.

本文引用地址:http://butianyuan.cn/article/193755.htm

2、labview在主程序通過(guò)局部變量不能實(shí)時(shí)看子vi的參數(shù)回答:通過(guò)局部變量只能得到子vi運(yùn)行完之后的結(jié)果??梢杂胏ontrol reference 方式,在子vi加一個(gè)屬性節(jié)點(diǎn)引出一個(gè)reference。主程序里把需要顯示的控件創(chuàng)建一個(gè)reference連到子vi的reference輸入端口。另外也可以用vi server方式實(shí)現(xiàn)。

3、如何在一個(gè)graph或chart顯示多個(gè)Y軸刻度,并且使每個(gè)通道對(duì)應(yīng)每個(gè)刻度?回答:在前面板上,右鍵點(diǎn)擊刻度,然后選擇duplicate scales,就會(huì)創(chuàng)建一個(gè)新的刻度。然后再點(diǎn)擊右鍵,選擇swap sides,就可以讓刻度顯示在圖的左邊或右邊。然后右鍵右上角的plot legend上的曲線plot,選擇Y scales然后就可以選擇與該曲線相應(yīng)的Y軸SCALES。多條曲線對(duì)應(yīng)多條Y軸的刻度時(shí),是同樣的方法。

4、如何從labview中打開(kāi)一個(gè)pdf文件?回答:最簡(jiǎn)單的方法:用system exec.vi實(shí)現(xiàn),在system exec.vi的command line 端口創(chuàng)建一個(gè)常量,輸入adobe reader 的路徑,再加上文件名等幾個(gè)參數(shù)就可以實(shí)現(xiàn)上述要求。舉例如下:如果要拉開(kāi)位于c盤(pán)的1234.pdf文件可以這樣寫(xiě)“C:Program filesAcrobt 7.0AcrobatAcrobat.exe”/t “C:1234.pdf” “username”其中C:Program filesAdobeAcrobt 7.0AcrobatAcrobat.exe是Adobe Reader 的安裝路徑,/t是命令參數(shù),C:1234.pdf則是要打開(kāi)的文件名,最后的username是用戶(hù)的名字

5、采集數(shù)據(jù)在graph如何顯示系統(tǒng)時(shí)間,并且隨著采集點(diǎn)數(shù)時(shí)間不斷刷新?;卮穑河袃煞N方式,一種是采集波形數(shù)據(jù)然后輸出給graph,在graph上選擇顯示絕對(duì)時(shí)間,并且去掉ignore time stamp選項(xiàng)。第二種是采集數(shù)據(jù)文件,然后用獲取時(shí)間的vi獲取當(dāng)前時(shí)間,然后把采集的數(shù)據(jù)文件和當(dāng)前vibuild成波形文件再給graph.graph的設(shè)置和前種方法一樣。這樣就可以顯示出時(shí)間雖采集點(diǎn)不斷刷新的效果。

6、report generation里的standard和HTML究竟是什么意思?回答:STANDARD和HTML是LV本身就有的報(bào)表類(lèi)型,無(wú)須安裝其他的文本編輯工具就可以打印。STANDARD是LV內(nèi)建的一種報(bào)表格式,可以打印但不能存盤(pán),也就是說(shuō)我們的報(bào)表沒(méi)有電子版。HTML是網(wǎng)頁(yè)格式的文件,可以用瀏覽器打開(kāi),其實(shí)相當(dāng)于LV幫我們編寫(xiě)HTML代碼,這種格式是不能直接打印的,需要先指定網(wǎng)頁(yè)路徑才能打印出來(lái)。還要注意,如果是一段程序是用了report generation的vi,在打包成exe文件或llb文件時(shí),需要加入兩個(gè)動(dòng)態(tài)vi:_excel dynamic vi和 _word dynamic vi。如果生成的報(bào)表采樣了模板需要自支持文件里添加相應(yīng)模板。

7、如果要將channel名字,測(cè)的是什么信號(hào),采樣率是多少這樣的數(shù)據(jù)和采得數(shù)據(jù)一起存入文件應(yīng)該用什么方式比較好?回答:推薦一種以前基本被忽略的文件結(jié)構(gòu)——TDM FILE格式來(lái)存,這種文件格式基于二進(jìn)制的方式,而在存儲(chǔ)過(guò)程中可以加入很多的外部信息進(jìn)去,例如free text;free interger等等,所以存這樣的應(yīng)用還是挺合適的。

8、vi property 下execution中選項(xiàng)reetrant execution,選用和不選用有什么區(qū)別?回答:如果主程序執(zhí)行同一個(gè)子vi,是同時(shí)兩次或多次執(zhí)行時(shí),在不選用時(shí),就會(huì)依次使用這個(gè)子vi;如果選用,則這個(gè)子vi就會(huì)并行執(zhí)行,提高程序運(yùn)行速度。

9、為什么把LABVIEW程序框圖解密以后,就可以一直打開(kāi)程序框圖,如何才能實(shí)現(xiàn)每次打開(kāi)vi都是加密的?回答:如果在LABVIEW解開(kāi)程序的框圖的密碼,關(guān)閉以后該程序,不退出labview,這個(gè)程序如果再次被打開(kāi)會(huì)一直可以查看他的框圖程序,原因是lv沒(méi)有關(guān)閉,所以密碼會(huì)一直存在內(nèi)存當(dāng)中,所以再次打開(kāi)會(huì)依然看到程序框圖,如果要實(shí)現(xiàn)每次打開(kāi)都是加密的,只要在一次打開(kāi)后,把labview也關(guān)掉,下次再想要查看程序框圖就需要輸入密碼。

10、使用vi server技術(shù),如何實(shí)現(xiàn)從一個(gè)vi打開(kāi)運(yùn)行并讀取另一個(gè)vi中控件的值?回答:1) 調(diào)用Open vi reference.vi ,輸入子VI的路徑到其VI PATH的端口;2) 調(diào)用Ivoke Node.vi并設(shè)為Open FP;3) 調(diào)用Ivoke Node.vi并設(shè)為Run VI;4) 調(diào)用Ivoke Node.vi并設(shè)為Get control Value[Variant];對(duì)Control Name端口填入子VI循環(huán)的停止按鈕控件名稱(chēng);Get Control Value [Variant]輸入端的值通過(guò)Variant To Data .vi設(shè)為控件相對(duì)應(yīng)的控件類(lèi)型后,輸出到前面板,這就可實(shí)現(xiàn)取VI控件的值;5) 最后調(diào)用Close Reference.vi關(guān)閉VI Server。

11、連續(xù)采集程序分成配置task狀態(tài)和采集狀態(tài)兩大部分。在配置狀態(tài)中得配置出有效的task。根據(jù)需要在適當(dāng)?shù)臅r(shí)候進(jìn)入采集狀態(tài)。在采集狀態(tài)中使用start task 和read兩個(gè) vi并且循環(huán)執(zhí)行。當(dāng)程序開(kāi)始后立刻報(bào)錯(cuò)?;卮穑阂?yàn)椴杉癄顟B(tài)中使用start task和 read 兩個(gè)vi并且循環(huán)執(zhí)行,當(dāng)采集已經(jīng)開(kāi)始后再使用start task就會(huì)重復(fù)開(kāi)始相同的資源,導(dǎo)致資源沖突產(chǎn)生錯(cuò)誤。建議start部分單獨(dú)作為一個(gè)狀態(tài),在循環(huán)執(zhí)行的狀態(tài)中只使用read.vi。

12、LV7.1在前面板突然找不到Scrollbar了,現(xiàn)在想看或者操作屏幕之外的控件顯示件非常麻煩,怎么能夠找到Scrollbar?回答:在FileVI PropertyWindow AppearanceCustomize里有Show scrollbar的選項(xiàng)。

13、LV7.1如何實(shí)現(xiàn)將Chart的時(shí)間坐標(biāo)與計(jì)算機(jī)系統(tǒng)時(shí)間一致?回答:Chart屬性Format And Precision選Absolute Time,顯示方式改System Time Format 和System Data Format。程序框圖里Get Data/Time In Seconds獲取當(dāng)前時(shí)間,轉(zhuǎn)換為雙精度浮點(diǎn)型后輸入到Waveform Chart的屬性節(jié)點(diǎn)Xscale. Offset。屬性節(jié)點(diǎn)Xscale. Format設(shè)為模式7。

14、LV7.1如何設(shè)計(jì)時(shí)間輸出格式為小時(shí):分:秒.毫秒?回答:用Get Data/Time In Seconds用來(lái)獲得當(dāng)前時(shí)間,另一個(gè)是Format Data/Time String函數(shù),這個(gè)函數(shù)用來(lái)定義輸出時(shí)間的格式,再time format string端口上輸入字符串%H:%M:%S%.3u,然后time stamp連接Get Data/Time In Seconds的時(shí)間輸出即可。關(guān)于時(shí)間格式的定義可以在help里看到。

15、為什么用子程序調(diào)用時(shí)pop up前面板,前面板總是自主程序后面?回答:在window appearance里面選擇default floating 和modal這三項(xiàng),將主程序的選項(xiàng)設(shè)在較低的優(yōu)先級(jí)而子程序設(shè)得高一點(diǎn)應(yīng)該可以了。

16、如何讀出excel里的數(shù)據(jù)來(lái)作分析?回答:使用Excel Get Data.vi并在參數(shù)data type上使用二維字符數(shù)組可把Excel內(nèi)數(shù)據(jù)以字符串的方式讀出。

17、如何對(duì)Excel文件作數(shù)據(jù)續(xù)存?回答:使用Excel Get Last Row.vi先將Excel內(nèi)已有數(shù)據(jù)的最后一行的行數(shù)得出,再于該行開(kāi)始續(xù)存數(shù)據(jù)。

18、如何將文件保存為Excel格式1) 用ActiveX技術(shù),將LV作為一個(gè)ActiveX服務(wù)器??梢詤⒖糔ational Instruments 7.1examplesappsfreqresp.llb VI庫(kù)里面的Frequency Response.vi例子程序。2)使用Report Generation工具包,它屏蔽了底層的ActiveX,使用比較簡(jiǎn)單,不過(guò)需要購(gòu)買(mǎi)。3)保存為文本方式,后綴為.xls,這樣子也可以用Excel打開(kāi),不過(guò)不能用Excel修改保存,要不然會(huì)自動(dòng)修改為Excel文檔,以后也不能用LV對(duì)其進(jìn)行操作。

19、如何在table中既顯示小數(shù)又顯示整數(shù)回答:table中顯示的是字符串,顯示小數(shù)還是整數(shù)是在轉(zhuǎn)換成字符串而未放入table之前的過(guò)程中完成的,因此可以將整數(shù)小數(shù)分別轉(zhuǎn)換成字符串后再合并輸出到table中即可。

20、如何制作一個(gè)邊框是透明的string控件回答:選擇一個(gè)classic simple string控件,使用工具模板的染色工具,在彈出的對(duì)話框中選擇右上角“T”;一樣的transparent,然后給這個(gè)控件染色就可以了。

21、循環(huán)采集并對(duì)采集的結(jié)果判斷,前面板放置一個(gè)布爾報(bào)警燈,只保存報(bào)警的數(shù)據(jù),并可回放,怎么實(shí)現(xiàn)?回答:存儲(chǔ)vi外加一個(gè)case結(jié)構(gòu),并以布爾報(bào)警燈作為判斷,如果為真值,存儲(chǔ),為false,不存?;胤庞袃煞N形式,即:可以把試驗(yàn)數(shù)據(jù)存儲(chǔ),然后回調(diào)。也可以把graph存為圖片。

22、怎樣把While loop的循環(huán)次數(shù)i寫(xiě)入Table的行頭ColHdrs[]呢?回答:創(chuàng)建Table的屬性節(jié)點(diǎn),屬性ColHdrVis=T顯示行頭,ColHdrs[]連接一個(gè)字符串?dāng)?shù)組,需要將循環(huán)次數(shù)i加1,然后通過(guò)Number To Fractional String轉(zhuǎn)化為字符類(lèi)型,精度為0。添加移位寄存器,賦初值為空字符串?dāng)?shù)組,build array上端輸入接移位寄存器,下端接數(shù)字,右端接ColHdrs[]和移位寄存器另外一端。

23、串口程序打包安裝到一臺(tái)沒(méi)有LV環(huán)境的機(jī)器下,串口不可用,為什么?回答:LV7.1的版本,在Application Builder中Installer頁(yè)面選擇:Advanced/Serial Port Support。

24、使用CLF節(jié)點(diǎn)調(diào)用DLL中的函數(shù),如果原函數(shù)中指定的數(shù)據(jù)類(lèi)型為結(jié)構(gòu),那么在CLF配置過(guò)程中該如何指定數(shù)據(jù)類(lèi)型?回答:可以選擇數(shù)據(jù)類(lèi)型(TYPE)為Adapt To Type,然后在輸出或輸入端口連接一個(gè)Cluster,這個(gè)Cluster的定義和原函數(shù)中結(jié)構(gòu)的定義一樣。選擇Adapt To Type后,連接到端口的數(shù)據(jù)類(lèi)型是什么,與函數(shù)接口的數(shù)據(jù)類(lèi)型就是什么。



關(guān)鍵詞: Labview

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉