ni培訓(xùn)中文版LabVIEW核心教程二練習(xí)手冊(cè)_第1頁(yè)
ni培訓(xùn)中文版LabVIEW核心教程二練習(xí)手冊(cè)_第2頁(yè)
ni培訓(xùn)中文版LabVIEW核心教程二練習(xí)手冊(cè)_第3頁(yè)
ni培訓(xùn)中文版LabVIEW核心教程二練習(xí)手冊(cè)_第4頁(yè)
ni培訓(xùn)中文版LabVIEW核心教程二練習(xí)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩100頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、LabVIEWTM練習(xí)手冊(cè)(二)版本 20092010 年 2 月325293A-0118 19932010 National Instruments Corporation.。根據(jù)法、National Instruments Corporation 事先同意、本物不得以(包括電子或機(jī)械形式)進(jìn)行全部或部分或、包括影印、錄制、于任何信息檢索系統(tǒng)中、或翻譯。National Instruments 公司尊重他方的知識(shí)、也懇請(qǐng)的用戶能給予同樣的尊重。 NI受和其他知識(shí)法律的保護(hù)。當(dāng) NI生產(chǎn)被用來(lái)生產(chǎn)屬于他方的該資料。或其他資料時(shí)、請(qǐng)確保您僅可在符合任何有效證條款或其他法律限制的前提下、以NIFo

2、r components used in USI (XerC+, ICU, HDF5, b64, Stingray, and STLport), the following copyright stipulations apply. For a listing ofers, refer to either the US ICopy r igh t s .or the Copyrights topic in your software.the conditions and diXerC+. This product includes softwaret was developed by the

3、Apache Software Foundation () .Copyright 1999 The Apache Software Foundation.s.ICU. Copyright 19952009ernational Business Machines Corporation and others.HDF5. NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilitiess.Copyright 1998, 1999, 2000, 2001, 2003 by thof Trustees of the Univer

4、sity of Illinois.s.b64. Copyright 20042006, Matthew Wilson and Synesis Software.s.Stingray. This software includes Stingray software developed by the Rogue Wave Software diviof Quovadx, Inc.Copyright 19952006, Quovadx, Inc.s.STLport. Copyright 19992003商標(biāo)National IFomitchev和 LabVIEW 為 National Instru

5、ments Corporation 的商標(biāo)。有關(guān) National Instruments 商標(biāo)的詳細(xì)信息/ lega l 上的 Terms of Use 部分。見(jiàn)此處所提及的其它產(chǎn)品和公司名稱為其各自公司的商標(biāo)或商業(yè)名稱。National Instruments Alliance Partn合伙或合資關(guān)系。rogram 的成員為獨(dú)立于National Instruments 的商業(yè)實(shí)體、與 National Instruments 無(wú)、專利權(quán)關(guān)于 National Instruments 產(chǎn)品和技術(shù)的專利權(quán)、見(jiàn)pa ten ts 查看 National Instruments Patent

6、Notice。中的幫助 專利信息、光盤上的 pa ten t s . tx t 文檔、或登錄/全球技術(shù)支持及產(chǎn)品信息/ c h i n aNational Instruments 總部11500 North Mopac ExpresswayAustin, Texas 78759-3504USA: 512 683 0100全球辦事處澳大利亞 1800 300 800, 奧地利 43 662 457990-0, 巴西 55 11 3262 3599, 比利時(shí) 32 (0) 2 757 0020, 波蘭 48 22 328 90 10,丹麥 45 45 76 26 00, 德國(guó) 49 (0) 89

7、7413130, 俄羅斯 7 495 783 6851, 法國(guó) 01 57 66 24 24, 芬蘭 358 (0) 9 725 72511,韓國(guó) 82 02 3451 3400, 荷蘭 31 (0) 348 433 466,800 433 3488, 捷克420 224 235 774, 黎巴嫩 961 (0) 1 33 28 28,1800 887710, 墨西哥 01 800 010 0793, 南非 27 0 11 805 8197, 挪威 47 (0) 66 90 76 60, 葡萄牙 351 210 311 210,0120-527196, 瑞典 46 (0) 8 587 895

8、00,41 56 2005151, 斯洛文尼亞 386 3 425 42 00,662 278 6777, 新西蘭 0800 553 322,886 02 2377 2222, 土耳其 90 212 279 3031, 西班牙 34 91 640 0085, 新加坡以色列 972 3 6393737, 意大利 39 02 41309277,91 80 41190000, 英國(guó) 44 0 1635 523545, 中國(guó) 86 21 5050 9800如需關(guān)于技術(shù)支持的信息,請(qǐng)查閱 “ 補(bǔ)充信息與資源 ” 附錄。如需對(duì) National Instruments 文檔提出任何意見(jiàn)或建議,Nation

9、al Instruments/ in fo 并輸入代碼 feedbac k 。目錄學(xué)員指南A.B.C.D.E.第 2 課同步技術(shù)概述vi之前的準(zhǔn)備工作vi. vii學(xué)習(xí)本安裝目標(biāo)vii的行文規(guī)范viii練習(xí) 2-1第 3 課事件編程練習(xí) 3-1練習(xí) 3-2第 4 課錯(cuò)誤處理練習(xí) 4-1第 5 課控制用戶界練習(xí) 5-1練習(xí) 5-2練習(xí) 5-3第 6 課文件 I/O 技術(shù)練習(xí) 6-1練習(xí) 6-2第 7 課改進(jìn)現(xiàn)有 VI練習(xí) 7-1第 8 課概念:比較隊(duì)列和局部變量2-1概念:事件結(jié)構(gòu)練習(xí)3-1創(chuàng)建打印隊(duì)列控制臺(tái)3-4使用錯(cuò)誤處理修改打印控制臺(tái) VI4-1顯示溫度和上下限值5-1自定義 VI 窗口5

10、-5設(shè)置曲線名5-9寫入位圖文件 VI6-1TDMS 文件6-7概念:重構(gòu) VI7-1創(chuàng)建和發(fā)布應(yīng)用程序練習(xí) 8-1練習(xí) 8-2附錄 A使用變量練習(xí) A-1練習(xí) A-2練習(xí) A-3準(zhǔn)備待發(fā)布的文件8-1創(chuàng)建獨(dú)立的應(yīng)用程序8-6局部變量 VIA-1全局?jǐn)?shù)據(jù)項(xiàng)目. A-7VIA-12概念: National Instruments Corporatioi面目錄附錄 B配置硬件附錄 C補(bǔ)充信息與資源課程評(píng)價(jià)iv/china學(xué)員指南非常感謝您LabVIEW(二)課程套件。在您完成中的練習(xí)后,就可以開(kāi)始開(kāi)發(fā)應(yīng)用程序了。在為期二天的面授課程 LabVIEW(二)中,將使用本手冊(cè)和配套。如在 90 天內(nèi)參加

11、培訓(xùn),可將時(shí)間表、課程提綱、培訓(xùn)中心和課程training。的費(fèi)用抵扣相應(yīng)的培訓(xùn)費(fèi)用。關(guān)于課程的詳細(xì)信息/注關(guān)于的更新和修正信息,/info,輸入信息碼core2 查詢。LabVIEW(二)是 NI 培訓(xùn)系列課程中的一門,該系列課程可以幫助您熟練掌握 LabVIEW 和順利通過(guò) NI LabVIEW 認(rèn)證。下圖為 LabVIEW 培訓(xùn)系列課程介紹。關(guān)于 NI 認(rèn)證的信息見(jiàn)/training。 National Instruments Corporationv初級(jí)用戶中級(jí)用戶高級(jí)用戶課程管理LabVIEW的工程系統(tǒng)設(shè)計(jì)LabVIEW高級(jí)架構(gòu)認(rèn)證其它課程*是幫助您高效實(shí)現(xiàn)LabVIEW性能的入門首

