新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > labview-tcp通信總結(jié)

labview-tcp通信總結(jié)

作者: 時間:2016-12-27 來源:網(wǎng)絡(luò) 收藏
1、波形圖是每次將久數(shù)據(jù)清空,然后顯示新數(shù)據(jù),而波形圖表是將新數(shù)據(jù)接到舊數(shù)據(jù)的后面。趨勢圖可以將新的數(shù)據(jù)添加到曲線的尾端,從而反映實時數(shù)據(jù)的變化趨勢,主要用于顯示實時的數(shù)據(jù)。而圖表在畫圖之前會自動清空當(dāng)前圖表,然后把輸入的數(shù)據(jù)畫成曲線。

2、字符串常量中的rn這里是算四個字符,而不是指轉(zhuǎn)義字符。

本文引用地址:http://m.butianyuan.cn/article/201612/334159.htm

3、通過stop按鈕來停止程序的運行,可以采用while循環(huán)和事件結(jié)構(gòu),事件觸發(fā)條件改為值改變,然后按鍵機械動作改為保持轉(zhuǎn)換直到釋放,保持轉(zhuǎn)換直到釋放相當(dāng)于兩次改變事件stop的值。

4、while循環(huán)是首先讀入stop的值,然后在執(zhí)行一次后在根據(jù)這個值來判斷,當(dāng)while里含有將stop改為true的語句,這個值將寫入判斷條件,再運行一次后再退出。

5、variant(變體)數(shù)據(jù)類型和其他的數(shù)據(jù)類型不同,它不僅能存儲控件的名稱和數(shù)據(jù),而且還能攜帶控件的屬性。labview中的任何一種數(shù)據(jù)類型都可以使用相應(yīng)的函數(shù)來轉(zhuǎn)換為variant數(shù)據(jù)類型。variant數(shù)據(jù)類型主要用在ActiveX中,以方便不同程序時間的數(shù)據(jù)交互。在labview中可以將任何數(shù)據(jù)都轉(zhuǎn)換為variant數(shù)據(jù)類型。

5、局部變量只能用于一個vi的程序框圖,而全局變量可以用于同一臺計算機中的多個vi。每個局部變量都對應(yīng)前面板上的一個控件,一個控件可以創(chuàng)建多個局部變量,labview中的全局變量是以獨立的vi文件形式存在的,這個vi文件只有前面板,誒有程序框圖,不能進行編程。一個全局變量的vi文件中可以包含多個不同數(shù)據(jù)類型的全局變量。

6、for循環(huán)輸入和輸出數(shù)組,默認(rèn)情況下是數(shù)組元素逐個輸入,即按照索引輸入,每次輸入一個數(shù)組元素進行運算,然后循環(huán),最后將這個數(shù)組一起輸出,這種情況不需要給循環(huán)次數(shù)賦值,循環(huán)次數(shù)就是數(shù)組的個數(shù)。如果需要將數(shù)組一次性完整輸入,則需要關(guān)閉索引功能,數(shù)組將一次性輸入,這種情況需要制定循環(huán)的次數(shù),而且循環(huán)時是操作整個數(shù)組,而不是操作某一個數(shù)組元素。

7、移位寄存器,把上一次循環(huán)產(chǎn)生的結(jié)果移動到下一次循環(huán)的輸入。任何情況下都別忘了初始化移位寄存器,移位寄存器不受數(shù)據(jù)類型的限制,也沒有數(shù)量限制。

8、labview還提供了反饋節(jié)點來實現(xiàn)移位寄存器的功能,,使用反饋節(jié)點可以讓撐血更簡潔,易懂,使用方法是直接將輸出與輸入連接起來,這是就會自動出現(xiàn)一個反饋節(jié)點的符號,當(dāng)然,和移位寄存器一樣,最好制定反饋節(jié)點的初值。

9、如果以索引方式輸入數(shù)組的話,while循環(huán)的次數(shù)并不會由數(shù)組大小控制,它仍由布爾值控制。當(dāng)循環(huán)次數(shù)超過數(shù)組大小時,將以數(shù)組最后一個元素作為輸入。

10、labview在執(zhí)行while循環(huán)時,如果用戶沒有給她設(shè)定循環(huán)時間間隔,那么它以cpu的極限速度運行。所以最好給while循環(huán)加上時間間隔。有兩種方法:一種是在每個循環(huán)中添加一個等待時間,只有在等待完畢后才有耐性下一個循環(huán)。另一種方法是使用定時循環(huán)。

