Labview初學者常見問題以及解答
44、如何用LABVIEW編程檢測U盤?回答:需要調(diào)用Windows API函數(shù)GetDriveTypeA,其函數(shù)返回值盤符類型的數(shù)據(jù)類型為長整形,輸入?yún)?shù)為檢測盤符。調(diào)用CLFN.vi選擇windowssystem32kernel32.dll,選擇GetDriveTypeA,設置Return Type為Numeric Signed 32-bit Integer;再添加參數(shù)nDrive,設置參數(shù)類型為STRING和格式為C String Pointer。運行時在輸入端填上要檢測的U盤盤符,返回結果為時表示為DRIVE_REMOVABLE即為可移動的U盤
1、
2、
3、
4、
5、7.1在編寫大型程序時希望優(yōu)化計算機的內(nèi)存使用,那么需要考慮哪些內(nèi)容?A:1)、將VI分解為SUBVI,當SUBVI不再被執(zhí)行的時候,LV能夠釋放它的內(nèi)存。
6、
7、
8、
9、
10、
11、在使用Open/Create/Replace File.vi選擇create or replace 方式時,如果文件已經(jīng)存在,需要Replace,怎樣才能不彈出對話框直接Replace?A:兩種方式:1)雙擊打開Open/Create/Replace File.vi的程序框圖,把里面的If function is 2(create or replace with protection) ask user’s permission to 的CASE結構刪除。2)在Open/Creat/Replace File.vi前加一個判斷文件存在的結構,判斷存在時運行Delete.vi
12、LV在做網(wǎng)絡發(fā)布的時候,能否在由LabVIEWWEBServe生成的HTML中嵌入其他語言寫的腳本文件?或者在其他網(wǎng)絡服務器上使用由LV生成的HTMLA:這兩種情況都是不允許的,原因在于NI的Web Server不允許這樣的操作。LV的Web Server無法將非LV環(huán)境下生成的腳本信息傳送到客戶端瀏覽器,也無法訪問客戶端瀏覽器中非LV環(huán)境下生成的腳本信息;同樣是處于NI Web Server的問題,其他的Web Server(Apache,IIS等)也無法使用由LV的Web Server生成的HTML文件實行對VI控制。
13、
14、 如何動態(tài)添加Tree控件內(nèi)條目?A:查找Directory hierarchy in tree control.vi例程,打開init-open-close子vi內(nèi)的Directory to tree子vi內(nèi)add Item.vi。使用該屬性節(jié)點進行添加刪除操作。重點在于parent tag端口的使用。如果添加的為最上層的條目,則parent tag為空字符串。如果是子層條目,則parent必須為上一層條目的tag。
15、 在LV7.1中如何使用Database Connectivity更新ACCESS數(shù)據(jù)庫中數(shù)據(jù)類型為OLE的字段? A:使用帶參數(shù)更新數(shù)據(jù)庫的方式更新OLE數(shù)據(jù)類型的數(shù)據(jù)。具體方法如下:1)使用DB Tools Open Connection.vi打開數(shù)據(jù)庫;2)使用DB Tools Create Parameterized Query.vi建立一個帶參數(shù)更新數(shù)據(jù)庫的Refnum,在SQL query輸入“update表名稱set列名稱=(?)”,由于OLE數(shù)據(jù)無法用文本方式直接體現(xiàn),“(?)”在這里就代表OLE的數(shù)據(jù)類型;3)使用DB Tools set Parameter.vi,在Value處輸入OLE數(shù)據(jù)就可以,比如數(shù)組;4)使用兩次DB Tools Free Object.vi釋放Refnum,才可以得到Connection Reference,才可以再使用其他DB Tools VI;5)斷開連接。
16、 LV7.1,Time Loop結構主程序內(nèi)調(diào)用了兩個不同功能的子程序,當子程序被調(diào)用時彈出子VI前面板。子程序內(nèi)均使用了Time Loop,設置均一樣,但是調(diào)用任一子VI后另一個再也調(diào)用不了了。 A:兩個子VI均使用了同一個設置的Time Loop結構,這是由于兩個子VI的Time Loop的Loop name名稱相同造成的。
17、 在LV7.1中如何設定和顯示Cursor A:舉例對于waveform graph,我們可以調(diào)出它的屬性節(jié)點,然后在屬性節(jié)點中選擇Cursor list,程序就會以簇數(shù)組的形式列出所有的游標,先索引出來某個游標,然后再利用簇函數(shù)就可以修改了,如果要改變游標的坐標,可以Index Array 索引出某個游標,然后Bundle by name就可以修改,再replace array或者其他數(shù)組函數(shù),將改變后的簇數(shù)組寫入另一個cursor list的屬性節(jié)點即可。
18、利用Build Application生成exe文件,如果原程序用到了current vi’s path,那么就會出現(xiàn)原先默認能找到的文件現(xiàn)在程序自己找不到了 A:當使用current vi’s path這個函數(shù)時,它會將文件名和該vi所在的路徑返回,如果剛編寫vi還沒有保存,那么運行它會返回一個無效值,如果已保存了該vi,那么就能返回完整路徑,例如一個名為:“Application.vi”的vi被保存在C:Program FileApplication這個文件夾下面,current vi’s path函數(shù)返回的路徑就是C:Program FileApplication Application.vi;如果生成exe,并且與Application.vi保存在同一個目錄下,那么運行的時候會返回C:Program FileApplication App.exeApplication.vi,所以我們需要多用一個Strip path function才能得到和原來一樣的路徑。
19、 如何自定義窗口標題字符,而不是用默認的Vi 名稱? A:如果只是設置一個非VI名稱的默認標題,可以在VI Property>>Window Appearance中設置,去掉Same As VI name前面選中符號,然后在Window title中輸入需要顯示的字符;如果希望在程序中修改標題,可以使用VI Server中屬性FP.Title
20、 LV中使用NI-VISA軟件控制USB設備 A:為了使用NI-VISA,在Windows環(huán)境中,可以通過INF文檔做到這一點。NI-VISA3.0包含VISA Drive Development Wizard(DDW)將為USB設備創(chuàng)建一個INF文檔。1)、選擇Start Programs National Instruments VISAVISA Drive Developer Wizard,打開DDW??梢杂眠@個向?qū)镻XI/PCI或USB設備創(chuàng)建一個INF文檔,點擊Next。此時出現(xiàn)VISA DDW基本設備信息窗口。2)進行這一步時,需要清楚USB供應商ID和產(chǎn)品ID。這兩個數(shù)據(jù)都是16位十六進制數(shù)字,由供應商提供。點擊Next。出現(xiàn)輸出文檔屬性窗口。3)USB Instrument Prefix是一個描述符,用來識別本設備所用的相關文檔。在USB Instrument Prefix中輸入相應信息,并在“output file directory”中選擇存放這些文檔的目錄,然后點擊Finish。INF文檔就創(chuàng)建好并保存在您指定的位置了。假定Windows XP操作系統(tǒng)。復制INF文檔并將其放入INF文件夾,這個文件夾的位置通常是:“C:WINDOWSINF”。這個文件夾可能是隱藏的。右擊C:WINDOWSINF文件夾中INF文件,然后點擊Install。這個過程為您的文件創(chuàng)建了PNF文檔?,F(xiàn)在就可以準備安裝USB設備了。連接USB設備。Windows探測到您的USB設備后,立即會打開“添加新硬件向?qū)?rdquo;。遵照屏幕上有關向?qū)С绦虻闹付ㄐ惺?。如果您準備為該設備選擇驅(qū)動程序,就請瀏覽INF文件夾,并選擇您使用DDW創(chuàng)建的INF文檔。就可以在MAX和LV中編成控制了。
21、利用LV的迅捷VI讀出.lvm的數(shù)據(jù),但是無法正常在waveform graph中正常顯示。 A:讀出的二維數(shù)組是以列為單位存放數(shù)據(jù)的,而waveform graph顯示2D數(shù)組是以每行作為一條曲線進行輸出的,所以,利用Transpose 2D Array 將行列轉制就可以了。Waveform chart與graph剛好相反,是以每列數(shù)據(jù)作為一條曲線進行輸出的,所以不加轉制就可以用chart代替工人阿婆和也可以正常顯示。
22、 LV7.1DataSocket協(xié)議傳輸數(shù)據(jù)怎樣保證客戶端完整地從服務器接收數(shù)據(jù)而不丟失?A:數(shù)據(jù)丟失的原因是讀取數(shù)據(jù)的速度比發(fā)布慢使得數(shù)據(jù)被覆蓋,處理方法有兩方面:1)
23、 如何將MAX配置文件保存下來 A:在MAX里,當配置完成后,在菜單欄,選擇FILE---Export,選擇保存位置已經(jīng)類型,點擊Next,選擇需要保存的文件,接著點擊Export,finish。載入時,選擇Import
24、Developer Suit中State diagram toolkit是做什么用的 A:狀態(tài)框圖使用一個圖形化狀態(tài)框圖標識,定義多個狀態(tài)及其轉移邏輯,并包含有自動生成LV代碼的工具,在對于搭建大程序的構架上是很有用的一個工具
25、 LV7.1用局部變量的時候只能將機械動作改成Switch,而不能用Latch,例如用Stop按鈕停止兩個并行的循環(huán),怎么做? A:在用Latch方式時,系統(tǒng)讀這個控件一次后自動改為默認值,所以用Latch方式時用局部變量,在兩次讀出的值即使時間間隔很短也不能保持一致,所以就不能用了。此時,可以用Switch方式,并在程序開始時初始化按鈕就可以了。
26、在ActiveX容器中播放Flash的動畫,如何實現(xiàn)在LV中響應Flash中的按鈕動作? A:通過調(diào)用ActiveX,可以在LV中播放*.swf的動畫。響應FLAH中控鍵動作的辦法是用一個事件結構,在ActiveX容器中特定區(qū)域響應鼠標動作。
27、在調(diào)試LV7.1程序的時候,程序總是進行到無法響應得狀態(tài),然后只能強行關閉,因此無法正常運行? A:在VI前面板有個長度很大的字符串Indicator,因此程序在刷新屏幕的時候很消耗資源,將這個Indicator設為隱藏,問題就解決了。同樣的問題也會出現(xiàn)在數(shù)據(jù)量很大的Graph,Chart,甚至探針上。
28、LV7.1中一個while循環(huán)嵌套另一個While循環(huán),如何通過一個布爾量停止這兩個循環(huán)? A:創(chuàng)建一個布爾量的局部變量,用這個局部變量控制一個循環(huán),用布爾量控制另一個循環(huán),注意機械特性是不能帶鎖存的(Latch)。
29、采集3路信號,需要根據(jù)一列的數(shù)據(jù)的值來對整個數(shù)組進行排序,保證每一排的數(shù)據(jù)仍然對應。A:
30、 每次運行時CPU使用率都達到100%,為什么? A:循環(huán)里面沒加延時就會有這種現(xiàn)象發(fā)生
31、儀器驅(qū)動器的概念和VISA的特點? A:儀器驅(qū)動器是指使用標準化的I/0函數(shù)儀器設備進行通信的程序,主要用于對儀器進行程控操作。在LV編程語言中,儀器驅(qū)動器是指由VISA標準和儀器程控指令共同構成的儀器控制程序的應用接口(API)。儀器驅(qū)動器采用VISA標準編程,從而可避開許多復雜而低級的儀器程控命令。VISA是虛擬儀器體系結構的簡稱,它的特點有1)面向?qū)ο缶幊蹋?)VISA是當前所有儀器接口類型功能函數(shù)的超集,且十分簡潔。3)VISA作為標準函數(shù),與儀器的I/O接口類型無關;4)VISA程序與操作系統(tǒng)與編程語言無關。
32、如何選擇告訴CAN卡和低速CAN卡的使用? A:高速CAN 和低速CAN設備是不能允許于同一個CAN網(wǎng)絡中。如果CAN設備是Serials 2 的CAN設備那么是有兩個PORT分別可以做高速CAN和低速CAN的,而且是通過軟件來設置的,直接在MAX里找對應的CAN設備選擇相應的PORT的屬性就可以更改是高速還是低速CAN。如果Serials1的就需要一個端子,從一個CANport分出兩個Port分別作高速CAN和低速CAN,也是在MAX設置的。
33、如何使用Read Text File函數(shù)從文本文件中逐行讀取數(shù)據(jù)? A:在Read Text File函數(shù)的輸入輸出端口無法設置讀取行的功能。只有用鼠標右擊該函數(shù),從彈出的快捷菜單中選擇Read Lines才能實現(xiàn)讀取行的操作。將這個函數(shù)放到一個循環(huán)里,就可以實現(xiàn)逐行讀取的目的了。
34、用LV寫的串口程序,生成EXE文件后不能在沒有Lv的機器上運行,這臺機器已經(jīng)裝好了相應的LAB VIEW Run-Time,為什么? A:如果串口程序使用VISA寫的,就需要在目標及其上安裝相應的VISA驅(qū)動??梢栽谀繕思捌渖蠁为毎惭bVISA驅(qū)動,也可在LV中使用打包功能將VISA驅(qū)動和應用程序一起做成一個安裝文件,統(tǒng)一安裝到目標機器上。
評論