12、選。LabVIEW儀器控制LabVIEW FPGALabVIEW互連接口LabVIEW機(jī)器視覺(jué)模塊化儀器系列LabVIEW性能 LabVIEW Real-TimeLabVIEW程序架構(gòu)師LabVIEW開(kāi)發(fā)工程師LabVIEW助理開(kāi)發(fā)工程師LabVIEW(三)LabVIEW(一)LabVIEW第 1 課學(xué)員指南A.概述通過(guò)本手冊(cè)熟悉 LabVIEW 的編程理論、技巧、特性、 VI 和函數(shù),學(xué)習(xí)創(chuàng)建測(cè)試測(cè)量、閱讀本、儀器控制、數(shù)據(jù)、測(cè)量分析和生成報(bào)表等應(yīng)用程序。前請(qǐng)先熟悉 Windows 和使用流程圖或程序框圖編寫算法的方法,請(qǐng)先學(xué)習(xí) LabVIEW包括若干節(jié)課。(一)或具有同等的編程經(jīng)驗(yàn)。和練習(xí)

13、手冊(cè)手冊(cè)的每節(jié)課由下列部分組成:本課的學(xué)習(xí)目的和學(xué)習(xí)內(nèi)容的介紹本課的概述用于測(cè)試和強(qiáng)化課程概念和技巧的總結(jié)測(cè)驗(yàn)練習(xí)手冊(cè)的每節(jié)課由下列部分組成:鞏固課程的練習(xí)有些課程還包含一些有一定難度的選作練習(xí)或一套附加練習(xí)。時(shí)間允許的情況下,學(xué)員可以選作這些練習(xí)。某些練習(xí)需要使用下列 NI 硬件產(chǎn)品:連接DAQ 信號(hào)附件的即插式多功能數(shù)據(jù)(DAQ) 設(shè)備, DAQ 信號(hào)附件包含溫度傳感器、函數(shù)發(fā)生器和 LED 顯示燈。即使無(wú)法獲取上述硬件,您仍可以完成中的練習(xí)。包含不使用硬件完成練習(xí)的相關(guān)說(shuō)明。需要使用硬件的練習(xí)使用圖標(biāo)標(biāo)注,如左圖所示。您也可以使用其它硬件替代上述硬件設(shè)備。例如,也可將 NI 的其它 DA

14、Q 設(shè)備 (如函數(shù)發(fā)生器)連接到信號(hào)源。B.學(xué)習(xí)本之前的準(zhǔn)備工作在學(xué)習(xí)本之前,請(qǐng)確保如下幾條:操作系統(tǒng)是Windows 2000或更高版本;本統(tǒng)最適用于Windows XP操作系多功能 DAQ 設(shè)備在 Measurement & Automation Explorer (MAX) 中配置為“dev1”。DAQ 信號(hào)附件和線纜LabVIEW 專業(yè)版開(kāi)發(fā)系統(tǒng) 2009 或更高版本DAQmx 8.9.5 或更高版本LabVIEW(二)光盤包含下列文件:vi/china文件夾名稱說(shuō)明Ex e r c is e s包含本中需要用到的 VI 的文件夾So l u t ion s包含所有練習(xí)的解答第 1 課

15、學(xué)員指南C. 安裝請(qǐng)按以下步驟安裝:電腦光驅(qū)。1.2.將光盤安裝 Exercises 和 Solutions 文件至目標(biāo)路徑。D.目標(biāo)本的目標(biāo)是幫助您掌握以下內(nèi)容:應(yīng)用使用通知器、隊(duì)列和事件的常用設(shè)計(jì)模型有效地使用事件編程通過(guò)編程控制用戶界面對(duì)象評(píng)估二進(jìn)制文件 I/O 格式,并將其用于應(yīng)用程序修改現(xiàn)有的代碼,以增強(qiáng)可用性準(zhǔn)備、構(gòu)建和部署獨(dú)立的應(yīng)用程序在學(xué)習(xí)本的過(guò)程中,將創(chuàng)建一個(gè)項(xiàng)目,其中的 VI 將會(huì)應(yīng)用到以上這些概念。每個(gè)單獨(dú)的 VI 用于說(shuō)明 LabVIEW 的特定概念或功能,所有 VI 共同了本課程中將創(chuàng)建的一個(gè)大型項(xiàng)目。本課程不包括以下內(nèi)容:LabVIEW(一)中涉及到的編程方法每個(gè)內(nèi)

16、置 VI、函數(shù)或者對(duì)象;LabVIEW 幫助中未提及的 LabVIEW 功能,請(qǐng)查閱為學(xué)員開(kāi)發(fā)一個(gè)完整的應(yīng)用程序;單擊幫助 查找范例,使用 “NI 范例查找器” 應(yīng)用并整合范例 VI 至學(xué)員自創(chuàng)的 VI 中 National Instruments Corporationvii第 1 課學(xué)員指南E.的行文規(guī)范本的行文規(guī)范如下: 表示通過(guò)嵌套菜單和框選項(xiàng)作出最終選擇。例如,文件 頁(yè)面設(shè)置 選項(xiàng),表示先下拉文件菜單,再選擇頁(yè)面設(shè)置,然后在框中選擇選項(xiàng)。該提示符號(hào)提醒用戶注意參考信息。該提示符號(hào)提醒用戶注意重要信息。該警告符號(hào)提醒您采取預(yù)防措施以防受傷、數(shù)據(jù)丟失或系統(tǒng)。該提示符號(hào)表明練習(xí)中需要用到式

17、 DAQ 設(shè)備。粗體粗體文本表示中的必選項(xiàng) (例如,菜單和框選項(xiàng))。粗體文本還表示框的一部分、菜單名稱和選參數(shù)名稱、前面板上的控件和按鈕、板名稱??颉⑿斌w斜體文本表示變量、強(qiáng)調(diào)、交叉或重要概念介紹。同時(shí)也可作為占位符,表示須由用戶填寫的文字或數(shù)值。等寬字體文本表示用戶必須從鍵盤輸入的文字、部分代碼、程序范例和語(yǔ)法范例。該字體也用于對(duì)磁盤驅(qū)動(dòng)器名稱、路徑、目錄、程序、子程序、設(shè)備名、等寬字體函數(shù)、運(yùn)算、變量、文件名和擴(kuò)展名名。等寬粗體文本表示在計(jì)算機(jī)屏幕上自動(dòng)顯示的消息和響應(yīng)。該字體也用于強(qiáng)調(diào)與其它范例不同的代碼行。等寬粗體viii/china2同步技術(shù)練習(xí) 2-1目標(biāo)概念:比較隊(duì)列和局部變量在

18、本練習(xí)中,運(yùn)行并查看生產(chǎn)者 / 消費(fèi)者設(shè)計(jì)模式 VI,它分別使用局部變量和隊(duì)列將生產(chǎn)者循環(huán)生成的數(shù)據(jù)傳輸至消費(fèi)者循環(huán)。概述1.打開(kāi)LabVIEW Core 2Queues versus Local Variables中的Queuesvs Local Variables.vi。 VI 的前面板如圖2-1 所示。圖 2-1. 隊(duì)列與局部變量比較的前面板運(yùn)行 VI。生產(chǎn)者循環(huán)生成數(shù)據(jù),并通過(guò)局部變量和隊(duì)列將數(shù)據(jù)傳遞至每個(gè)消費(fèi)者循環(huán)。2. National Instruments Corporation2-1第 2 課同步技術(shù)3.顯示并檢查 VI 的程序框圖。圖 2-2. 隊(duì)列與局部變量比較的程序框圖

19、創(chuàng)建隊(duì)列在生產(chǎn)者循環(huán)左側(cè)放置一個(gè)“ 獲取隊(duì)列” 函數(shù)以創(chuàng)建隊(duì)列。連線“數(shù)據(jù)” 字符串常量至“ 獲取隊(duì)列” 函數(shù)的名稱 (未命名)輸入端,為待獲取或創(chuàng)建的隊(duì)列分配名稱。連線 “ 數(shù)據(jù)類型 ” 數(shù)值常量至 “ 獲取隊(duì)列輸入端,指定隊(duì)列包含數(shù)據(jù)的類型。” 函數(shù)的 “ 元素?cái)?shù)據(jù)類型 ”使用隊(duì)列傳遞生產(chǎn)者循環(huán)生成的數(shù)據(jù)生產(chǎn)者循環(huán)的“ 元素入隊(duì)列” 函數(shù)將“ 正弦波” 子 VI 生成的數(shù)據(jù)元素添加至隊(duì)列后端。從隊(duì)列中移出來(lái)自于生產(chǎn)者循環(huán)的數(shù)據(jù),并進(jìn)入消費(fèi)者循環(huán)。隊(duì)列消費(fèi)者循環(huán)中的“ 元素出隊(duì)列” 函數(shù)將從隊(duì)列前端刪除元素,并在隊(duì)列消費(fèi)者循環(huán)的波形圖表中輸出該元素。隊(duì)列消費(fèi)者循環(huán)使用“ 獲取隊(duì)列狀態(tài)” 函數(shù)