11、條件結(jié)構(gòu)中當(dāng)false條件框中沒有數(shù)據(jù)與b連線時,程序是不可執(zhí)行的。此時數(shù)據(jù)輸出端子是空心的。當(dāng)條件結(jié)構(gòu)為false時,沒有數(shù)據(jù)流入b,因此數(shù)據(jù)流不能正常流動,即程序是不可執(zhí)行的,因此必須給該輸出端子賦值。但是如果在某種情況下,如果你不關(guān)心當(dāng)case為false時b為何止的話,可以右擊,選擇use default if unwired選項。

12、當(dāng)case結(jié)構(gòu)的輸入端子不是布爾變量的時候,就等價于c語言中的switch語句了。defalut是必須的。

13、當(dāng)多個事件發(fā)生時會形成事件隊列,知道每個事件對應(yīng)的代碼都被執(zhí)行為止,因此不會由事件被漏掉的情況。

14、事件結(jié)構(gòu)中的事件欄中的某些事件,入mouse down左側(cè)有兩種箭頭:一種是綠色箭頭,另一種是紅色箭頭。其中綠色的notify事件,即當(dāng)事件發(fā)生時通知程序運行該事件所對應(yīng)的代碼。大部分情況下都是使用這種事件。紅色箭頭表示該事件是filter事件,即當(dāng)事件發(fā)生時可以選擇是不是過濾該事件。

15、事件結(jié)構(gòu)必須放在while循環(huán)中,否則沒有意義。

16、表格實際上即使一個字符串組成的二維數(shù)組,express table用于將數(shù)據(jù)快捷地轉(zhuǎn)換為表格

16、條件使能結(jié)構(gòu)(labview 2010里沒有這種結(jié)構(gòu)):環(huán)境變量只有在工程中才能使用。通過定義整個工程的環(huán)境變量,該工程下的vi都可以被這些環(huán)境變量控制。

17、公式節(jié)點的文本編程語言的語法與c語言非常接近,但是只能實現(xiàn)基本的邏輯流程和運算,不能對文件或設(shè)備進行操作或通信,沒有輸入輸出語句。

18、文件路徑是labview中一種特殊的數(shù)據(jù)類型,方便用于文件的操作。但是由于它也兼具了字符串的特征,因此可以用一個很簡單的vi函數(shù)實現(xiàn)它和字符串之間的轉(zhuǎn)換。

19、樹形控件編輯完后一定要右擊樹形控件并選擇make curent values default選項,否則重新打開vi后用戶千辛萬苦寫的東西就沒了。

20、注意要控制數(shù)組控件的屬性,就必須右擊數(shù)組控件的邊緣,而不能右擊內(nèi)部元素控件的邊緣,若右擊內(nèi)部元素的控件,將彈出內(nèi)部元素控件的相關(guān)右鍵菜單,這一點要特別注意,因為數(shù)組的邊框和元素控件的邊框距離非常近。

21、參考簇必須與輸出的簇完全相同,可以直接右擊需要賦值的簇,選擇create/constant 選項來創(chuàng)建一個與輸出簇完全相同的常量簇作為參考簇。能轉(zhuǎn)換為數(shù)組的簇內(nèi)部元素數(shù)據(jù)類型必須一致。把數(shù)組轉(zhuǎn)換為簇時,必須指定簇的元素數(shù)目,因為labview無法預(yù)料輸入數(shù)組元素的數(shù)目。右擊轉(zhuǎn)換函數(shù)的圖標(biāo),選擇cluster size選項指定簇的大小。

22、當(dāng)error in攜帶有錯誤信息時,該函數(shù)就會不做任何操作,而是直接將錯誤傳遞給error out 輸出。包含一個status 布爾量代表是否有錯,code代表錯誤代碼,source 包含了錯誤的具體信息。

23、引用是一種特殊的數(shù)據(jù)類型,它包含了文件所有應(yīng)該有的信息,如地址、類型、當(dāng)前指針位置、寫允許還是讀允許等。

23、波形圖表中,對于二維數(shù)組,默認(rèn)情況下它將輸入數(shù)組轉(zhuǎn)置,即每一列的數(shù)據(jù)當(dāng)初一條一維數(shù)組曲線。對于波形數(shù)據(jù)類型,波形圖表只能顯示當(dāng)前的輸入數(shù)據(jù),并不能將新數(shù)據(jù)添加到曲線尾端。這是因為波形數(shù)據(jù)包含了橫坐標(biāo)的數(shù)據(jù),因此每次畫出的結(jié)構(gòu)和上一次結(jié)果無關(guān),等價于波形圖。

