labview-tcp通信總結
2、字符串常量中的rn這里是算四個字符,而不是指轉義字符。
本文引用地址:http://www.j9360.com/article/201612/334159.htm3、通過stop按鈕來停止程序的運行,可以采用while循環和事件結構,事件觸發條件改為值改變,然后按鍵機械動作改為保持轉換直到釋放,保持轉換直到釋放相當于兩次改變事件stop的值。
4、while循環是首先讀入stop的值,然后在執行一次后在根據這個值來判斷,當while里含有將stop改為true的語句,這個值將寫入判斷條件,再運行一次后再退出。
5、variant(變體)數據類型和其他的數據類型不同,它不僅能存儲控件的名稱和數據,而且還能攜帶控件的屬性。labview中的任何一種數據類型都可以使用相應的函數來轉換為variant數據類型。variant數據類型主要用在ActiveX中,以方便不同程序時間的數據交互。在labview中可以將任何數據都轉換為variant數據類型。
5、局部變量只能用于一個vi的程序框圖,而全局變量可以用于同一臺計算機中的多個vi。每個局部變量都對應前面板上的一個控件,一個控件可以創建多個局部變量,labview中的全局變量是以獨立的vi文件形式存在的,這個vi文件只有前面板,誒有程序框圖,不能進行編程。一個全局變量的vi文件中可以包含多個不同數據類型的全局變量。
6、for循環輸入和輸出數組,默認情況下是數組元素逐個輸入,即按照索引輸入,每次輸入一個數組元素進行運算,然后循環,最后將這個數組一起輸出,這種情況不需要給循環次數賦值,循環次數就是數組的個數。如果需要將數組一次性完整輸入,則需要關閉索引功能,數組將一次性輸入,這種情況需要制定循環的次數,而且循環時是操作整個數組,而不是操作某一個數組元素。
7、移位寄存器,把上一次循環產生的結果移動到下一次循環的輸入。任何情況下都別忘了初始化移位寄存器,移位寄存器不受數據類型的限制,也沒有數量限制。
8、labview還提供了反饋節點來實現移位寄存器的功能,,使用反饋節點可以讓撐血更簡潔,易懂,使用方法是直接將輸出與輸入連接起來,這是就會自動出現一個反饋節點的符號,當然,和移位寄存器一樣,最好制定反饋節點的初值。
9、如果以索引方式輸入數組的話,while循環的次數并不會由數組大小控制,它仍由布爾值控制。當循環次數超過數組大小時,將以數組最后一個元素作為輸入。
10、labview在執行while循環時,如果用戶沒有給她設定循環時間間隔,那么它以cpu的極限速度運行。所以最好給while循環加上時間間隔。有兩種方法:一種是在每個循環中添加一個等待時間,只有在等待完畢后才有耐性下一個循環。另一種方法是使用定時循環。
11、條件結構中當false條件框中沒有數據與b連線時,程序是不可執行的。此時數據輸出端子是空心的。當條件結構為false時,沒有數據流入b,因此數據流不能正常流動,即程序是不可執行的,因此必須給該輸出端子賦值。但是如果在某種情況下,如果你不關心當case為false時b為何止的話,可以右擊,選擇use default if unwired選項。
12、當case結構的輸入端子不是布爾變量的時候,就等價于c語言中的switch語句了。defalut是必須的。
13、當多個事件發生時會形成事件隊列,知道每個事件對應的代碼都被執行為止,因此不會由事件被漏掉的情況。
14、事件結構中的事件欄中的某些事件,入mouse down左側有兩種箭頭:一種是綠色箭頭,另一種是紅色箭頭。其中綠色的notify事件,即當事件發生時通知程序運行該事件所對應的代碼。大部分情況下都是使用這種事件。紅色箭頭表示該事件是filter事件,即當事件發生時可以選擇是不是過濾該事件。
15、事件結構必須放在while循環中,否則沒有意義。
16、表格實際上即使一個字符串組成的二維數組,express table用于將數據快捷地轉換為表格
16、條件使能結構(labview 2010里沒有這種結構):環境變量只有在工程中才能使用。通過定義整個工程的環境變量,該工程下的vi都可以被這些環境變量控制。
17、公式節點的文本編程語言的語法與c語言非常接近,但是只能實現基本的邏輯流程和運算,不能對文件或設備進行操作或通信,沒有輸入輸出語句。
18、文件路徑是labview中一種特殊的數據類型,方便用于文件的操作。但是由于它也兼具了字符串的特征,因此可以用一個很簡單的vi函數實現它和字符串之間的轉換。
19、樹形控件編輯完后一定要右擊樹形控件并選擇make curent values default選項,否則重新打開vi后用戶千辛萬苦寫的東西就沒了。
20、注意要控制數組控件的屬性,就必須右擊數組控件的邊緣,而不能右擊內部元素控件的邊緣,若右擊內部元素的控件,將彈出內部元素控件的相關右鍵菜單,這一點要特別注意,因為數組的邊框和元素控件的邊框距離非常近。
21、參考簇必須與輸出的簇完全相同,可以直接右擊需要賦值的簇,選擇create/constant 選項來創建一個與輸出簇完全相同的常量簇作為參考簇。能轉換為數組的簇內部元素數據類型必須一致。把數組轉換為簇時,必須指定簇的元素數目,因為labview無法預料輸入數組元素的數目。右擊轉換函數的圖標,選擇cluster size選項指定簇的大小。
22、當error in攜帶有錯誤信息時,該函數就會不做任何操作,而是直接將錯誤傳遞給error out 輸出。包含一個status 布爾量代表是否有錯,code代表錯誤代碼,source 包含了錯誤的具體信息。
23、引用是一種特殊的數據類型,它包含了文件所有應該有的信息,如地址、類型、當前指針位置、寫允許還是讀允許等。
23、波形圖表中,對于二維數組,默認情況下它將輸入數組轉置,即每一列的數據當初一條一維數組曲線。對于波形數據類型,波形圖表只能顯示當前的輸入數據,并不能將新數據添加到曲線尾端。這是因為波形數據包含了橫坐標的數據,因此每次畫出的結構和上一次結果無關,等價于波形圖。
24、波形圖表刷新模式在屬性設置中,可用來改變刷新的方式,是帶狀圖表還是示波器圖表還是掃描圖。
25、Express VI中,labview提供了動態數據類型(ddt)來攜帶express vi的輸入和輸出信號。用戶可以將數值、波形或布爾數據與動態類型數據輸入端相連,也可以將動態數據類型顯示為圖形或數值。動態數據類型能夠攜帶單點,單通道(一維數組)或多通道(二維數組)的數據或波形數據類型的數據。普通vi不能直接輸入動態數據類型,因此需要進行數據轉換。
26、配置文件,標準的windows配置文件(INI文件)。它適合用來寫一些硬件配置信息。實際上也是一種文本文件。
27、表單文件實際上也是一種文本文件,只不過它的輸入數據格式可以是一維或二維數據數組,數據之間自動加入了tab符或換行符。它將數據數組轉化為ASCII碼存放在電子表格文件中,因此用它存儲數據數組非常方便。
數據記錄文件實際上是一種二進制文件,輸入的數據格式可以是任何數據類型。操作方法和二進制文件基本相同,只是增加了幾個功能,通過這些功能可以設定或讀取記錄條數。
xml文件實際上是一種文本文件,但是它的輸入可以是任何數據類型,它通過xml語法標記的方式將數據格式化,因此在寫入xml文件之前需要將數據轉換為xml文本。
lvm文件將動態類型數據按一定的格式存儲在文本文件中,它會在數據前加上一些信息頭。
TDM文件將動態類型的信號數據存儲為二進制文件,同時可以為每一個信號都添加一些附加信息。
TDMS文件時labview對TDM文件的改進。它比TDM文件讀寫速度更快,屬性定義的接口更簡單。TDM文件盒TDMS文件可以相互轉換,因此推薦使用TDMS文件代替TDM文件。
28、創建子vi有兩種方法:一種是鼠標點擊程序框圖和前面板右上角的圖標,另一種是選擇程序框圖中的某一段代碼,然后選擇編輯|創建子vi。
29、查看vi層次結構:點擊主菜單查看選項,選擇vi層次結構。
可重入的設置,子vi文件的 主菜單 文件|vi屬性選項,在vi屬性對象框中進入執行頁面,選擇可重入執行。當使用vi的可重入屬性后,每一處對該子vi的調用都會在內存中產生子vi的一個副本,副本之間相互獨立,因此這樣保證調用的并行性。
需要在調用子vi時能打開子vi前面板,只需要在主vi中右擊子vi圖標,選擇subvi node setup 選項就會彈出子vi調用屬性配置對話框。選擇show front panel when called 表示在調用子vi時打開子vi的前面板,suspend when called表示當子vi被調用時將彈出子vi前面板,而此時子vi處于掛起狀態,知道用戶單擊return to caller按鈕才返回到主vi,這個選項在調試的時候可以用到。
30、樹形控件的編輯必須通過屬性節點和方法節點才能實現。
31、用戶可以定義自己的錯誤代碼,代碼可以在5000~9999之間。
32、編輯菜單欄,在edit菜單中旋轉run-time menu選項會彈出菜單編輯器。菜單的響應程序還可以通過事件結構實現。它比通過get menu selection函數實現要更加簡潔明了,推薦使用事件結構實現。
33、右鍵快捷菜單,右擊控件選擇advanced| run-time shorcutl menu|edit選項。菜單項編輯完成后,就可以編輯用戶單擊該菜單項時運行的代碼。只能通過事件結構中該控件的 shortcut menu selection(user)事件來實現。若不希望某個VI中的自定義數據類型控件自動更新,則可以右擊該控件取消對auto-update from type def的選擇,需要時再手動更新update from type def。
34、自定義控件,右擊前面板的任何控件,選擇高級,自定義打開自定義控件邏輯窗口,可以編輯控件。選擇的時候在控制選板選擇控件里。
通過自定義數據類型可以將所有應用了的自定義控件與保存的自定義控件文件響關聯,即一旦自定義控件文件改變,相應的所有VI中該控件的應用實體都會跟著變化。自定義數據類型控件的編輯和自定義控件的編輯基本一樣,唯一不同的是在自定義控件編輯窗口的工具欄的下拉菜單中選擇tpye def。
自定義控制選板和函數選板:最好的方法是選擇菜單欄的工具|高級|編輯選板。
35、如果while循環對于速度要求不高,可以在while 循環中添加一個等待。從而降低cpu的利用率以利于其他部分程序的執行。對于用戶界面循環,50~100ms的延遲都是可以的。
對并行任務中相對不重要的任務,可以通過wait函數增加一個很小的延時,從而保證更重要的任務有更多的cpu資源。
使用事件結構來等待用戶的輸入,因為事件結構在等待時不會占用cpu資源。
在循環內盡量不要使用build array函數,因為這樣會重復調用labview內存管理器。更有效的方法是通過auto-indexing或replace array subset函數來增加數組內容。字符串和數組類似,因此也會面臨這個問題。
36、MathScript是面向數學的文本編程語言,它帶有交互式的窗口和可編程的接口,通過mathscript ,喜歡文本編輯的用戶可以再labview中編寫并執行matlab式的文本代碼并能與圖形化編程無縫結合。
37、labview中某些信號處理函數的頻率輸入端可能是歸一化頻率,而不是模擬頻率。歸一化頻率= 模擬頻率/采樣頻率,因此它的單位是周期數/每采樣。歸一化頻率的倒數就是信號每周期的采樣次數。
常用的信號調理方法有濾波、放大、加窗
窗函數的作用包括截斷信號、減小譜泄露和用于分離頻率相近的大賦值信號與小賦值信號。
38、傳感器感應物理信息并生成可測量的電信號。
信號調理:從傳感器得到的信號可能會很微弱,或者含有大量噪聲,或是非線性等,這種信號在進入采集卡之前必須經過信號調理。信號調理的方法主要是放大、衰減、隔離,多路復用、濾波、激勵和數字信號調理。
39、在系統設計時,清晰的層次結構、模塊化設計、通用的接口和組件等都是增強系統靈活性和可擴展性的重要手段。
可重用性需要我們在編程中盡量去抽象那些通用的功能和實現方法。這些模塊可以再一個工程中重復使用,也可以在多個工程中重復使用。
可讀性,必須為代碼添加充分的注釋,并配合詳細的文檔。其中可能包括功能、實現原理、結構、編程思想和接口等。
可維護性對于長期穩定運行的軟件至關重要。一方面系統在長期運行過程中可能會不斷增加數據或是遇到各種可能的錯誤,因此必須有簡單的方法來掛歷和處理不斷增加的數據。此外,系統必須有良好的容錯能力和回復能力。另一方面是指系統可能由于環境的變化或用戶需求的變化需要改變。
評論