20、指示當(dāng)前隊(duì)列所包含的元素個(gè)數(shù)。要處理這些數(shù)據(jù)元素,必須保證隊(duì)列消費(fèi)者循環(huán)處理速度高于生產(chǎn)者循環(huán),或其可在生產(chǎn)者循環(huán)停止運(yùn)行后繼續(xù)處理數(shù)據(jù)。2-2/china第 2 課同步技術(shù)等待隊(duì)列清空VI 停止運(yùn)行前,層疊式順序結(jié)構(gòu)中的 While 循環(huán)將等待隊(duì)列清空。此 While 循環(huán)稱為隊(duì)列的等待循環(huán)。隊(duì)列的等待循環(huán)使用“ 獲取隊(duì)列狀態(tài)” 函數(shù)返回隊(duì)列的當(dāng)前狀態(tài)信息(例如,當(dāng)前隊(duì)列的元素個(gè)數(shù))。連線“ 等于 0? ” 函數(shù)至隊(duì)列的等待循環(huán)的停止條件接線端,檢查隊(duì)列是否已清空。隊(duì)列的等待循環(huán)右側(cè)的“隊(duì)列” 函數(shù)并銷毀隊(duì)列的。隊(duì)列” 函數(shù)右側(cè)的“ 簡(jiǎn)單錯(cuò)誤處理器” 函數(shù)將在程序執(zhí)行結(jié)束“后生成的錯(cuò)誤。使用

21、局部變量的消費(fèi)者循環(huán)生產(chǎn)者循環(huán)生成正弦波數(shù)據(jù)并將其寫入局部變量。使用局部變量的消費(fèi)者循環(huán)周期性地從同一局部變量中正弦波數(shù)據(jù)。使用局部變量的消費(fèi)者循環(huán)中的點(diǎn)區(qū)別 VI 輸出丟失點(diǎn)的數(shù)量或重復(fù)切換至 VI 前面板。點(diǎn)的數(shù)量。1.選擇使用局部變量的消費(fèi)者循環(huán)的循環(huán)時(shí)間,并觀察消費(fèi)者循環(huán)波形圖表以及丟失點(diǎn)數(shù)顯示控件的生成結(jié)果。確保循環(huán)時(shí)間 (ms) 選擇等同生產(chǎn)者循環(huán),觀察使用局部變量的生產(chǎn)者和消費(fèi)者循環(huán)的波形圖表。競(jìng)爭(zhēng)狀態(tài)將導(dǎo)致丟失點(diǎn)或重復(fù)讀點(diǎn)。在循環(huán)時(shí)間 (ms) 控件的下拉菜單中選擇最高速度,觀察局部變量消費(fèi)者循環(huán)的波形圖表。此時(shí)將產(chǎn)生競(jìng)爭(zhēng)狀態(tài) (即局部變量重復(fù)數(shù)據(jù)),因?yàn)閿?shù)據(jù)處理的速度高于數(shù)據(jù)

22、生成的速度。同一在循環(huán)時(shí)間 (ms) 控件的下拉菜單中選擇 1/2 生產(chǎn)者,觀察局部變量消費(fèi)者循環(huán)的波形圖表。此時(shí)將產(chǎn)生競(jìng)爭(zhēng)狀態(tài),因?yàn)閿?shù)據(jù)生成的速度高于處理速度。局部變量未某些數(shù)據(jù)之前,數(shù)據(jù)已發(fā)生改變。選擇循環(huán)時(shí)間 (ms) 下拉菜單中余下的選項(xiàng),并觀察獲取的數(shù)據(jù)。2.停止 VI。使用局部變量在 2 個(gè)非同步并行循環(huán)間傳遞數(shù)據(jù)將導(dǎo)致競(jìng)爭(zhēng)狀態(tài)。其產(chǎn)生原因如下:生產(chǎn)者循環(huán)向局部變量中寫入數(shù)據(jù),而消費(fèi)者循環(huán)周期性的從同一局部變量中數(shù)據(jù)因?yàn)椴⑿醒h(huán)未同步,即使數(shù)據(jù)未被仍可寫入新數(shù)據(jù),反之亦然。從而導(dǎo)致數(shù)據(jù)或數(shù)據(jù)覆蓋。 National Instruments Corporation2-3第 2 課同步

23、技術(shù)使用隊(duì)列的消費(fèi)者循環(huán)1.運(yùn)行 VI。選擇使用隊(duì)列的消費(fèi)者循環(huán)波形圖表的循環(huán)時(shí)間,觀察消費(fèi)者循環(huán)波形圖表以及隊(duì)列中元素?cái)?shù)量顯示控件的生成結(jié)果。確保循環(huán)時(shí)間 (ms) 選擇等同生產(chǎn)者循環(huán),觀察隊(duì)列中元素?cái)?shù)量顯示控件的生成值。該值應(yīng)保持為零。即使用隊(duì)列時(shí),生產(chǎn)者與消費(fèi)者循環(huán)執(zhí)行速度一致時(shí)不會(huì)丟失數(shù)據(jù)。在循環(huán)時(shí)間 (ms) 控件的下拉菜單中選擇最高速度,觀察隊(duì)列中元素?cái)?shù)量控件的值。該值應(yīng)保持為零。對(duì)于隊(duì)列,消費(fèi)者循環(huán)執(zhí)行速度高于生產(chǎn)者循環(huán)時(shí)不會(huì)丟失數(shù)據(jù)。在循環(huán)時(shí)間 (ms) 控件的下拉菜單中選擇 1/2 生產(chǎn)者,觀察隊(duì)列中元素?cái)?shù)量控件的值。隊(duì)列的元素?cái)?shù)量將增加。您需要在隊(duì)列點(diǎn)數(shù)到達(dá)最大值之前處理堆

24、積的數(shù)據(jù)元素,以防止發(fā)生數(shù)據(jù)丟失。選擇循環(huán)時(shí)間 (ms) 控件下拉菜單中其余可用選項(xiàng),并觀察使用隊(duì)列的生產(chǎn)者循環(huán)和消費(fèi)者循環(huán)之間的數(shù)據(jù)傳輸同步性。2.停止 VI。當(dāng)使用隊(duì)列的生產(chǎn)者循環(huán)和消費(fèi)者循環(huán)以相同速度執(zhí)行時(shí),隊(duì)列中元素不會(huì)發(fā)生變化。如使用隊(duì)列的消費(fèi)者循環(huán)執(zhí)行速度較慢,隊(duì)列將快速積累數(shù)據(jù)。此時(shí)生產(chǎn)者循環(huán)必須等待消費(fèi)者循環(huán)移出數(shù)據(jù)元素。如使用隊(duì)列的消費(fèi)者循環(huán)執(zhí)行速度較快,隊(duì)列將快速被清空。此時(shí)消費(fèi)者循環(huán)必須等待生產(chǎn)者循環(huán)填充數(shù)據(jù)元素。因此隊(duì)列可同步 2 個(gè)獨(dú)立并行循環(huán)間的數(shù)據(jù)傳 輸,并可避免數(shù)據(jù)丟失或重復(fù)。3.關(guān)閉 VI。不要保存對(duì) VI 所做的更改。練習(xí) 2-1 結(jié)束2-4/china第

25、2 課同步技術(shù)筆記 National Instruments Corporation2-5第 2 課同步技術(shù)筆記2-6/china3事件編程練習(xí) 3-1目標(biāo)概念:事件結(jié)構(gòu)練習(xí)練習(xí) VI 的事件結(jié)構(gòu)操作。概述使用并修改包含事件結(jié)構(gòu)的 VI。1.打開(kāi) NI 范例查找器。 單擊幫助 查找范例。打開(kāi)新事件處理器范例。2. 順序創(chuàng)建用戶界面 獲取用戶輸入 常規(guī),雙擊新事件處理器3.4.5.6.7.8.9.關(guān)閉 NI 范例查找器。啟用程序框圖上的顯示執(zhí)行過(guò)程按鈕。運(yùn)行 VI。單擊前面板按鈕并觀察 VI 運(yùn)行情況。停止 VI。禁用顯示執(zhí)行過(guò)程。修改 VI,使其響應(yīng)前面板中新控件的值改變事件。切換至 VI 前