24、波形圖表刷新模式在屬性設(shè)置中,可用來改變刷新的方式,是帶狀圖表還是示波器圖表還是掃描圖。

25、Express VI中,labview提供了動態(tài)數(shù)據(jù)類型(ddt)來攜帶express vi的輸入和輸出信號。用戶可以將數(shù)值、波形或布爾數(shù)據(jù)與動態(tài)類型數(shù)據(jù)輸入端相連,也可以將動態(tài)數(shù)據(jù)類型顯示為圖形或數(shù)值。動態(tài)數(shù)據(jù)類型能夠攜帶單點,單通道(一維數(shù)組)或多通道(二維數(shù)組)的數(shù)據(jù)或波形數(shù)據(jù)類型的數(shù)據(jù)。普通vi不能直接輸入動態(tài)數(shù)據(jù)類型,因此需要進行數(shù)據(jù)轉(zhuǎn)換。

26、配置文件,標(biāo)準(zhǔn)的windows配置文件(INI文件)。它適合用來寫一些硬件配置信息。實際上也是一種文本文件。

27、表單文件實際上也是一種文本文件,只不過它的輸入數(shù)據(jù)格式可以是一維或二維數(shù)據(jù)數(shù)組,數(shù)據(jù)之間自動加入了tab符或換行符。它將數(shù)據(jù)數(shù)組轉(zhuǎn)化為ASCII碼存放在電子表格文件中,因此用它存儲數(shù)據(jù)數(shù)組非常方便。

  數(shù)據(jù)記錄文件實際上是一種二進制文件,輸入的數(shù)據(jù)格式可以是任何數(shù)據(jù)類型。操作方法和二進制文件基本相同,只是增加了幾個功能,通過這些功能可以設(shè)定或讀取記錄條數(shù)。

  xml文件實際上是一種文本文件,但是它的輸入可以是任何數(shù)據(jù)類型,它通過xml語法標(biāo)記的方式將數(shù)據(jù)格式化,因此在寫入xml文件之前需要將數(shù)據(jù)轉(zhuǎn)換為xml文本。

  lvm文件將動態(tài)類型數(shù)據(jù)按一定的格式存儲在文本文件中,它會在數(shù)據(jù)前加上一些信息頭。

  TDM文件將動態(tài)類型的信號數(shù)據(jù)存儲為二進制文件,同時可以為每一個信號都添加一些附加信息。

  TDMS文件時labview對TDM文件的改進。它比TDM文件讀寫速度更快,屬性定義的接口更簡單。TDM文件盒TDMS文件可以相互轉(zhuǎn)換,因此推薦使用TDMS文件代替TDM文件。

28、創(chuàng)建子vi有兩種方法:一種是鼠標(biāo)點擊程序框圖和前面板右上角的圖標(biāo),另一種是選擇程序框圖中的某一段代碼,然后選擇編輯|創(chuàng)建子vi。

29、查看vi層次結(jié)構(gòu):點擊主菜單查看選項,選擇vi層次結(jié)構(gòu)?! ?/p>

  可重入的設(shè)置,子vi文件的 主菜單 文件|vi屬性選項,在vi屬性對象框中進入執(zhí)行頁面,選擇可重入執(zhí)行。當(dāng)使用vi的可重入屬性后,每一處對該子vi的調(diào)用都會在內(nèi)存中產(chǎn)生子vi的一個副本,副本之間相互獨立,因此這樣保證調(diào)用的并行性。

  需要在調(diào)用子vi時能打開子vi前面板,只需要在主vi中右擊子vi圖標(biāo),選擇subvi node setup 選項就會彈出子vi調(diào)用屬性配置對話框。選擇show front panel when called 表示在調(diào)用子vi時打開子vi的前面板,suspend when called表示當(dāng)子vi被調(diào)用時將彈出子vi前面板,而此時子vi處于掛起狀態(tài),知道用戶單擊return to caller按鈕才返回到主vi,這個選項在調(diào)試的時候可以用到。

30、樹形控件的編輯必須通過屬性節(jié)點和方法節(jié)點才能實現(xiàn)。

31、用戶可以定義自己的錯誤代碼,代碼可以在5000~9999之間。

32、編輯菜單欄,在edit菜單中旋轉(zhuǎn)run-time menu選項會彈出菜單編輯器。菜單的響應(yīng)程序還可以通過事件結(jié)構(gòu)實現(xiàn)。它比通過get menu selection函數(shù)實現(xiàn)要更加簡潔明了,推薦使用事件結(jié)構(gòu)實現(xiàn)。

