<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > labview-tcp通信總結

          labview-tcp通信總結

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

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

          本文引用地址:http://www.ex-cimer.com/article/201612/334159.htm

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

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

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

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

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

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

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

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

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

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

          12、當case結構的輸入端子不是布爾變量的時候,就等價于c語言中的switch語句了。defalut是必須的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          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ù)轉換。

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

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

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

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

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

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

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

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

          29、查看vi層次結構:點擊主菜單查看選項,選擇vi層次結構?! ?/p>

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

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

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

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

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

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

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

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

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

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

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

            使用事件結構來等待用戶的輸入,因為事件結構在等待時不會占用cpu資源。

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

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

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

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

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

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

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

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

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

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

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



          關鍵詞: labview-tcp通信總

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();