26、面板。創(chuàng)建前面板上按鈕的副本。將按鈕文本和更改為新建按鈕。右鍵單擊新建按鈕,確認(rèn)按鈕的機(jī)械動(dòng)作為切換至 VI 的程序框圖。時(shí)觸發(fā)。右鍵單擊事件結(jié)構(gòu)邊框,從快捷菜單選擇添加事件分支打開(kāi)編輯事件框。 National Instruments Corporation3-1第 3 課事件編程在事件源一欄選擇新建按鈕,事件一欄選擇值改變。如圖3-1 所示。圖 3-1. 新建按鈕值改變事件單擊確定創(chuàng)建新的事件結(jié)構(gòu)分支。在“ 新鍵按鈕” 事件分支中放置一個(gè)新建按鈕控件。在“新建按鈕”事件分支中添加一個(gè)“單按鈕框”函數(shù),連線一個(gè)字符串常量至消息輸入端。設(shè)置字符串常量?jī)?nèi)容為新建事件分支。穿過(guò)事件分支連線“ 時(shí)域

27、波形” 數(shù)據(jù)。連線假常量至隧道。運(yùn)行 VI,單擊新建按鈕。此時(shí)彈出一個(gè)分支??颍蛳樾陆ㄊ录V?VI。3-2/china第 3 課事件編程10.修改事件結(jié)構(gòu),添加一個(gè)過(guò)濾事件以放棄前面板關(guān)閉事件。右鍵單擊事件結(jié)構(gòu),從快捷菜單中選擇添加事件分支打開(kāi)編輯事件對(duì)話框。在事件源一欄選擇 。在事件一欄選擇前面板關(guān)閉 ?,單擊確定按鈕。連線真常量至前面板關(guān)閉?事件分支中事件過(guò)濾節(jié)點(diǎn)的“ 放棄? ”項(xiàng)。穿過(guò)事件分支連線“ 時(shí)域波形” 數(shù)據(jù)。連線假常量至隧道。11.12.13.14.15.運(yùn)行 VI。嘗試通過(guò)關(guān)閉前面板關(guān)閉 VI。單擊停止按鈕,中止 VI 運(yùn)行。打開(kāi) NI 范例查找器。打開(kāi)舊事件處理器范

28、例。 順序創(chuàng)建用戶界面 獲取用戶輸入 常規(guī),雙擊舊事件處理器。16.17.18.19.啟用程序框圖上的顯示執(zhí)行過(guò)程按鈕。運(yùn)行 VI。觀察舊事件處理器的運(yùn)行情況,并比較它與新事件處理器之間的區(qū)別。關(guān)閉全部 VI,不要保存對(duì) VI 所做更改。練習(xí) 3-1 結(jié)束 National Instruments Corporation3-3第 3 課事件編程練習(xí) 3-2目標(biāo)創(chuàng)建打印隊(duì)列控制臺(tái)使用生產(chǎn)者 / 消費(fèi)者(事件)模板創(chuàng)建打印隊(duì)列控制臺(tái),向提交打印任務(wù)并任務(wù)隊(duì)列。應(yīng)用場(chǎng)景創(chuàng)建一個(gè)打印控制臺(tái) VI,用于控制打印任務(wù)的提交和每次單擊“ 事件入隊(duì)列” 按鈕,將發(fā)送一個(gè)打印任務(wù)至任務(wù)進(jìn)程狀態(tài)。用戶。通過(guò)垂直條

29、打印任務(wù)的數(shù)量。 LED 指示燈用于顯示打印進(jìn)程狀態(tài)。每個(gè)任務(wù)的打印進(jìn)程均包含 2 部分用于初始化的固定時(shí)間 (300 ms)和用于打印的可變時(shí)間,具體時(shí)間取決于任務(wù)大小。設(shè)計(jì)本項(xiàng)目的必要控件和自定義類型枚舉控件已創(chuàng)建。您需要使用 LabVIEW 附帶的生產(chǎn)者 / 消費(fèi)者設(shè)計(jì)模式模板創(chuàng)建打印控制臺(tái) VI。表 VI 的前面板使用的控件。3-1 列出了打印控制臺(tái)表 3-1. 前面板控件和說(shuō)明表 3-2 為生產(chǎn)者循環(huán)中實(shí)現(xiàn)的事件分支。表 3-2. 生產(chǎn)者循環(huán)事件分支3-4/china事件分支分支說(shuō)明事件入隊(duì)列:值改變本分支使用“ 元素入隊(duì)列” 函數(shù)排序 p rj ob 字符串常量的值。停止:值改變本

30、分支使用“ 獲取隊(duì)列狀態(tài)” 函數(shù)獲取隊(duì)列中元素的數(shù)量。傳輸值到打印任務(wù)隊(duì)列條。超時(shí)本分支將中止 While 循環(huán)??丶丶f(shuō)明事件入隊(duì)列按鈕用戶每次單擊此按鈕,將發(fā)送一個(gè)打印任務(wù)至。打印任務(wù)隊(duì)列條用于顯示當(dāng)前任務(wù)隊(duì)列中的打印任務(wù)。每發(fā)送一個(gè)打印任務(wù)至 ,都會(huì)將其添加至任務(wù)隊(duì)列。 每開(kāi)始一個(gè)新任務(wù),就從隊(duì)列中移除相應(yīng)的任務(wù)。正在等待LED僅在隊(duì)列中無(wú)打印任務(wù)時(shí)點(diǎn)亮。正在初始化LED每個(gè)打印任務(wù)的初始階段點(diǎn)亮。正在打印LED每個(gè)打印任務(wù)的打印階段點(diǎn)亮。停止按鈕本按鈕可使 VI 停止運(yùn)行。第 3 課事件編程表 3-3 為消費(fèi)者循環(huán)狀態(tài)機(jī)實(shí)現(xiàn)的狀態(tài)。表 3-3.消費(fèi)者循環(huán)狀態(tài) National Ins

31、truments Corporation3-5狀態(tài)狀態(tài)說(shuō)明等待本狀態(tài)執(zhí)行下列任務(wù)。使用“ 元素出隊(duì)列” 函數(shù)等待打印任務(wù)隊(duì)列。設(shè)置“ 元素出隊(duì)列” 函數(shù)的超時(shí)為 100 ms?!?元素出隊(duì)列” 函數(shù)超時(shí)的情況下,設(shè)置下一個(gè)狀態(tài)為“ 等待” 狀態(tài)。 “ 元素出隊(duì)列” 函數(shù)未超時(shí)的情況下,設(shè)置下一個(gè)狀態(tài)為“ 初始化設(shè)置”狀態(tài)。設(shè)置“ 正在等待” 指示燈為真。初始化設(shè)置本狀態(tài)執(zhí)行下列任務(wù)。設(shè)置“ 正在等待” 指示燈為假。設(shè)置“ 正在初始化” 指示燈為真。切換至“ 設(shè)置” 狀態(tài)。設(shè)置本狀態(tài)執(zhí)行下列任務(wù)。仿真打印設(shè)置,等待時(shí)間為 300 ms。設(shè)置“ 正在初始化” 指示燈為假。切換至“ 初始化打印” 狀

32、態(tài)。初始化打印本狀態(tài)執(zhí)行下列任務(wù)。設(shè)置“ 正在打印” 指示燈為真。切換至“ 打印” 狀態(tài)。打印本狀態(tài)執(zhí)行下列任務(wù)。使用不同的等待時(shí)間仿真打印任務(wù)。設(shè)置“ 正在打印” 指示燈為假。切換至“ 正在等待” 狀態(tài)。第 3 課事件編程實(shí)現(xiàn)注為了強(qiáng)化您所學(xué)到的開(kāi)發(fā)技能,本練習(xí)僅給出有限的操作指南。新建基于模板的 VI1.打開(kāi)LabVIEW Core 2PrConsole 目錄下的Pr Console.lvproj。使用生產(chǎn)者 / 消費(fèi)者設(shè)計(jì)模式(事件)新建一個(gè) VI。單擊文件 VI 屬性 說(shuō)明信息。在 VI 說(shuō)明信息部分,使用應(yīng)用程序的簡(jiǎn)明描述替換模板說(shuō)明信息。2.3.4.5.為 VI 創(chuàng)建有意義的圖表。

