版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、LabVIEW交流,,交流的議題和針對的對象,LabVIEW和圖形化編程程序設(shè)計中的一些常用方法和注意事項程序設(shè)計的幾種模板編程風(fēng)格一些應(yīng)用案例有用的資源主要針對的是已經(jīng)使用過LabVIEW的同志只是討論關(guān)于LabVIEW軟件,不涉及硬件,LabVIEW和圖形化編程,LabVIEW是數(shù)據(jù)流驅(qū)動的編程語言是一種編譯語言自動多線程的,工程管理器,工程文件的樹形管理硬件目標(biāo)主機(jī)的管理VI的交叉連接Library的管
2、理LabVIEW類的管理程序的發(fā)布,順序結(jié)構(gòu),盡量利用LabVIEW的數(shù)據(jù)流少采用順序結(jié)構(gòu),選擇結(jié)構(gòu),,禁用結(jié)構(gòu),程序框圖禁用結(jié)構(gòu)條件禁用結(jié)構(gòu),循環(huán)結(jié)構(gòu),While和For循環(huán)在While循環(huán)中必須加入等時While循環(huán)是Do…While當(dāng)知道循環(huán)次數(shù)時使用For循環(huán)自動索引善用移位寄存器優(yōu)化代碼,事件結(jié)構(gòu),事件是一種異步的信號來源是用戶界面、外部I/O或程序代碼相當(dāng)于一種“中斷”,需要時才響應(yīng)常與Wile一起使
3、用,多用于UI的編程,,事件類型,,Control,This VI,Application,事件類型,應(yīng)用程序事件這類事件主要反映整個應(yīng)用程序狀態(tài)的變化,例如,程序是否關(guān)閉等VI事件這類事件反映當(dāng)前VI狀態(tài)的改變,例如,當(dāng)前VI是否選擇了菜單中的某一項等動態(tài)事件用于處理用戶自己定義的或在程序中臨時生成的事件控件事件是最常用的一種事件,用于處理某個控件狀態(tài)的改變,例如,控件值的改變或鼠標(biāo)鍵盤的操作,事件種類,消息事件
4、是在LabVIEW處理完用戶操作之后發(fā)出的事件過濾事件是在LabVIEW處理用戶操作之前發(fā)出的事件,事件結(jié)構(gòu)使用時應(yīng)注意的問題,每個事件中代碼執(zhí)行的時間不能太長Timeout事件的使用,,定時函數(shù)的使用,使用定時的目的控制代碼執(zhí)行的速率降低CPU占用率Wait給它一個輸入?yún)?shù)n,每次程序執(zhí)行到它的時候,它就停下來,等待n毫秒,再繼續(xù)運(yùn)行后續(xù)程序Wait Until Next給它一個輸入?yún)?shù)n,每
5、次程序執(zhí)行到它的時候,會暫停在這里,Wait Until Next函數(shù)每隔n毫秒醒來一次,醒來后再繼續(xù)運(yùn)行后續(xù)程序,使用定時函數(shù)時的注意事項,Wait函數(shù)每次運(yùn)行到它才開始計時一次,單次的誤差會被累積。假如每次誤差四五毫秒,迭代五次誤差可能就達(dá)到十幾毫秒了。Wait Until Next函數(shù)不需要再每次調(diào)用的時候計算延時。假設(shè)Wait Until Next函數(shù)從0時間開始計時,那么程序已開始,它就可以知道自己每一次醒來的時間分
6、別應(yīng)當(dāng)是100ms,200ms,300ms…。假如誤差是± 4ms,那么它實(shí)際每次醒來的時間就是100 ± 4ms,200 ± 4ms…,這個誤差不會被累積,但該函數(shù)不能確定第一次醒來的時間,定時函數(shù)的并行與串行執(zhí)行,,全局變量,優(yōu)點(diǎn)很簡單的就能實(shí)現(xiàn)不同進(jìn)程間的數(shù)據(jù)訪問缺點(diǎn)不利于代碼的可讀性安全性低效率低存在競爭狀態(tài),功能型全局變量,用一個不可重入的VI實(shí)現(xiàn)解決了競爭問題封裝了內(nèi)部
7、數(shù)據(jù),控制訪問,VI的重入,考慮子VI在一個程序中多次調(diào)用希望得到不同的運(yùn)行結(jié)果,,子VI,主VI,執(zhí)行左邊的例子看看運(yùn)行的結(jié)果是什么?,傳值與傳引用,傳值會有數(shù)據(jù)拷貝的問題,內(nèi)存使用大傳引用可以避免數(shù)據(jù)拷貝,但安全性不如傳值,尤其在多線程編程的情況下如果只是簡單的應(yīng)用直接傳值,當(dāng)有占用內(nèi)存較大的數(shù)據(jù)類型時建議使用傳引用的方式,動態(tài)調(diào)用并執(zhí)行VI,用于在一個VI中彈出多個VI界面用于后臺動態(tài)加載VI,內(nèi)存優(yōu)化,VI內(nèi)存占用包括四
8、個部分:前面板、框圖、代碼和數(shù)據(jù)把一個復(fù)雜VI分解為數(shù)個子VI在沒有必要時不要設(shè)置子VI的重入屬性盡量避免開啟子VI前面板,例如,屬性節(jié)點(diǎn)的使用會將它的前面板調(diào)入內(nèi)存,可以使用局部變量代替打開的資源,在使用完畢后必須關(guān)閉,如打開的文件句柄編程時盡量使用緩存重用,子面板技術(shù),子面板就是一個容器,在主VI的前面板中顯示子VI前面板的內(nèi)容,并允許和子VI的控件交互,程序設(shè)計中的幾種模板,對程序設(shè)計能更好的架構(gòu)有統(tǒng)一的設(shè)計框架提高
9、代碼的可讀性容易發(fā)現(xiàn)問題,便于調(diào)試,狀態(tài)機(jī),,狀態(tài)機(jī),,生產(chǎn)者/消費(fèi)者模式,,狀態(tài)機(jī)+生產(chǎn)者/消費(fèi)者,,LabVIEW面向?qū)ο缶幊?,LabVIEW的類數(shù)據(jù)是自定義的控件方法是VI必須在Project中存在,Class: 是數(shù)據(jù)(簇)和方法(VI)的集合Object: 是類的實(shí)例化,編程風(fēng)格,前面板1 選擇合適的數(shù)據(jù)類型,進(jìn)行合理布局2 按照從上到下、從左到右的原則布置界面3 對于一些工業(yè)應(yīng)用要少采用對話框4
10、限制前面板顯示信息的數(shù)量5 保持控件風(fēng)格(大小和字體)的一致性6 定義合適的標(biāo)簽名7 對一些重要的控件要突出顯示,并定義Tip文本8 要善用Ring和Enum控件,編程風(fēng)格,程序框圖1 采用SubVI使程序模塊化2 按照從左到右的方式布置輸入/輸出控件和代碼3 對于難理解的代碼要添加注釋4 盡量添加Error輸入/輸出端5 對于比較長的連線要添加說明6 使用4X2X2X4的連線端模式,并配合背景色
11、說明VI的分層7 添加VI的Description,大工程的應(yīng)用案例,,大工程的應(yīng)用案例,,CERN Uses NI LabVIEW Software and PXI Hardware to Control the World’s Largest Particle Accelerator,Application: FPGA-based motion control system for intercepting misguided
12、or unstable particle beams.Challenge: Measuring and controlling, in real time, the position of bulk components to absorb energetic particles out of the nominal beam core with high reliability and accuracy at the world’
13、s most powerful particle accelerator, the Large Hadron Collider (LHC).Products: NI LabVIEW, LabVIEW Real-Time and LabVIEW FPGA modules, R Series data acquisition modules, NI SoftMotion controllers, and PXI/CompactPCI
14、Key Benefit: Custom motion control using small, rugged controllers for approximately 600 stepper motors with millisecond synchronization.,“We selected the LabVIEW and PXI solution for the deployment platform due to the s
15、mall size, ruggedness, and cost savings over the traditional VME and programmable logic controller-based model.”– Roberto Losito, CERN,大工程的應(yīng)用案例,,有用的一些資源,論壇:http://formus.ni.comNI Develper Zonehttp://www.ni.com/china/
16、labviewtipshttp://www.gsdzone.nethttp://www.ni.com/webcasts,問題,RS232、485,GPIB等各種傳輸方式的速度比較如何利用LabVIEW調(diào)用dll,使用的時候有什么需要注意的內(nèi)容如何獲得當(dāng)前時間相對于時間起點(diǎn)(LabVIEW里面規(guī)定的時間起點(diǎn))的絕對數(shù)值(秒)機(jī)器視覺相關(guān)方面的應(yīng)用LabVIEW的響應(yīng)速度和效率,普通臺式機(jī)和PXI的差別LabVIEW從9版本到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于labview的交流智能負(fù)載研究
- labview的課程設(shè)計---基于labview的交流參數(shù)測量虛擬儀器
- 基于LabVIEW的交流電力測功系統(tǒng)的研究.pdf
- labview 第一章 labview入門
- labview外文翻譯
- LABVIEW.zip
- LABVIEW.zip
- labview課程設(shè)計---基于labview的計算器設(shè)計
- labview課程設(shè)計
- Labview學(xué)習(xí)資料.pdf
- 從零開始學(xué)labview——基于labview85的入門介紹
- labview入門教程
- labview軟件編程規(guī)范
- 計算器labview
- labview課程設(shè)計報告---基于labview智能交通燈系統(tǒng)設(shè)計
- labview課程設(shè)計報告
- labview 入門和簡單測量
- 虛擬儀器labview教材
- labview從入門到精通
- Labview課程設(shè)計.doc
評論
0/150
提交評論