33、右鍵快捷菜單,右擊控件選擇advanced| run-time shorcutl menu|edit選項。菜單項編輯完成后,就可以編輯用戶單擊該菜單項時運行的代碼。只能通過事件結(jié)構(gòu)中該控件的 shortcut menu selection(user)事件來實現(xiàn)。若不希望某個VI中的自定義數(shù)據(jù)類型控件自動更新,則可以右擊該控件取消對auto-update from type def的選擇,需要時再手動更新update from type def。

34、自定義控件,右擊前面板的任何控件,選擇高級,自定義打開自定義控件邏輯窗口,可以編輯控件。選擇的時候在控制選板選擇控件里。

  通過自定義數(shù)據(jù)類型可以將所有應(yīng)用了的自定義控件與保存的自定義控件文件響關(guān)聯(lián),即一旦自定義控件文件改變,相應(yīng)的所有VI中該控件的應(yīng)用實體都會跟著變化。自定義數(shù)據(jù)類型控件的編輯和自定義控件的編輯基本一樣,唯一不同的是在自定義控件編輯窗口的工具欄的下拉菜單中選擇tpye def。

  自定義控制選板和函數(shù)選板:最好的方法是選擇菜單欄的工具|高級|編輯選板。

35、如果while循環(huán)對于速度要求不高,可以在while 循環(huán)中添加一個等待。從而降低cpu的利用率以利于其他部分程序的執(zhí)行。對于用戶界面循環(huán),50~100ms的延遲都是可以的。

  對并行任務(wù)中相對不重要的任務(wù),可以通過wait函數(shù)增加一個很小的延時,從而保證更重要的任務(wù)有更多的cpu資源。

  使用事件結(jié)構(gòu)來等待用戶的輸入,因為事件結(jié)構(gòu)在等待時不會占用cpu資源。

  在循環(huán)內(nèi)盡量不要使用build array函數(shù),因為這樣會重復(fù)調(diào)用labview內(nèi)存管理器。更有效的方法是通過auto-indexing或replace array subset函數(shù)來增加數(shù)組內(nèi)容。字符串和數(shù)組類似,因此也會面臨這個問題。

36、MathScript是面向數(shù)學(xué)的文本編程語言,它帶有交互式的窗口和可編程的接口,通過mathscript ,喜歡文本編輯的用戶可以再labview中編寫并執(zhí)行matlab式的文本代碼并能與圖形化編程無縫結(jié)合。

37、labview中某些信號處理函數(shù)的頻率輸入端可能是歸一化頻率,而不是模擬頻率。歸一化頻率= 模擬頻率/采樣頻率,因此它的單位是周期數(shù)/每采樣。歸一化頻率的倒數(shù)就是信號每周期的采樣次數(shù)。

  常用的信號調(diào)理方法有濾波、放大、加窗

  窗函數(shù)的作用包括截斷信號、減小譜泄露和用于分離頻率相近的大賦值信號與小賦值信號。

38、傳感器感應(yīng)物理信息并生成可測量的電信號。

  信號調(diào)理:從傳感器得到的信號可能會很微弱,或者含有大量噪聲,或是非線性等,這種信號在進入采集卡之前必須經(jīng)過信號調(diào)理。信號調(diào)理的方法主要是放大、衰減、隔離,多路復(fù)用、濾波、激勵和數(shù)字信號調(diào)理。

39、在系統(tǒng)設(shè)計時,清晰的層次結(jié)構(gòu)、模塊化設(shè)計、通用的接口和組件等都是增強系統(tǒng)靈活性和可擴展性的重要手段。

  可重用性需要我們在編程中盡量去抽象那些通用的功能和實現(xiàn)方法。這些模塊可以再一個工程中重復(fù)使用,也可以在多個工程中重復(fù)使用。

   可讀性,必須為代碼添加充分的注釋,并配合詳細(xì)的文檔。其中可能包括功能、實現(xiàn)原理、結(jié)構(gòu)、編程思想和接口等。

   可維護性對于長期穩(wěn)定運行的軟件至關(guān)重要。一方面系統(tǒng)在長期運行過程中可能會不斷增加數(shù)據(jù)或是遇到各種可能的錯誤,因此必須有簡單的方法來掛歷和處理不斷增加的數(shù)據(jù)。此外,系統(tǒng)必須有良好的容錯能力和回復(fù)能力。另一方面是指系統(tǒng)可能由于環(huán)境的變化或用戶需求的變化需要改變。



關(guān)鍵詞: labview-tcp通信總

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