33、保存 VI 為PrConsole.vi,放在LabVIEW Core 2PrConsole 目錄下。確認(rèn)新建 VI 已被添加至Pr項(xiàng)目。Console.lvproj6.保存PrConsole.lvproj 項(xiàng)目。創(chuàng)建前面板使用PrConsole.lvproj 項(xiàng)目中的Queued PrJobs.ctl 和PrLEDs.ctl 創(chuàng)建與圖 3-2 類似的前面板。圖 3-2. 打印控制臺(tái)的前面板生產(chǎn)者循環(huán)首先修改生產(chǎn)者循環(huán),再修改消費(fèi)者循環(huán)完成程序框圖。生產(chǎn)者循環(huán)響應(yīng)前面板事件。用戶每次單擊“ 事件入隊(duì)列” 按鈕,將發(fā)送一個(gè)打印任務(wù)至隊(duì)列條。生產(chǎn)者循環(huán)還負(fù)責(zé)使用隊(duì)列中的元素?cái)?shù)量更新打印任務(wù)3-6/c

34、hina1PrConsole.lvproj 項(xiàng)目中已經(jīng)創(chuàng)建的部分1第 3 課事件編程圖3-3 和 3-4 為完成后的生產(chǎn)者循環(huán)范例。圖 3-3. 生產(chǎn)者循環(huán)事件入隊(duì)列結(jié)構(gòu)1.在“ 事件入隊(duì)列” 結(jié)構(gòu)中,使用 p r的元素字符串。j ob 替換“ 元素入隊(duì)列” 函數(shù)2.在事件結(jié)構(gòu)中添加“ 超時(shí)” 分支?!?超時(shí)” 分支通過(guò)數(shù)量更新打印任務(wù)隊(duì)列條。 事件源一欄選擇 ,事件一欄選擇超時(shí)。隊(duì)列中元素的注如果事件數(shù)據(jù)節(jié)點(diǎn)無(wú)效 (黑色文本),右鍵單擊并選擇有效。注因?yàn)椤?超時(shí)” 分支為應(yīng)用程序事件,其頂端的時(shí)間選擇器與其它事件關(guān)聯(lián)對(duì)象不同。名稱僅表示事件,不包含關(guān)聯(lián)對(duì)象。圖 3-4. 生產(chǎn)者循環(huán)超件分支

35、National Instruments Corporation3-7第 3 課事件編程 添加“ 獲取隊(duì)列狀態(tài)” 函數(shù),隊(duì)列中元素的數(shù)量。 連線常量值為 100 的常量至超時(shí)接線端,設(shè)置時(shí)間結(jié)構(gòu)的超時(shí)時(shí)間為100 ms。注由于模板中已經(jīng)存在停止分支,無(wú)需進(jìn)行任何修改。消費(fèi)者循環(huán)消費(fèi)者循環(huán)仿真打印過(guò)程和更新 LED 指示燈狀態(tài)。使用狀態(tài)機(jī)實(shí)現(xiàn)打印過(guò)程。 “ 正在等待” 狀態(tài)接收打印任務(wù)。接收到打印任務(wù)后,狀態(tài)機(jī)初始化一系列步驟以仿真打印過(guò)程。每個(gè)步驟后更新打印指示燈。因此,“ 初始化設(shè)置”狀態(tài)后點(diǎn)亮“ 正在初始化” 指示燈,“ 設(shè)置” 狀態(tài)后關(guān)閉指示燈。同上,“ 初始化打印” 狀態(tài)后點(diǎn)亮“ 正在

36、打印” 指示燈,“ 打印” 狀態(tài)后關(guān)閉指示燈。圖3-5 至 3-9 為完成后的消費(fèi)者循環(huán)范例。在生產(chǎn)者循環(huán)中創(chuàng)建狀態(tài)機(jī),狀態(tài)機(jī)的開(kāi)始狀態(tài)為 “ 等待 ”?!?等待 ”狀態(tài)使用 “ 元素出隊(duì)列 ” 函數(shù)接收打印任務(wù)。如果 “ 元素出隊(duì)列 ” 函數(shù)在指定狀態(tài)機(jī)超時(shí)范圍內(nèi) (100 ms) 接收到隊(duì)列元素,狀態(tài)機(jī)切換至 “ 初始化設(shè)置 ” 狀態(tài)。如果 “ 元素出隊(duì)列 ” 函數(shù)超時(shí),狀態(tài)機(jī)保持 “ 等待 ”狀態(tài)。1.圖 3-5. 消費(fèi)者循環(huán)等待分支“ 打印處理狀態(tài)” 自定義枚舉類型控件已創(chuàng)建。從項(xiàng)目瀏覽器窗口選擇并拖放Pr連線Prsing Ses.ctl 至程序框圖。Prosing Ses.ctl 至

37、分支選擇器,關(guān)聯(lián)分支結(jié)構(gòu)和Pro枚舉控件的值。拖曳“ 元素出隊(duì)列” 函數(shù)到分支結(jié)構(gòu)。使用“元素出隊(duì)列”函數(shù)的超時(shí)輸出端判定下一個(gè)狀態(tài)為“等待”狀態(tài)或“ 初始化設(shè)置” 狀態(tài)。添加“ 按名稱” 函數(shù),設(shè)置 “ 正在等待” LED控件的狀態(tài)。3-8/china1PrConsole.lvproj 項(xiàng)目中已經(jīng)創(chuàng)建的部分1第 3 課事件編程 在項(xiàng)目瀏覽器窗口,選擇并拖放P r“ 打印指示燈” 簇常量。LEDs . c t l 至程序框圖,創(chuàng)建2.按照?qǐng)D 3-6 創(chuàng)建“ 初始化設(shè)置” 分支。圖 3-6. 消費(fèi)者循環(huán)初始化設(shè)置分支 右鍵單擊條件結(jié)構(gòu)的邊框,選擇為每個(gè)值添加分支,為枚舉控件的每個(gè)值創(chuàng)建關(guān)聯(lián)分支。

38、提示或者通過(guò)現(xiàn)有分支創(chuàng)建新的分支結(jié)構(gòu)。右鍵單擊條件結(jié)構(gòu)的邊框,選擇分支創(chuàng)建分支的副本。包含前面板接線端的條件結(jié)構(gòu)時(shí)要特別注意,因?yàn)檫@將影響后的前面板對(duì)象。 右鍵單擊錯(cuò)誤隧道,選擇未連線時(shí)使用默認(rèn)。3.按照?qǐng)D 3-7 創(chuàng)建“ 設(shè)置” 狀態(tài)。圖 3-7. 消費(fèi)者循環(huán)設(shè)置分支 仿真初始化設(shè)置,等待時(shí)間為 300 ms。 National Instruments Corporation3-9第 3 課事件編程4.按照?qǐng)D3-8 創(chuàng)建“ 初始化打印” 狀態(tài)。圖 3-8. 消費(fèi)者循環(huán)初始化打印分支3-9 創(chuàng)建“ 打印” 狀態(tài)。5.按照?qǐng)D圖 3-9. 消費(fèi)者循環(huán)打印分支 為了仿真不同的打印過(guò)程,生成 300

39、ms 和 1500 ms 的隨機(jī)等待時(shí)間。使用 P r保存 VI 并保存Con s o l e . lvp r o j 中的范圍內(nèi)隨機(jī)數(shù) VI 設(shè)置隨機(jī)等待時(shí)間。6.P rCon s o le . l vp r o j 項(xiàng)目。3-10/china第 3 課事件編程測(cè)試1.運(yùn)行 VI 以確保它運(yùn)行正確。用戶每次單擊“ 事件入隊(duì)列” 按鈕,將發(fā)送一個(gè)打印任務(wù)至欄中看到積壓數(shù)據(jù)。如果連續(xù)提交幾個(gè)打印任務(wù),將在打印任務(wù)隊(duì)列 注意:停止傳送打印任務(wù)到隊(duì)列時(shí),仍繼續(xù)執(zhí)行打印過(guò)程。 注意:消費(fèi)者循環(huán)僅在出錯(cuò)時(shí)停止執(zhí)行。生產(chǎn)者循環(huán)停止,“隊(duì)列” 破環(huán)隊(duì)列時(shí)將出錯(cuò)。沒(méi)有有效的隊(duì)列,消費(fèi)者循環(huán)中的“ 元素出隊(duì)列”

40、 函數(shù)將返回錯(cuò)誤代碼 1122 (節(jié)點(diǎn)等待的句柄無(wú)效)。中止出錯(cuò)的消費(fèi)者循環(huán)比較容易實(shí)現(xiàn),但創(chuàng)建具有可擴(kuò)展性和可性的專業(yè)應(yīng)用程序時(shí),不建議采用本方法。較好的解決方案是關(guān)閉應(yīng)用程序,并向用戶所有錯(cuò)誤。2.關(guān)閉 VI 和項(xiàng)目。保存改動(dòng)。練習(xí) 3-2 結(jié)束 National Instruments Corporation3-11第 3 課事件編程筆記3-12/china4錯(cuò)誤處理練習(xí) 4-1目標(biāo)使用錯(cuò)誤處理修改打印控制臺(tái) VI修改 VI,實(shí)現(xiàn) VI錯(cuò)誤并包含一個(gè)關(guān)閉狀態(tài)。應(yīng)用場(chǎng)景使用打印控制臺(tái) VI, VI 仿真提交打印任務(wù)的控制過(guò)程,并打印任務(wù)的處理狀態(tài)。用戶每次單擊“ 事件入隊(duì)列” 按鈕,將發(fā)送

41、一個(gè)打印任務(wù)至。打印任通過(guò)垂直條務(wù)的處理。打印任務(wù)的數(shù)量。使用 LED 指示燈和數(shù)值顯示控件打印控制臺(tái) VI 不能錯(cuò)誤。請(qǐng)修改 VI,實(shí)現(xiàn)潛在的錯(cuò)誤和警告。并在最后一個(gè)打印任務(wù)結(jié)束后執(zhí)行關(guān)閉進(jìn)程。設(shè)計(jì)如果要實(shí)現(xiàn) VI 的錯(cuò)誤功能,需要:在全部循環(huán)中,使用移位寄存器并錯(cuò)誤和警告。使用“ 合并錯(cuò)誤” VI 獲取生產(chǎn)者循環(huán)和消費(fèi)者循環(huán)的錯(cuò)誤信息。使用“ 簡(jiǎn)易錯(cuò)誤處理器” 顯示錯(cuò)誤和警告。發(fā)生錯(cuò)誤或生產(chǎn)者循環(huán)發(fā)送關(guān)閉消息時(shí),由錯(cuò)誤處理 VI 觸發(fā)狀態(tài)機(jī)執(zhí)行“ 關(guān)閉” 條件分支。 National Instruments Corporation4-1第 4 課錯(cuò)誤處理實(shí)現(xiàn)1.打開(kāi)LabVIEW Core

42、 2Error Handling 目錄下的Console with Error Handling.lvproj。Pr圖 4-1. 打印控制臺(tái)的前面板打開(kāi)并運(yùn)行打印控制臺(tái) VI。 VI 的前面板如圖 4-1 所示。2.用戶每次單擊“ 事件入隊(duì)列” 按鈕,將發(fā)送一個(gè)打印任務(wù)至打印任務(wù)隊(duì)列條中顯示累積的打印任務(wù)。如果當(dāng)前隊(duì)列中不包含打印任務(wù),“ 正在等待” 打印指示燈點(diǎn)亮。每處理一個(gè)打印任務(wù)會(huì)更新“ 任務(wù)” 顯示控件一次,以顯示當(dāng)前正在處理的打印任務(wù)。初始化打印階段,“ 正在初始化” 打印指示燈點(diǎn)亮。打印階段,“ 正在打印” 指示燈點(diǎn)亮。單擊停止按鈕。3.檢查程序框圖。 注意,此時(shí)未任何錯(cuò)誤。 注意

43、:消費(fèi)者循環(huán)僅在出錯(cuò)時(shí)停止執(zhí)行。如果生產(chǎn)者循環(huán)停止,“隊(duì)列有效的隊(duì)列” 函數(shù)的隊(duì)列被破壞,此時(shí)就會(huì)發(fā)生錯(cuò)誤。沒(méi)有,消費(fèi)者循環(huán)中的“ 元素出隊(duì)列” 函數(shù)將返回錯(cuò)誤代碼 1122 (節(jié)點(diǎn)等待的句柄無(wú)效)。4-2/china第 4 課錯(cuò)誤處理消費(fèi)者循環(huán)中的錯(cuò)誤處理1.按照?qǐng)D4-2 所示修改程序框圖,實(shí)現(xiàn)錯(cuò)誤功能。圖 4-2. 帶錯(cuò)誤處理的消費(fèi)者循環(huán)的程序框圖連線“ 獲取隊(duì)列” 函數(shù)的錯(cuò)誤簇至消費(fèi)者 While 循環(huán)。使用移位寄存器替換 While 循環(huán)的錯(cuò)誤隧道。從左端的移位寄存器連線錯(cuò)誤簇至“ 元素出隊(duì)列” 函數(shù)的錯(cuò)誤輸入接線端。連線右側(cè)的錯(cuò)誤隧道至右側(cè)的移位寄存器。2.在“ 初始化配置” 分支中

44、,連線左側(cè)的錯(cuò)誤簇隧道至“ 掃描字符串”函數(shù)的錯(cuò)誤輸入接線端。3.對(duì)于所有余下的分支,連線左側(cè)的錯(cuò)誤簇隧道至右側(cè)的錯(cuò)誤簇隧道。合并和錯(cuò)誤添加一個(gè)“ 合并錯(cuò)誤” VI。添加一個(gè)“ 簡(jiǎn)易錯(cuò)誤處理器” VI。 右鍵單擊“ 簡(jiǎn)易錯(cuò)誤處理器” VI 的常量。框類型接線端,選擇創(chuàng)建 National Instruments Corporation4-3第 4 課錯(cuò)誤處理 選擇 OK Message + warnings。默認(rèn)情況下,“ 簡(jiǎn)易錯(cuò)誤處理器” VI 僅在發(fā)生錯(cuò)誤時(shí)顯示注框。如果要警告和錯(cuò)誤信息,請(qǐng)將框選項(xiàng)修改為 OK Message + warnings。3.按如圖 4-3 所示,完成“ 合并錯(cuò)

45、誤” VI 和“ 簡(jiǎn)易錯(cuò)誤處理器” VI 的連線。圖 4-3.運(yùn)行 VI?!?合并錯(cuò)誤” VI 和“ 簡(jiǎn)易錯(cuò)誤處理器” VI 的程序框圖4. 注意,單擊停止按鈕時(shí),VI 不會(huì)停止運(yùn)行。必須使用“ 中止” 按鈕停止VI。檢查程序框圖。 注意,生產(chǎn)者 / 消費(fèi)者循環(huán)結(jié)束后,才會(huì)執(zhí)行 “ 合并錯(cuò)誤” VI。因此,5.“列隊(duì)列” 函數(shù)不會(huì)破壞隊(duì)列。消費(fèi)者循環(huán)要依賴這些隊(duì)停止循環(huán)。移動(dòng)“隊(duì)列” 函數(shù)至“ 合并錯(cuò)誤” VI 的前面將導(dǎo)致消費(fèi)者循環(huán)停止。但使用錯(cuò)誤來(lái)終止循環(huán),將導(dǎo)致每次運(yùn)行 VI 時(shí),“ 簡(jiǎn)易錯(cuò)誤處理器” VI 均“ 關(guān)閉” 狀態(tài)時(shí),修復(fù)此處。錯(cuò)誤。在消費(fèi)者循環(huán)中修改4-4/china第 4

46、 課錯(cuò)誤處理添加錯(cuò)誤處理器 VI1.按照?qǐng)D 4-4 修改程序框圖,當(dāng)生產(chǎn)者循環(huán)停止,或消費(fèi)者循環(huán)中發(fā)生錯(cuò)誤時(shí),消費(fèi)者循環(huán)執(zhí)行“ 關(guān)閉” 分支。圖 4-4.錯(cuò)誤處理 VI 的程序框圖 修改生產(chǎn)者循環(huán),當(dāng)用戶單擊“ 停止” 按鈕時(shí)在隊(duì)列前端素。關(guān)閉元在“ 停止” 事件分支中,添加“ 隊(duì)列最前端元素” 函數(shù)。右鍵單擊“ 隊(duì)列最前端中選擇創(chuàng)建 常量。元素” 函數(shù)的元素輸入端,從快捷菜單在字符串常量中鍵入Shu t down。注字符串文本是區(qū)分大小寫的。按圖 4-4 中所示完成“ 停止” 事件分支的連線。 修改消費(fèi)者循環(huán),使其執(zhí)行“ 關(guān)閉” 分支后停止。刪除右側(cè)錯(cuò)誤隧道至 While 循環(huán)條件接線端間的

47、錯(cuò)誤連線。在“ 關(guān)閉” 條件框圖中添加“ 真” 常量。連線“ 真” 常量至 While 循環(huán)條件接線端。右鍵單擊隧道,選擇未連線時(shí)使用默認(rèn)。 National Instruments Corporation4-5第 4 課錯(cuò)誤處理 修改消費(fèi)者循環(huán),接收到隊(duì)列中的“關(guān)閉”元素時(shí)執(zhí)行“關(guān)閉”分支。在P rCon so l e wit h E rr o r Ha nd l ing . l vp r o j 的 s ubv i s 文件夾中,拖曳 Prer Error Handler.vi 至消費(fèi)者循環(huán)。雙擊按照?qǐng)D 4-4 所示完成消費(fèi)者循環(huán)連線。錯(cuò)誤處理 VI,打開(kāi) VI。錯(cuò)誤處理 VI 的程序框圖

48、。2.3.檢查 注意,下一個(gè)狀態(tài)與當(dāng)前狀態(tài)相同。除非錯(cuò)誤簇中包含錯(cuò)誤,或“ 元素出隊(duì)列” 的值等于關(guān)閉。如果發(fā)生錯(cuò)誤或函數(shù)值與關(guān)閉匹配,下一個(gè)狀態(tài)切換為“ 關(guān)閉”。4.5.6.錯(cuò)誤處理 VI。關(guān)閉切換至打印控制臺(tái) VI 前面板。打開(kāi)并運(yùn)行打印控制臺(tái) VI。 注意,單擊“ 停止” 按鈕可停止 VI 執(zhí)行,且不會(huì)錯(cuò)誤。 盡管 VI 已經(jīng)實(shí)現(xiàn)了預(yù)期的功能,錯(cuò)誤處理功能。仍可以強(qiáng)制發(fā)生錯(cuò)誤和警告,測(cè)試測(cè)試 (可選)如果時(shí)間允許,嘗試在代碼中錯(cuò)誤和警告,運(yùn)行 VI 以測(cè)試錯(cuò)誤代碼處理功能。用戶可斷開(kāi)錯(cuò)誤連線,使用包含錯(cuò)誤或警量替換連線,強(qiáng)制發(fā)生錯(cuò)誤。態(tài)和代碼值的錯(cuò)誤代碼常保存帶有強(qiáng)制錯(cuò)誤的 VI。練習(xí)

49、4-1 結(jié)束4-6/china第 4 課錯(cuò)誤處理筆記 National Instruments Corporation4-7第 4 課錯(cuò)誤處理筆記4-8/china5控制用戶界面練習(xí) 5-1目標(biāo)顯示溫度和上下限值使用屬性節(jié)點(diǎn)通過(guò)編程改變前面板對(duì)象屬性。應(yīng)用場(chǎng)景完成將溫度至波形圖表的 VI。執(zhí)行過(guò)程中 VI 需完成下列任務(wù):設(shè)置圖表的 x 值為用戶自定義值。清空波形圖表,使其最初不包含任何數(shù)據(jù)。當(dāng)數(shù)據(jù)超出某特定值時(shí),更改曲線的顏色。當(dāng)數(shù)據(jù)超出某特定值時(shí),警告顯示控件開(kāi)始閃爍。設(shè)計(jì)添加下列屬性節(jié)點(diǎn)至現(xiàn)有 VI: National Instruments Corporation5-1類型名稱屬性波形

50、圖表溫度XScale.Multipr波形圖表溫度History波形圖表溫度Active Plot 0Plot.Color顯示控件 (LED 指示燈)超過(guò)限制Blinking第 5 課控制用戶界面實(shí)現(xiàn)1.打開(kāi)LabVIEW Core 2Temperature Limit 目錄下的Temperature Limit.vi。前面板已創(chuàng)建好。圖 5-1. 溫度上限 VI 的前面板打開(kāi) VI 的程序框圖。部分程序框圖已創(chuàng)建。圖 5-2 為最終程序框圖范例。2.圖 5-2. 溫度上限VI 的程序框圖修改 VI,使圖表的 x 值等于用戶輸入的 t (ms)。3.右鍵單擊“ 溫度” 顯示控件,從快捷菜單中選擇

51、創(chuàng)建 屬性節(jié)點(diǎn) X 標(biāo)尺 偏移與縮放系數(shù) 縮放系數(shù),創(chuàng)建一個(gè)屬性節(jié)點(diǎn)。將這個(gè)新的屬性節(jié)點(diǎn)放置在 While 循環(huán)的左側(cè)。右鍵單擊屬性節(jié)點(diǎn),從快捷菜單中選擇全部轉(zhuǎn)換為寫入。將 del(ms) 除以 1000 用作 X 標(biāo)尺的縮放系數(shù),如圖 5-2 所示。5-2/china第 5 課控制用戶界面4.修改 VI,使其在開(kāi)始溫度前先清除溫度圖表中的原有數(shù)據(jù)。提示將一個(gè)空數(shù)據(jù)數(shù)組傳遞至歷史數(shù)據(jù)屬性,就可清空波形圖表歷史。調(diào)整屬性節(jié)點(diǎn)的大小,使其有 2 個(gè)接線端。第二個(gè)接線端選擇歷史數(shù)據(jù) (History Data) 屬性。驗(yàn)證歷史數(shù)據(jù)屬性是否設(shè)置為寫入。右鍵單擊歷史數(shù)據(jù)屬性,從快捷菜單中選擇創(chuàng)建 常量。

52、按照?qǐng)D 5-2 所示對(duì)屬性節(jié)點(diǎn)進(jìn)行連線。5.修改 VI,實(shí)現(xiàn) VI 在數(shù)據(jù)時(shí),如果溫度超過(guò)限制值,數(shù)據(jù)曲線就變成紅色且超過(guò)限制指示燈閃爍。右鍵單擊溫度顯示控件,從快捷菜單中選擇創(chuàng)建 屬性節(jié)點(diǎn) 活動(dòng)曲線,創(chuàng)建另一個(gè)屬性節(jié)點(diǎn)。將該屬性節(jié)點(diǎn)放置在條件結(jié)構(gòu)的真條件分支中。調(diào)整屬性節(jié)點(diǎn)的大小,使其有 2 個(gè)接線端。單擊第二個(gè)節(jié)點(diǎn)并選擇曲線 (Plot) 曲線顏色 (Plot Color)。右鍵單擊屬性節(jié)點(diǎn),從快捷菜單中選擇全部轉(zhuǎn)換為寫入。連線 0 的數(shù)值常量至活動(dòng)曲線屬性節(jié)點(diǎn),這樣選擇了溫度圖表上的第一條曲線。連線紅色顏色盒常量至曲線顏色屬性節(jié)點(diǎn),當(dāng)數(shù)據(jù)超出上限值時(shí)將曲線顏色設(shè)置為紅色。按住 鍵的同時(shí)選

53、中并拖曳屬性節(jié)點(diǎn),創(chuàng)建一個(gè)屬性節(jié)點(diǎn)的副本。提示使用剪貼板 (編輯 或 )創(chuàng)建屬性節(jié)點(diǎn)的副本。這將創(chuàng)建不同類型的屬性節(jié)點(diǎn),詳細(xì)信息見(jiàn)第 5 課中的控件一節(jié)。將屬性節(jié)點(diǎn)的副本放置在條件結(jié)構(gòu)的假條件分支中,如圖 5-3 所示。連線值為 0 的數(shù)值常量至活動(dòng)曲線屬性節(jié)點(diǎn),這樣選擇了溫度圖表上的第一條曲線。連線綠色顏色盒常量至曲線顏色屬性節(jié)點(diǎn),當(dāng)數(shù)據(jù)低于上限時(shí)將曲線顏色設(shè)置為綠色。圖 5-3. 溫度上限VI 中的假條件分支 National Instruments Corporation5-3第 5 課控制用戶界面6.修改 VI,滿足 VI爍。數(shù)據(jù)時(shí),如溫度超出上限值,則超過(guò)限制指示燈閃右鍵單擊超過(guò)限制

54、顯示控件,從快捷菜單中選擇創(chuàng)建 屬性節(jié)點(diǎn) 閃爍。將新建的屬性節(jié)點(diǎn)置于 While 循環(huán)。右鍵單擊屬性節(jié)點(diǎn),從快捷菜單中選擇全部轉(zhuǎn)換為寫入。按照?qǐng)D 5-2 所示對(duì)屬性節(jié)點(diǎn)進(jìn)行連線。7.保存 VI。測(cè)試1.2.運(yùn)行 VI 以確保它運(yùn)行正確。關(guān)閉 VI。練習(xí) 5-1 結(jié)束5-4/china第 5 課控制用戶界面練習(xí) 5-2目標(biāo)自定義 VI 窗口學(xué)習(xí)使用屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)更改 VI 屬性。應(yīng)用場(chǎng)景通過(guò) VI 屬性頁(yè)可靜態(tài)設(shè)置 VI 的外觀屬性。但具有魯棒性的用戶界面經(jīng)常需要在程序運(yùn)行期間改變前面板外觀。請(qǐng)創(chuàng)建一個(gè)可完成下列目標(biāo)任務(wù)的 VI:顯示或隱藏標(biāo)題欄顯示或隱藏菜單欄變成透明,使得 VI 后面的對(duì)

55、象可見(jiàn)。移至屏幕中心。設(shè)計(jì)輸入和輸出提示使用開(kāi)關(guān)按鈕控件,因?yàn)榇祟惪丶哪J(rèn)機(jī)械動(dòng)作為單擊時(shí)轉(zhuǎn)換。使用確定按鈕控件,因?yàn)樗哪J(rèn)機(jī)械動(dòng)作為時(shí)觸發(fā)。屬性使用 VI 類的下列屬性和方法。顯示菜單欄屬性為真時(shí), VI 的菜單欄可見(jiàn)。圖 5-4. VI 菜單欄標(biāo)題欄可見(jiàn)屬性為真時(shí), VI 的標(biāo)題欄可見(jiàn)。圖 5-5. VI 標(biāo)題欄 National Instruments Corporation5-5類型名稱默認(rèn)值開(kāi)關(guān)按鈕顯示菜單欄?真開(kāi)關(guān)按鈕顯示標(biāo)題欄?真開(kāi)關(guān)按鈕將 VI 設(shè)置為透明?真確定按鈕居中假停止按鈕停止假第 5 課控制用戶界面以透明方式運(yùn)行 VI 屬性為真時(shí), VI 的可改變。該屬性的默認(rèn)值

56、為“ 假”,所以在改變VI之前需對(duì)該屬性寫入“ 真”。屬性可改變 VI 的。屬性接收值的范圍為 0 到 100。值為 0 時(shí),VI 完全不透明 (常規(guī)行為);值為 100 時(shí), VI 完全透明 (不可見(jiàn))。本練習(xí)中,按下將 VI 設(shè)置為透明 ? 按鈕時(shí),的值為 50。方法與屬性不同,每次調(diào)用方法時(shí)它都會(huì)產(chǎn)生一個(gè)響應(yīng)。因此,僅在要執(zhí)行動(dòng)作時(shí)調(diào)用方法。例如,如果每一次循環(huán)都調(diào)用 Fp.Center 方法,則 VI 將一直位于中心位置而不允許用戶移動(dòng)它。可以使用條件結(jié)構(gòu)控制方法的調(diào)用,實(shí)現(xiàn)只在某次循環(huán)中調(diào)用該方法。使用 VI 類的下列方法:居中每次調(diào)用方法時(shí), VI 都會(huì)移至屏幕的中心。提示使用即時(shí)

57、幫助窗口查看每個(gè)屬性和方法的說(shuō)明信息。VI 結(jié)構(gòu)VI 每 50 毫秒輪詢一次前面板控件,并根據(jù)控件的當(dāng)前值設(shè)置屬性值。條件結(jié)構(gòu)控制“ 居中” 方法的執(zhí)行。實(shí)現(xiàn)1.打開(kāi)LabVIEW Core 2Customize VI WindowCustomize VI Window VI。 VI 的前面板如圖 5-6 所示。目錄下的圖 5-6. 自定義 VI 窗口 VI 的前面板按照下列步驟創(chuàng)建 VI 程序框圖。圖 5-7 為程序框圖范例。圖 5-7. 自定義 VI 窗口的程序框圖5-6/china第 5 課控制用戶界面圖 5-8. 居中方法的“ 假” 條件分支使用 While 循環(huán)包圍接線端。2.3.創(chuàng)

58、建 VI 的。 添加“VI 服務(wù)器 將 VI 服務(wù)器” 至程序框圖,放置在 While 循環(huán)的左側(cè)。設(shè)置為本 VI。注本 VI一個(gè)用于。當(dāng)前 VI 的所有方法和屬性,且的同時(shí)無(wú)需直接打開(kāi)和關(guān)閉4.為“ 以透明方式運(yùn)行 VI” 屬性創(chuàng)建一個(gè)屬性節(jié)點(diǎn):右鍵單擊本 VI,從快捷菜單選擇創(chuàng)建 VI 類的屬性 前面板窗居中,創(chuàng)建一個(gè)屬性節(jié)點(diǎn)。將屬性節(jié)點(diǎn)移至本 VI的右側(cè),且位于 While 循環(huán)外部。右鍵單擊屬性節(jié)點(diǎn),從快捷菜單中選擇全部轉(zhuǎn)換為寫入。右鍵單擊FP:RunTransparently 屬性節(jié)點(diǎn),從快捷菜單中選擇創(chuàng)建 常量。將常量的值改為“ 真”。5.分別為顯示菜單欄 (ShowBar)、標(biāo)題

59、欄可見(jiàn) (TitarVis) 和(Transparency) 屬性創(chuàng)建屬性節(jié)點(diǎn)。右鍵單擊“本VI”顯示菜單欄。,從快捷菜單選擇創(chuàng)建VI類的屬性前面板擴(kuò)展屬性節(jié)點(diǎn),使其顯示 3 個(gè)元素。單擊屬性節(jié)點(diǎn)中的第二個(gè)屬性,選擇前面板 標(biāo)題欄可見(jiàn)。單擊屬性節(jié)點(diǎn)中的第 3 個(gè)屬性,選擇前面板。右鍵單擊屬性節(jié)點(diǎn),從快捷菜單中選擇全部轉(zhuǎn)換為寫入。將屬性節(jié)點(diǎn)移至 While 循環(huán)。在 While 循環(huán)放置一個(gè)“ 選擇” 函數(shù)。在“ 選擇” 函數(shù)的左側(cè)放置 2 個(gè)數(shù)值常量,值分別為 0 和 50 。連線 0 數(shù)值常量至“ 選擇” 函數(shù)的 f 接線端。連線 50 數(shù)值常量至“ 選擇” 函數(shù)的 t 接線端。按照?qǐng)D 5-

60、7 完成控件與相關(guān)屬性節(jié)點(diǎn)的連線。 National Instruments Corporation5-7窗口窗口窗口口第 5 課控制用戶界面6.為“ 居中” 方法創(chuàng)建調(diào)用節(jié)點(diǎn)。 右鍵單擊本VI,從快捷菜單選擇創(chuàng)建VI 類的方法 前面板 居中,創(chuàng)建一個(gè)調(diào)用節(jié)點(diǎn)。7.8.在 FP.Center 調(diào)用節(jié)點(diǎn)周圍放置一個(gè)“ 條件” 結(jié)構(gòu)。為循環(huán)添加一個(gè) 50 ms 的等待時(shí)間。在 While 循環(huán)放置一個(gè)“ 等待 (ms)” 函數(shù)。右鍵單擊等待時(shí)間 (毫秒)輸入端,從快捷菜單中選擇 創(chuàng)建 常量。在常量中鍵入 50 。9.當(dāng)用戶按下“ 停止” 按鈕,或者發(fā)生錯(cuò)誤時(shí), While 循環(huán)需停止運(yùn)行。在 Wh

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論