版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
CONTENTS目錄第1章虛擬儀器與LabVIEW概述第2章簡單VI的設(shè)計與實現(xiàn)第3章數(shù)據(jù)類型與運算第4章結(jié)構(gòu)控制第5章波形顯示第6章文件的輸入/輸出第7章數(shù)據(jù)采集與信號處理第8章綜合項目實例全套可編輯PPT課件第1章虛擬儀器與LabVIEW概述1.1.1虛擬儀器的概念虛擬儀器(VirtualInstrument,VI)是基于計算機的儀器,是將儀器裝入計算機,以通用的計算機硬件及操作系統(tǒng)為依托,實現(xiàn)各種儀器功能。其實質(zhì)是將傳統(tǒng)儀器硬件功能和最新計算機軟件技術(shù)實現(xiàn)并擴展傳統(tǒng)儀器的功能,如完成數(shù)據(jù)采集、控制、數(shù)據(jù)分析和處理以及測試結(jié)果的顯示等功能。虛擬儀器突破了傳統(tǒng)儀器在數(shù)據(jù)處理、顯示、傳送、存儲等方面的限制,用戶可以方便的對儀器進行維護、擴展和升級。1.1.2虛擬儀器的組成虛擬儀器系統(tǒng)包括儀器硬件和應用軟件兩部分。儀器硬件是計算機的外圍電路,與計算機過處理虛擬儀器系統(tǒng)的硬件環(huán)境,是應用軟件的基礎(chǔ);應用軟件則是虛擬儀器的核心,可以通過不同的功能模塊(軟件模塊)的組合構(gòu)成多種儀器,實現(xiàn)不同的測量功能。1.1虛擬儀器概述虛擬儀器體系圖
各組成部分功能:
(1)傳感器:傳感器用于采集被測對象(如溫度、壓力等)的數(shù)據(jù),其作用有兩個,一是接收被采集對象的信號數(shù)據(jù),二是將被采集到的物理量轉(zhuǎn)換為系統(tǒng)能夠接受的電量。
(2)信號調(diào)理器:信號調(diào)理器的作用主要是將由傳感器采集到的比較微弱且伴有噪聲的電信號進行放大濾波后再送入計算機進行處理。
(3)計算機:計算機主要包括數(shù)據(jù)采集卡和應用軟件兩部分,數(shù)據(jù)采集卡接受信號后將模擬信號轉(zhuǎn)換成計算機能夠識別的數(shù)字信號,然后通過編寫好的程序讀取數(shù)字信號,進行顯示、分析、存儲和傳輸。
虛擬儀器可以通過多種接口(GPIB、VXI、PXI等)或具有這些接口的儀器來連接被測對象和計算機。
虛擬儀器的組成框圖1.1.3虛擬儀器的特點與傳統(tǒng)儀器相比,虛擬儀器在智能化程度、處理能力、性能價格比和可操作性等方面均具有明顯的技術(shù)優(yōu)勢。虛擬儀器具有如下特點:(1)硬件功能軟件化很多以前需要硬件才能實現(xiàn)的功能,以在虛擬儀器架構(gòu)平臺上輕松應用軟件將各個功能模塊搭起來實現(xiàn)。在生產(chǎn)中節(jié)省了成本,節(jié)約了時間,并且靈活高效。(2)功能應用自主定義虛擬儀器具有靈活多變的特點,使用者可以基于已有的模塊,根據(jù)自身需求,將不同的模塊組合,通過編寫不同的軟件邏輯,實現(xiàn)想要的功能。(3)方便的圖形化的界面虛擬儀器可以將編程界面圖形化,不需要使用者精通像C、C++之類語言的編程語法,而是通過圖形化的軟面板,將使用者需要用到的功能變成一個個參數(shù)圖形,使用者只需要進行標準的調(diào)用即可,上手更加容易簡單,應用開發(fā)周期也極大縮短。1.1.4虛擬儀器的應用虛擬儀器系統(tǒng)具有開放性和靈活性,可與計算機技術(shù)同步發(fā)展,以提高精確度,降低成本,大大節(jié)省了用戶的開發(fā)時間,虛擬儀器可以應用到以下幾個方面:1.監(jiān)控使用虛擬儀器可以實時采集和記錄從傳感器采集到的信號,并對該信號進行統(tǒng)計、數(shù)字濾波、頻域分析等處理,從而實現(xiàn)監(jiān)控。2.檢測在實驗室中,利用虛擬儀器開發(fā)工具開發(fā)的虛擬儀器系統(tǒng),可以把一臺計算機變成一組檢測儀器,用于數(shù)據(jù)和圖像采集、控制與模擬,使用者能在實驗過程中,通過修改參數(shù),進行不斷地反復調(diào)試對比分析,在實踐中理解和掌握專業(yè)知識。3.教育由于虛擬儀器系統(tǒng)具有靈活性、可重用性的優(yōu)點,教育部門可以根據(jù)需要使用虛擬儀器系統(tǒng)搭建自己的教學系統(tǒng),一方面節(jié)省了開支,另一方面使得教學方法更加靈活多樣。4.電信由于虛擬儀器具有靈活的圖形用戶接口和強大的檢測功能,同時又能與CPIB和VXI儀器兼容,所以經(jīng)常被用來進行電信檢測。1.1.5虛擬儀器的發(fā)展虛擬儀器是計算機技術(shù)與測試技術(shù)相結(jié)合的產(chǎn)物,隨著計算機技術(shù)、電子技術(shù)、網(wǎng)絡(luò)通信技術(shù)的發(fā)展,未來儀器的概念將是一個開放的系統(tǒng)概念,計算機和現(xiàn)代儀器相互包容。因此,“網(wǎng)絡(luò)就是儀器”的概念概括了儀器的網(wǎng)絡(luò)化發(fā)展趨勢,虛擬儀器的發(fā)展表現(xiàn)在下面幾個方面:(1)高性能的數(shù)字信號處理芯片、大規(guī)??删幊踢壿嬈骷陌l(fā)展,提高了信號采集和處理的速度,縮短了虛擬儀器系統(tǒng)的開發(fā)時間,提高了系統(tǒng)的擴展性。(2)智能化、模塊化、集成化是硬件發(fā)展的主流。(3)智能化軟件開發(fā)平臺是虛擬儀器的一個重要發(fā)展方向。(4)新的總線技術(shù)應用,如HS488、1394b等。(5)儀器系統(tǒng)的網(wǎng)絡(luò)化發(fā)展。1.1.6虛擬儀器的開發(fā)環(huán)境虛擬儀器開發(fā)環(huán)境是保證開發(fā)項目正常運行的關(guān)鍵。目前,開發(fā)環(huán)境有兩類。一類是用底層編程語言開發(fā)的環(huán)境,像C、C++、JAVA等編程語言。另一類是用G語言開發(fā)的圖形化編程界面。圖形化編程界面實質(zhì)上是以圖形化界面展示給用戶,用戶在使用時就不需要學習內(nèi)部的語言結(jié)構(gòu),只需將模塊進行拖拉拽等操作即可實現(xiàn)相應功能,這樣極大的方便了用戶并且縮短了開發(fā)周期。LabVIEW就是利用其方便的圖形化界面使用戶能夠非常簡便的開發(fā)相關(guān)功能。1986年,LabVIEW1.0,運行在蘋果公司的Macintosh平臺上。1988年,LabVIEW2.0,1990年虛擬儀器面板和結(jié)構(gòu)化數(shù)據(jù)流獲兩項美國專利。1994年,LabVIEW3.0帶有附加工具包。1996年,LabVIEW4.0增加自定義界面和ApplicationBuilder。1998年,LabVIEW5.0支持多線程。2000年,LabVIEW6i集成因特網(wǎng)功能。2001年,LabVIEW6i實現(xiàn)遠程控制和增加事件結(jié)構(gòu)等重要功能。2003年,LabVIEW7Express增加了ExpressVI。2004年,LabVIEW7.1Express增加了許多全新的功能。2005年,LabVIEW8.0增加了許多全新的功能。2006年8月,LabVIEW8.20有了第一個中文版的開發(fā)環(huán)境。2007年8月,LabVIEW8.5。2008年8月,LabVIEW8.6。2009年2月,LabVIEW8.6.1。2010年以來,NI公司相繼發(fā)布了LabVIEW2010、LabVIEW2011,直至最新的LabVIEW2017版。LabVIEW向上是兼容的,最近幾年的LabVIEW各版本在操作方法、基本界面和功能上沒有區(qū)別。1.2LabVIEW簡介
1.2.1LabVIEW簡介LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)其中文名稱是實驗室虛擬儀器工程平臺。它是一個使用圖形符號來編寫程序的編程環(huán)境。在這一點上,它不同于傳統(tǒng)的文本編程語言,如C,C++或Java。LabVIEW是目前應用最廣、功能最為強大的虛擬儀器工程平臺,是一種圖形化的編程語言。由于LabVIEW具有一個高效的圖形化程序設(shè)計環(huán)境,結(jié)合了簡單易用的圖形化開發(fā)環(huán)境,所以又稱其為G語言(GraphicalLanguage)。1.2.2LabVIEW的特點與標準的試驗室儀器相比,LabVIEW提供了更大的靈活性,通過軟件我們可以定義儀器的功能。LabVIEW的出現(xiàn)大大提高了虛擬儀器的開發(fā)效率,降低了軟件操作對開發(fā)人員的要求。LabVIEW的特點體現(xiàn)在以下幾個方面:(1)編程簡單,由于LabVIEW提供了豐富的圖形控件,采用圖形化的編程方法,把工程師從復雜枯燥的文本編程工作中解脫出來。(2)開發(fā)周期短,只需通過交互式圖形前面板進行系統(tǒng)控制和結(jié)果顯示,可省去硬件面板的制作過程。(3)具備高效性,LabVIEW內(nèi)有600多個分析函數(shù),使得數(shù)據(jù)采集、信號處理、數(shù)據(jù)分析、數(shù)學運算等過程得以高效完成。(4)開放性,可以根據(jù)實際情況進行更新擴展。(5)通用性,LabVIEW提供了大量的驅(qū)動和模塊,幾乎能與任何接口的硬件輕松連接。(6)性價比高,能夠反復使用,并能一機多用。1.2.3LabVIEW2015的安裝LabVIEW可以安裝在MacOS、Linux和Windows2000/XP/Vista等不同的操作系統(tǒng)上,LabVIEW2015中文版可以到NI公司官網(wǎng)進行下載。雙擊下載的LabVIEW2015安裝包后選擇解壓的位置,然后點擊“Unzip”按鈕后軟件就進入了解壓進度,解壓完之后按照提示一步一步進行安裝。1.2.4LabVIEW的編程環(huán)境
LabVIEW軟件安裝完成后,可以通過以下兩種方式啟動LabVIEW2015:
(1)從“開始”菜單中選擇“所有程序”中的“NationalInstrument”,然后選擇“LabVIEW2015”,既可以運行程序。
(2)通過桌面快捷方式運行。1.2.5LabVIEW的啟動界面運行LabVIEW2015后,馬上會出現(xiàn)如圖所示的“啟動界面”,在“啟動界面”中可以進行新建VI、新建項目、新建基于模板VI、打開最近關(guān)閉的Ⅵ或者項目、打開LabVIEW2015自帶的幫助和入門指南等文檔、查找范例和鏈接LabVIEW2015網(wǎng)絡(luò)資源等操作。從該界面的菜單欄中選擇“文件”→“新建VI”選項,即可進入LabVIEW2015開發(fā)環(huán)境。LabVIEW的啟動界面1.2.6LabVIEW的編程界面在“啟動界面”的“文件”菜單下點擊“新建VI”后,彈出前面板窗口和程序框圖窗口,兩個窗口重疊在一起,可以點擊“窗口”菜單,選擇“左右兩欄顯示”或者“上下兩欄顯示”讓兩個窗口平鋪排列。新建的空白VI的前面板窗口和程序框圖窗口分別如圖所示。前面板窗口程序框圖窗口1.2.7LabVIEW的選板LabVIEW的開發(fā)工具共有三個選板:工具選板、控件選板和函數(shù)選板。1.工具選板工具選板是特殊的鼠標模式,工具選板模板提供了各種用于創(chuàng)建、修改和調(diào)試VI程序的工具,這些工具的使用類似于標準的畫圖程序工具。一般情況啟動LabVIEW后,工具選板可自動出現(xiàn)在窗口中,如果該選板沒有出現(xiàn),可以從菜單欄中選擇“查看”菜單中的“工具選板”選項即可調(diào)出,工具選板如圖所示。工具選板2.控件選板
控件選板用來給前面板設(shè)置各種所需的顯示控件和輸入控件。每個圖標代表一類子模板。如果控件選板未顯示,可以用“查看”菜單的“控件選板”功能打開它,也可以在前面板的空白處,右擊以彈出控件選板。
控件選板中常用的控件有“新式”、“銀色”、“系統(tǒng)”、和“經(jīng)典”四種風格,用戶可以根據(jù)自己的需要來選擇,下面介紹“新式”風格中幾種常用的子選板。
(1)數(shù)值子選板
數(shù)值子選板提供各種前面板所需的數(shù)值型控件,數(shù)值型控件主要完成參數(shù)設(shè)置和結(jié)果顯示。常用的有數(shù)值輸入控件、各種滑動桿、旋鈕、轉(zhuǎn)盤、顏色盒、數(shù)值顯示控件、各種進度條、各種刻度條、儀表、量表、液罐、溫度計、各種滾動條、時間標識控件等。
(2)布爾子選板
布爾子選板中包含一些布爾型的輸入控件和顯示控件,各種按鈕、開關(guān)、按鍵等都屬于輸入控件,各種指示燈則為顯示控件。
注意:布爾型控件的值只能是Ture和False。
(3)字符串與路徑
該子選板中有字符串輸入控件、字符串顯示控件、組合框、文件路徑輸入控件、文件路徑顯示控件。
(4)數(shù)組、矩陣與簇子選板
該子選板中有數(shù)組、簇、實數(shù)矩陣、復數(shù)矩陣、錯誤信息輸入控件和錯誤信息顯示控件。
(5)列表與表格
該子選板中有列表框、多列列表框、表格、樹形控件和Express表格等控件。
(6)圖形控件:主要完成結(jié)果顯示
該子選板中有波形圖表、波形圖、XY圖、ExpressXY圖、強度圖表、強度圖、數(shù)字波形圖、混合信號圖、羅盤圖、誤差線、羽狀圖、XY曲線矩陣、控件、三維圖片控件和數(shù)量眾多的三維圖形等控件。
(1)結(jié)構(gòu)子選板
結(jié)構(gòu)子選板中包括For循環(huán)、While循環(huán)、定時結(jié)構(gòu)、條件結(jié)構(gòu)、事件結(jié)構(gòu)、平鋪和層疊兩種順序結(jié)構(gòu)、公式節(jié)點、反饋節(jié)點、全局變量、局部變量等。
(2)數(shù)值子選板
數(shù)值子選板中包括各種常用的數(shù)學運算符,如+、-等,以及各種常見的運算式,如+1運算,還包括各種數(shù)值常量等。
(3)數(shù)組子選板
數(shù)組子選板包括各種數(shù)組運算函數(shù)以及數(shù)組常量等。
(4)簇子選板
簇子選板包括各種簇運算函數(shù)以及簇常量等。
(5)布爾子選板
布爾子選板中包括各種邏輯運算符以及各種布爾常量等。
(6)字符串子選板
字符串子選板中包括各種字符串操作函數(shù)以及各種字符串常量等。
(7)波形子選板
波形子選板中包括各種波形函數(shù)等。
3.函數(shù)選板
2.程序框圖工具欄程序框圖工具欄中有一些與前面板工具欄相同的按鈕,同時也包含前面板的工具欄中所沒有的5個程序調(diào)試按鈕,從左至右依次為:“以高亮顯示執(zhí)行過程”、“保存連線值”、“開始單步執(zhí)行”、“單步跳過”和“單步跳出”。1.2.9前面板窗口和程序框圖窗口的工具欄1.前面板工具欄前面板的工具欄如圖所示,工具欄中有9個按鈕,從左至右分別為“運行”、“連續(xù)運行”“異常終止執(zhí)行”“暫停”“文本設(shè)置”、“對齊對象”“分布對象”、“調(diào)整對象”、“重新排序”。1.2.8菜單欄1.2.10LabVIEW2015的幫助系統(tǒng)
LabVIEW2015的幫助系統(tǒng)提供了詳盡的幫助信息和編程范例,是最有用的學習LabVIEW的工具之一,有效地利用幫助信息是快速掌握LabVIEW的一條捷徑。獲取幫助信息的渠道包括顯示即時幫助、LabVIEW幫助、查找范例以及網(wǎng)絡(luò)資源等。1.3虛擬儀器自動化測試項目介紹1.3.1項目背景介紹智能制造(Intelligentmanufacturing)是一種由智能機器和人類專家共同組成的人機一體化智能系統(tǒng),它在制造過程中能進行智能活動,諸如分析、推理、判斷、構(gòu)思和決策等。通過人與智能機器的合作共事,去擴大、延伸和部分地取代人類專家在制造過程中的腦力勞動。1.3.2系統(tǒng)結(jié)構(gòu)自動測試設(shè)備由上位機、PXI機箱和板卡、信號轉(zhuǎn)換電路板、可編程電源和夾具組成。自動測試系統(tǒng)圖1.3.3系統(tǒng)功能程序控制PXI機箱里的可編程電阻板卡,從0Ω到2000Ω,每隔2秒鐘增加10Ω,給被測產(chǎn)品提供模擬溫度信號(因被測產(chǎn)品使用的是PT1000傳感器),通過串口將被測產(chǎn)品轉(zhuǎn)換后的溫度值讀取回來并與標準值進行對比,若偏差大于5%則報警。所有的數(shù)據(jù)均存入上位機,并將溫度值在上位機以波形圖的形式進行顯示。1.3.4項目實施模式項目的開展建議采用行動導向教學法進行,在每個任務中采用“資訊-計劃-決策-實施-檢查-評估”方式來組織教學,在教師的指導下,按特定的流程,進行理解需求、制定方案與計劃、確定方案、項目實施、項目檢查與評估。
小
結(jié)
虛擬儀器是現(xiàn)代實驗室的基礎(chǔ),是不斷革新的計算機技術(shù)與儀器技術(shù)相結(jié)合的產(chǎn)物,LabVIEW是一種利用圖標代替文本行創(chuàng)建應用程序的圖形化編程語言。本章主要介紹了虛擬儀器的結(jié)構(gòu)和特點,LabVIEW軟件的軟件界面及其使用,講述了LabVIEW的開發(fā)工具(三個選板)以及菜單欄,工具欄的使用,通過本章的學習,學生對虛擬儀器與LabVIEW有了初步的了解,為后面的學習打下了基礎(chǔ)。
習
題
1.什么是虛擬儀器?虛擬儀器的特點是什么?
2.?VI包括哪幾部分?如何在它們之間進行切換?
3.
LabVIEW的安裝過程分為哪幾個步驟?
4.
LabVIEW的中文含義是什么?
5.
LabVIEW開發(fā)工具包括哪幾個操作選板,各個選板的功能是什么?
6.比較前面板的工具欄和程序框圖工具欄的相同與不同之處。
7.
LabVIEW的幫助系統(tǒng)如何有效利用?
8.如何利用范例程序快速學習LabVIEW?
9.下載并安裝LabVIEW軟件,并在技術(shù)論壇中注冊一個賬號。
第2章簡單VI的設(shè)計與實現(xiàn)2.1從模版創(chuàng)建VI2.1.1從模板中創(chuàng)建VI
LabVIEW產(chǎn)品提供了模板和項目范例,其中模板展示了LabVIEW應用的最基本構(gòu)建模塊?!皠?chuàng)建項目”窗口
在LabVIEW“啟動界面(StartWindow)”中選擇“創(chuàng)建項目(New
Project)”可得到如圖所示的窗口。單擊圖標“項目(Project)”模板便會彈出如圖
“新建(New)”窗口。LabVIEW自帶的模板“生成和顯示”程序的前面板窗口
“生成和顯示”程序的程序框圖窗口2.1.2修改模版VI仿真信號對話框2.2.1前面板編輯1.前面板的輸入控件和顯示控件前面板是虛擬儀器與用戶的交互界面,可以模擬真實儀器儀表的前面板,用于設(shè)置輸入和顯示輸出。前面板的數(shù)據(jù)對象可以分為“輸入(Control)”控件和“顯示(Indicator)”控件兩大類。其中輸入控件是用戶用來往程序輸入數(shù)據(jù)的;顯示控件則是程序向用戶輸出運行結(jié)果的。前面板的每個控件,在程序框圖中都會對應一個接線端。2.2VI的編輯一個VI包括3個基本元素:前面板(FrontPanel)窗口、程序框圖(BlockDiagram)窗口、圖標及連接器(IconandConnectorPane)。2.前面板控件編輯1)選擇、移動、復制、粘貼、刪除2)創(chuàng)建和編輯標簽3)設(shè)置字體4)對象著色5)替換控件6)調(diào)整控件大小7)字體、字號及顏色的修改顏色設(shè)置對話框8)多個控件的排列
(1)對齊對象(AlignObjects)。(2)分布對象(DistributeObjects)。(3)調(diào)整對象大小(ResizeObjects)。(4)重新排序(Reorder)工具。9)數(shù)值型控件屬性設(shè)置(1)外觀設(shè)置。
(2)顯示格式設(shè)置。(3)標尺設(shè)置。10)布爾型控件屬性設(shè)置(1)“外觀”設(shè)置。(2)“操作”設(shè)置。2.2.2程序框圖編輯及VI調(diào)試1.程序框圖中的對象程序框圖中的對象包括節(jié)點、接線端、連線和常量四種。1)節(jié)點“節(jié)點(Node)”類似于文本編程語言中的操作符、函數(shù)或是子程序,節(jié)點擁有多個輸入和輸出,在VI運行時完成一定操作功能。在LabVIEW中,節(jié)點分為以下四類:(1)函數(shù)(Function)。函數(shù)是完成LabVIEW程序功能的最基本成員,相當于文本編程語言的操作符或語句。(2)子VI(SubVI)。子VI區(qū)別于普通的節(jié)點,它本身是一個程序,并且是用于另一個VI的程序,即被另一個VI調(diào)用的子程序。(3)
ExpressVI。ExpressVI是一類特殊子VI,可以通過對話框配置參數(shù),執(zhí)行常規(guī)的測試任務。(4)結(jié)構(gòu)(Structure)。結(jié)構(gòu)類似于文本編程語言中的循環(huán)。結(jié)構(gòu)是控制代碼執(zhí)行的元素,在程序框圖中使用結(jié)構(gòu)來重復執(zhí)行某一段代碼,或是有條件執(zhí)行某一段代碼,或是按照一定的順序來執(zhí)行。常用的結(jié)構(gòu)有For循環(huán)、While循環(huán)、條件結(jié)構(gòu)、順序結(jié)構(gòu)、事件結(jié)構(gòu)等幾種。2)接線端在程序框圖中,凡是能夠進行連線的都是接線端,按照接線端不同,分為兩類:(1)控件接線端。前面板上所有的控件,在程序框圖中都會出現(xiàn)一個接線端,其中輸入控件的接線端口在右側(cè),顯示控件的接線端口在左側(cè)。下圖為旋鈕控件及其接線端。(2)節(jié)點接線端。節(jié)點接線端是節(jié)點連線的位置,即數(shù)據(jù)傳遞的端點。所有的節(jié)點,使用連線工具觀察,都可看到或多或少的接線端口。3)常量在函數(shù)選板中有各種常用的“常量(Constance)”,比如數(shù)值常量,布爾常量、字符串常量,用戶可以在編寫程序時為它賦值。另外在“數(shù)值(Numeric)”子選板中還有各種科學常量,例如自然對數(shù)的底e、回車符等。4)連線連線(Wire)用來把程序框圖的其他各元素相互連接,傳送數(shù)據(jù)。(1)顏色。連線不同的形狀表示不同的數(shù)據(jù)類型,一般來說,橙色代表浮點數(shù),綠色代表布爾量,粉紅色代表字符串,藍色代表整型數(shù)…。(2)線型。不同的線型也代表不同的數(shù)據(jù)類型。其中,細線代表單個數(shù)據(jù),點線代表布爾量,粗線代表數(shù)組,雙線代表二維數(shù)組,網(wǎng)格線代表簇…。(3)連線方法。①“工具選板”中的“自動選擇工具”。②直接使用“連線工具”(4)連線路徑。LabVIEW會為連線選擇一條合理的路徑。(5)選擇和刪除連線。
整理前
整理后(6)整理程序框圖。單擊程序框圖的“編輯(Edit)”菜單,然后點擊“整理所選部分(CleanUpWire)”即可快速進行連線整理。2.?VI程序設(shè)計流程
LabVIEW程序設(shè)計主要包括前面板創(chuàng)建、程序框圖創(chuàng)建及運行與調(diào)試三部分。VI創(chuàng)建步驟如下:
1)創(chuàng)建前面板
(1)根據(jù)VI設(shè)計要求,在前面板中點擊鼠標右鍵打開控件選板,選擇所需的輸入控件、顯示控件,用鼠標拖至相應前面板的位置,松開鼠標圖標放置完畢。
(2)根據(jù)要求對每個控件的屬性進行設(shè)置。
2)創(chuàng)建程序框圖
(1)在程序框圖中點擊鼠標右鍵打開函數(shù)選板,選擇所需的函數(shù),拖動到相應前面板的位置,松開鼠標圖標放置完畢.
(2)利用連線工具將程序框圖中的接線端連接構(gòu)成完整程序。
3)程序運行與調(diào)試
程序編寫完成后,在前面板為各種輸入控件賦值,然后點擊工具欄的運行程序按鈕,運行程序,并可修改參數(shù)完成程序調(diào)試。
4)保存程序
程序運行正常,將程序命名(程序名后綴必須為.VI)并保存。
2.3VI的運行與調(diào)試VI編寫完成之后,要對程序進行運行與調(diào)試來測試程序是否能夠產(chǎn)生預期的結(jié)果,如果運行結(jié)果不正確,還要利用LabVIEW提供的工具進行問題查找等調(diào)試工作。2.3.1VI的運行若程序存在錯誤。單擊折斷箭頭則可出現(xiàn)“錯誤列表(ErrorList)”窗口,錯誤列表分為三部分。第一欄(VIlist)列出錯誤的程序名稱。第二欄(errorandwarnings)列出程序中錯誤節(jié)點名稱及錯誤原因。第三欄(details)顯示錯誤詳細原因及改正方法。雙擊每條錯誤會在框圖程序中以高亮形式顯示錯誤節(jié)點和連線。2.3.2VI的調(diào)試LabVIEW還提供了斷點工具和探針工具方便用戶控制程序執(zhí)行和實時觀察變量值。1.斷點診斷“斷點(Breakpoint)”用來使程序執(zhí)行中在某一位置暫停,以便于觀察中間結(jié)果。2.探針診斷程序調(diào)試過程中,將斷點工具與“探針(Probe)”工具配合使用可確認數(shù)據(jù)是否有誤,并找到錯誤所在的位置。探針的功能是在程序運行時會立即顯示流過某一連線的數(shù)據(jù)值等信息,甚至可以根據(jù)數(shù)據(jù)值進行一定的響應。2.4創(chuàng)建子VI2.4.1創(chuàng)建子VI1.編輯子VI圖標LabVIEW為每個程序創(chuàng)建了一個默認圖標,位于前面板和程序框圖窗口的右上角,可對這個圖標進行編輯。2.編輯連接器連接器用于子VI與高層程序進行數(shù)據(jù)傳遞的輸入/輸出接口,連接器圖標位于窗口的右上角。2.4.2調(diào)用子VI編輯好圖標和連接器后,子VI可以被其他程序調(diào)用。在新的VI中的程序框圖中,右鍵彈出的函數(shù)選板中點擊“選擇VI”選項,即可在“文件選擇”對話框中選擇之前保存的子VI。
綜合實訓
本章任務:用兩種方法(普通函數(shù)法和公式法)實現(xiàn)數(shù)學運算。
sin(X1*X2+X3/X4-X5)+abs(X6)+sqrt(X7)+pi*X8。要求為X1-X8分別賦值為1-8,運行并調(diào)試該程序。
解
該題目中涉及到簡單的數(shù)學運算及三角函數(shù)運算,首先明確“abs”為取絕對值,“sqrt”為
平方根,“pi”為科學常量π,接下來使用兩種編程方法實現(xiàn)該運算。
小
結(jié)
LabVIEW與其他文本編程語言一樣,掌握基編程方法是最基本要求。本章主要介紹了前面板和程序框圖的編輯方法;VI的編程、運行和調(diào)試方法;以及子VI的創(chuàng)建與調(diào)用方法。通過本章的學習,學生了解了LabVIEW中VI的組成及編輯方法,掌握了程序編寫、運行與調(diào)試方法。
習
題
1.LabVIEW的VI包括哪幾部分?如何在它們之間進行切換?
2.比較LabVIEW工具欄和程序框圖工具欄的相同和不同之處。
3.在前面板上隨便放置5個控件,按下面要求進行操作
(1)將這5個控件設(shè)置成大小相同;
(2)將這5個控件頂端對齊,水平中心分布,組合在一起并鎖定。
4.簡述LabVIEW中VI的創(chuàng)建步驟。
5.程序框圖由哪些對象構(gòu)成?有哪幾類節(jié)點和接線端?
6.如何設(shè)置斷點?如何放置探針?
7.編寫程序:將旋鈕的值的2倍賦予儀表,并用兩種方式顯示出來(模擬顯示和數(shù)字顯示)。
第3章數(shù)據(jù)類型與運算3.1數(shù)值型3.2布爾型3.3字符串型3.4局部和全局變量3.5數(shù)組3.6簇3.7波形綜合實訓小結(jié)習題
3.1數(shù)值型
數(shù)值型(Numeric)數(shù)據(jù)是LabVIEW中最基本的數(shù)據(jù)類型,直接用數(shù)字常量進行表達,如10、105、0.32等。程序的核心任務是處理數(shù)據(jù),LabVIEW支持所有的常見數(shù)據(jù)類型,如數(shù)值型、布爾型、字符串、波形、數(shù)組、簇、輸入/輸出、路徑、時間、枚舉型、圖片等。數(shù)據(jù)類型決定數(shù)據(jù)的存儲空間大小與操作方式。程序框圖中每個接線端對數(shù)據(jù)類型都有一定的要求。數(shù)值型數(shù)據(jù)類型選板如圖3-1所示。
圖3-1數(shù)值型數(shù)據(jù)類型選板
3.1.1數(shù)值類型
數(shù)值型數(shù)據(jù)隨著精度和取值范圍的不斷擴大,占用的內(nèi)存也不斷增大,因此,一般在設(shè)計程序時,在滿足取值范圍的前提下,盡可能選用取值范圍較小的數(shù)據(jù)類型。當變量的取值范圍不能確定時,可以選用取值范圍較大的數(shù)據(jù)類型以保證數(shù)據(jù)安全。基本數(shù)據(jù)類型如表3-1所示。
3.1.2數(shù)值型數(shù)據(jù)的設(shè)置
在前面板點擊“控件選板”→“新式”→“數(shù)值”,子模板中可以設(shè)置數(shù)值型數(shù)據(jù),如圖3-2所示。選好數(shù)值型數(shù)據(jù)后單擊右鍵,選擇“屬性”,在數(shù)據(jù)類型當中可以對數(shù)據(jù)的長度和類型進行修改,如圖3-3所示。
圖3-2數(shù)值型數(shù)據(jù)屬性設(shè)置
圖3-3數(shù)值型數(shù)據(jù)類型設(shè)置
3.1.3數(shù)值計算函數(shù)
除了基本數(shù)據(jù)類型的設(shè)置,LabVIEW還提供了多種數(shù)值型數(shù)據(jù)的計算函數(shù)。在程序編程的面板下單擊右鍵,選擇“數(shù)值”選板,就能看到各種數(shù)值運算函數(shù),如圖3-4所示。
圖3-4數(shù)值運算函數(shù)
表3-2是數(shù)值運算函數(shù)的基本說明。
如果連線兩個波形數(shù)據(jù)或動態(tài)數(shù)據(jù)類型至該函數(shù),則函數(shù)可顯示錯誤輸入和錯誤輸出接線端,不能對兩個時間標識的值求和。相加的兩個矩陣的維數(shù)必須相同,否則,函數(shù)返回空矩陣。連線板可顯示該多態(tài)函數(shù)的默認數(shù)據(jù)類型,如圖3-5所示。圖3-5求和運算程序框圖
演示加函數(shù)處理不同數(shù)據(jù)類型的方法,如圖3-6所示。該方法同樣適用于包括復合運算在內(nèi)的其他數(shù)值函數(shù)?!皬秃线\算”函數(shù)可對兩個以上的輸入進行數(shù)值操作,如圖3-7所示。圖3-6數(shù)值加法運算前面板
圖3-7數(shù)值加法運算程序
3.2布爾型
3.2.1布爾型數(shù)據(jù)布爾(Boolean)控件代表一個布爾類型值,只能是True或false,它既可以代表按鈕輸入,也可以當成指示燈顯示進行信號輸出。程序框圖中,要對布爾量進行操作可以選擇“函數(shù)選板”→“編程”→“布爾”,得到“布爾”類型數(shù)據(jù),如圖3-8所示。圖3-8布爾型數(shù)據(jù)選板
對于輸入型數(shù)據(jù),單擊右鍵選擇“屬性”,可以在“操作”中選擇模擬真實開關(guān)的一種開關(guān)控制特性,如圖3-9所示。機械動作定義了用鼠標單擊按鈕或開關(guān)時,其值在什么時候發(fā)生數(shù)值變化。
圖3-9布爾型輸入操作選板
3.2.2布爾型函數(shù)
在程序面板選擇“布爾”可以看到布爾型運算函數(shù),其中包含了與、或、非等運算,如圖3-10所示。
圖3-10布爾型函數(shù)選板
表3-3是布爾型運算函數(shù)的基本說明。
例如:演示“與”函數(shù)的操作,但比較的方法也同樣適用于包括復合運算在內(nèi)的其他布爾函數(shù)?!皬秃线\算”函數(shù)可對兩個以上的輸入進行布爾操作。布爾與運算前面板如圖3-11所示,布爾與運算程序如圖3-12所示。圖3-11布爾與運算前面板
圖3-12布爾與運算程序
3.3字符串型
字符串(String)是一系列可顯示的或不可顯示的ASCII碼字符的集合。程序中通常在以下情況用到字符串傳遞信息,創(chuàng)建簡單的文本信息或?qū)υ捒蛱崾尽T谶@種情況下,我們也可以在中文操作系統(tǒng)中使用漢字。當存儲數(shù)據(jù),數(shù)值型數(shù)據(jù)作為ASCII文件存盤時,必須先把它轉(zhuǎn)換為字符串。儀器通信,通常把數(shù)值型的數(shù)據(jù)作為字符串傳輸給儀器,然后再將字符串轉(zhuǎn)化為數(shù)字。
3.3.1字符串控件
在字符串控件中可以選擇字符串輸入和輸出控件。字符串控件選板如圖3-13所示,字符串控件前面板如圖3-14所示。
圖3-13字符串控件選板
圖3-14字符串控件前面板
使用鼠標右鍵單擊字符串控件,選擇屬性,可以對字符串類型的數(shù)據(jù)進行屬性設(shè)置,包括顯示樣式、標簽、標題等,如圖3-15所示。
圖3-15字符串屬性選板
3.3.2字符串函數(shù)
字符串在LabVIEW編程中會經(jīng)常用到,因此LabVIEW內(nèi)置了功能豐富的字符串函數(shù)用于字符串的處理,用戶不需要再像C語言中那樣為字符串的操作編寫繁瑣的程序。字符串控件包括輸入控件、顯示控件和下拉框,如圖3-16所示。圖3-16字符串函數(shù)選板
表3-4為字符串函數(shù)的基本說明。
1.字符串連接函數(shù)
字符串連接函數(shù)用來連接輸入字符串和一維字符串數(shù)組作為輸出字符串。對于數(shù)組輸入,該函數(shù)連接數(shù)組中的每個元素。右鍵單擊函數(shù),在快捷菜單中選擇添加輸入,或調(diào)整函數(shù)大小,均可向函數(shù)增加輸入端。字符串連接函數(shù)接線說明如圖3-17所示。
圖3-17字符串連接函數(shù)接線說明
字符串連接函數(shù)常用于合并多個獨立的字符串為一個字符串,如圖3-18所示。字符串連接函數(shù)程序如圖3-19所示。圖3-18字符串連接函數(shù)前面板
圖3-19字符串連接函數(shù)程序
2.字符串截取函數(shù)
字符串截取函數(shù)用來返回輸入字符串的子字符串,從偏移量位置開始,包含長度個字符。連線板可顯示該多態(tài)函數(shù)的默認數(shù)據(jù)類型。偏移量指定字符串中的字符數(shù)值,函數(shù)在該字符數(shù)值后開始查找匹配。偏移量必須為數(shù)值,而且字符串中第一個字符的偏移量為0。如偏移量未連線或小于0,則函數(shù)將使用0作為偏移量。長度也必須為數(shù)值。如長度未連線,則默認值為字符串長度減去偏移量。子字符串如偏移量大于字符串的長度,或長度小于等于0,則值為空;如長度大于或等于字符串長度減去偏移量,則子字符串是從偏移量開始的剩余部分。字符串截取函數(shù)接線說明如圖3-20所示。圖3-20字符串截取函數(shù)接線說明
3.字符串長度函數(shù)
字符串長度函數(shù)通過長度返回字符串的字符長度(字節(jié))。連線板可顯示該多態(tài)函數(shù)的默認數(shù)據(jù)類型。字符串可以是一個字符串或者只包含字符串的數(shù)組或簇。長度的結(jié)構(gòu)與字符串一致。字符串長度函數(shù)前面板如圖3-21所示,程序如圖3-22所示。
圖3-21字符串長度函數(shù)前面板圖3-22字符串長度函數(shù)程序
4.替換子字符串函數(shù)
子字符串包含用于替換字符串中位于偏移量處的長度個字符的子字符串。偏移量確定輸入字符串中開始替換子字符串的位置。長度確定字符串中替換子字符串的字符數(shù)。如子字符串為空,則刪除從偏移量開始的長度個字符,結(jié)果字符串包含已經(jīng)進行替換的字符串,并且替換子字符串包含字符串中替換的字符串。該函數(shù)從偏移量位置開始在字符串中刪除長度個字符,并使刪除的部分替換為子字符串。如長度為0,則替換子字符串函數(shù)在偏移量位置插入子字符串。如字符串為空,則該函數(shù)在偏移量位置刪除長度個字符。替換子字符串函數(shù)接線說明如圖3-23所示。圖3-23替換子字符串函數(shù)接線說明
5.轉(zhuǎn)換為大寫字母函數(shù)
轉(zhuǎn)換為大寫字母函數(shù)用來使字符串中的所有字母字符轉(zhuǎn)換為大寫字母,使字符串中的所有數(shù)字作為ASCII字符編碼處理。該函數(shù)不影響非字母表中的字符。連線板可顯示該多態(tài)函數(shù)的默認數(shù)據(jù)類型。字符串可以是字符串、字符串簇、字符串數(shù)組或字符串簇數(shù)組。所有大寫字母字符串的結(jié)構(gòu)與字符串一致。如字符串為數(shù)值或數(shù)值數(shù)組,每個數(shù)值都以ASCII編碼值表示。該函數(shù)可使97~122范圍內(nèi)的所有值轉(zhuǎn)換為65~90的范圍。同時,該函數(shù)也可轉(zhuǎn)換擴展ASCII字符集中其他任何具有對應大寫字母的字符的值(例如,帶有重音的小寫字母字符)。轉(zhuǎn)換大寫字母函數(shù)接線說明如圖3-24所示。
圖3-24轉(zhuǎn)換大寫字母函數(shù)接線說明
3.4局部和全局變量
3.4.1局部變量LabVIEW編程是通過接線方式來進行數(shù)據(jù)傳輸,當需要在程序框圖中多個位置訪問同一個參數(shù)時,接線會比較困難甚至造成數(shù)據(jù)混淆。創(chuàng)建局部變量的方法有以下兩種:(1)使用鼠標右鍵單擊前面板中已有的對象,在彈出的快捷菜單中選擇“創(chuàng)建”→“局部變量”,即可為該對象建立局部變量,如圖3-25所示。
圖3-25局部變量前面板設(shè)置
通過函數(shù)選板建立局部變量。如圖3-26所示,選擇“數(shù)據(jù)通信”→“局部變量”,并將其拖放到程序框圖上,在圖標上單擊鼠標右鍵彈出快捷菜單,選擇“選擇項”,連接對象。圖3-26局部變量程序面板設(shè)置
3.4.2全局變量
局部變量與前面板上已有的某個控件相互關(guān)聯(lián),用于在一個程序的不同位置訪問同一控件,實現(xiàn)一個程序內(nèi)的數(shù)據(jù)傳遞。而全局變量是用于在不同的程序之間進行數(shù)據(jù)傳遞,這些互相傳遞數(shù)據(jù)的程序可以是并行的,也可以是不便于通過接口傳遞數(shù)據(jù)的子程序和主程序。全局變量也是用一個控件的形式存放數(shù)據(jù),但是這個控件和調(diào)用它的VI是相互獨立的,以一個特殊的VI作為自己的容器。
3.5數(shù)組
3.5.1數(shù)組的概念數(shù)組(Array)是同一類數(shù)據(jù)元素的集合,這些元素可以同是數(shù)值型、布爾型、字符串、波形等,也必須同時為輸入控件或者顯示控件。
一個數(shù)組是由數(shù)據(jù)和維數(shù)共同定義的。例如:一個數(shù)據(jù)采集通道在一段時間內(nèi)采集到的電壓值可以構(gòu)成一個數(shù)組,即一維數(shù)組;一維數(shù)組是一行或者一列數(shù)據(jù),可以描繪平面上的一條曲線。兩個數(shù)據(jù)采集通道在同一段時間內(nèi)采集到的電壓值也可以構(gòu)成一個數(shù)組,即二維數(shù)組;二維數(shù)組由若干行和若干列數(shù)據(jù)組成,可以在一個平面上描繪多條曲線。三個數(shù)據(jù)采集通道在不同段時間內(nèi)采集到的電壓值可以構(gòu)成一個數(shù)組,即三維數(shù)組;三維數(shù)組由若干頁組成,每一頁又是一個二維數(shù)組。
3.5.2創(chuàng)建數(shù)組
1.一維數(shù)組的創(chuàng)建
(1)在前面板的控件選板中的“數(shù)組、矩陣與簇”子選板(如圖3-27所示)中選擇“數(shù)組”控件拖至前面板位置,即創(chuàng)建了一個數(shù)組外框,如圖3-28(a)所示。
圖3-27數(shù)組子模板
(2)把一個數(shù)據(jù)對象,如數(shù)值型、布爾型、字符串等的控制或指示,拖入數(shù)組外框中,松開鼠標完成數(shù)組創(chuàng)建。圖3-28(b)中創(chuàng)建了一個數(shù)值型數(shù)組輸入控件,數(shù)組外框會根據(jù)對象的大小自動調(diào)整為相應的尺寸。數(shù)組在程序框圖中的圖標如圖3-28(c)所示。
圖3-28數(shù)組的創(chuàng)建
2.二維數(shù)組的創(chuàng)建
二維數(shù)組是在一維數(shù)組的基礎(chǔ)上創(chuàng)建的。二維數(shù)組有兩個索引:行索引和列索引。如圖3-29(a)所示的橢圓部分,其中上一行為行索引,下一行為列索引。
二維數(shù)組的創(chuàng)建方法如下:
(1)使用鼠標右鍵單擊數(shù)組索引顯示部分,選擇添加維度(AddDimension)。
(2)拖曳需要的數(shù)據(jù)對象。
(3)用鼠標可以拖曳出一個多行多列的數(shù)組,如圖3-29(b)所示。圖3-29二維數(shù)組
3.數(shù)組常量的創(chuàng)建
從函數(shù)選板的數(shù)組子選板中選擇數(shù)組常量(ArrayConstant)拖曳至框圖中創(chuàng)建一個空的黑色數(shù)組外框(如圖3-30(a)所示),然后再拖曳需要的數(shù)據(jù)常量進入數(shù)組外框。該數(shù)組外框的大小和顏色會隨著對象的類型自動變化。圖3-30(b)中的數(shù)據(jù)類型為數(shù)值型。
圖3-30數(shù)組常量
3.5.3數(shù)組函數(shù)
數(shù)組的操作函數(shù)可以從函數(shù)模板中的數(shù)組子選板中直接調(diào)用。數(shù)組函數(shù)子選板如圖3-31所示。LabVIEW的數(shù)組選板中有豐富的數(shù)組函數(shù)可以實現(xiàn)對數(shù)組的操作。
圖3-31數(shù)組函數(shù)子選板
1.數(shù)組大小函數(shù)
數(shù)組大小函數(shù)可以返回輸入數(shù)組中元素的個數(shù)。圖3-32(a)中一維數(shù)組顯示的是第6個元素,后面的元素是暗色,說明這個數(shù)組中只有6個元素,前面板的運行結(jié)果也為6;圖3-32(b)中數(shù)組大小函數(shù)相連的是二維數(shù)組常量,應該返回一個一維數(shù)組。圖3-32數(shù)組大小函數(shù)結(jié)構(gòu)
2.索引數(shù)組函數(shù)
索引數(shù)組函數(shù)可以用來訪問數(shù)組中的某個(或某些)特定元素。該函數(shù)圖標會自動調(diào)整大小,以適應輸入數(shù)組的維數(shù)。索引數(shù)組函數(shù)結(jié)構(gòu)如圖3-33所示。
圖3-33索引數(shù)組函數(shù)結(jié)構(gòu)
3.初始化數(shù)組函數(shù)
初始化數(shù)組函數(shù)可以創(chuàng)建一個所有元素全部相同的數(shù)組。初始化數(shù)組函數(shù)結(jié)構(gòu)如圖3-34所示。圖3-34初始化數(shù)組函數(shù)結(jié)構(gòu)
4.創(chuàng)建數(shù)組函數(shù)
在程序框圖放置創(chuàng)建數(shù)組函數(shù)時,只有一個輸入端可用,增加輸入端的方法:使用鼠標右鍵單擊圖標,在快捷菜單中選擇“添加輸入”或用鼠標拖曳即可。創(chuàng)建數(shù)組函數(shù)結(jié)構(gòu)如圖3-35所示。
圖3-35創(chuàng)建數(shù)組函數(shù)結(jié)構(gòu)
5.刪除數(shù)組元素函數(shù)
刪除數(shù)組元素函數(shù)用于刪除數(shù)組中的某個(或某些)元素,刪除數(shù)組中從某一索引號開始某設(shè)定長度的部分,返回刪除該部分后的數(shù)組以及被刪除的部分數(shù)組。刪除數(shù)組元素函數(shù)結(jié)構(gòu)如圖3-36所示。
圖3-36刪除數(shù)組函數(shù)結(jié)構(gòu)
6.數(shù)組插入函數(shù)
數(shù)組插入函數(shù)用于向數(shù)組輸入新的元素或子數(shù)組,插入位置由行索引或者列索引給出。數(shù)組插入函數(shù)前面板和程序框圖分別如圖3-37和圖3-38所示。圖3-37數(shù)組插入函數(shù)前面板
圖3-38數(shù)組插入函數(shù)程序框圖
7.數(shù)組最大值與最小值函數(shù)
數(shù)組最大值與最小值函數(shù)用來返回數(shù)組中的最大值和最小值及其索引。連線板可顯示該多態(tài)函數(shù)的默認數(shù)據(jù)類型。數(shù)組可以是任意類型的n維數(shù)組。數(shù)組最大值與最小值函數(shù)程序結(jié)構(gòu)如圖3-39所示。圖3-39數(shù)組最大值與最小值函數(shù)程序結(jié)構(gòu)
8.替換數(shù)組子集函數(shù)
替換數(shù)組子集函數(shù)用來從索引中指定的位置開始替換數(shù)組的某個元素或子數(shù)組。拖動替換數(shù)組子集函數(shù)的圖標下邊框可以增加新的替換索引組,從而利用一個替換數(shù)組子集函數(shù)完成多次替換操作,替換順序按圖標索引組從上到下執(zhí)行。替換數(shù)組子集函數(shù)前面板如圖3-40所示,程序框圖如圖3-41所示。
圖3-40替換數(shù)組子集函數(shù)前面板
圖3-41替換數(shù)組子集函數(shù)程序框圖
9.一維數(shù)組排序函數(shù)
一維數(shù)組排序函數(shù)用來返回數(shù)組元素按照升序排列的數(shù)組。如數(shù)組為簇數(shù)組,則該函數(shù)可按照第一個元素的比較結(jié)果對元素進行排序;如第一個元素匹配,則函數(shù)可比較第二個和其后的元素。連線板可顯示該多態(tài)函數(shù)的默認數(shù)據(jù)類型。一維數(shù)組排序函數(shù)程序結(jié)構(gòu)如圖3-42所示。
圖3-42一維數(shù)組排序函數(shù)程序結(jié)構(gòu)
3.6簇
3.6.1簇的概念簇(Cluster)是由不同類型的數(shù)據(jù)元素組成的一種數(shù)據(jù)類型。簇可以把不同數(shù)據(jù)類型的元素組合在一起,類似于C語言中的結(jié)構(gòu)體。簇是一種類似數(shù)組的數(shù)據(jù)結(jié)構(gòu),也是復合數(shù)據(jù)類型,用于分組數(shù)據(jù)。簇與數(shù)組有兩個重要區(qū)別:一是簇可以包含不同的數(shù)據(jù)類型,而數(shù)組只能包含相同的數(shù)據(jù)類型;二是簇具有固定的大小,在運行時不能添加元素,而數(shù)組的長度在運行時可以自由改變。
雖然數(shù)組與簇都是元素的集合,但兩者還是有比較大的區(qū)別,如表3-5所示。
3.6.2創(chuàng)建簇
(1)在控件選板的“數(shù)組矩陣與簇”子模板中,找到“簇”,拖至前面板放置,創(chuàng)建外框,如圖3-43(a)所示。
(2)將控件選板的控制或指示拖入外框中,創(chuàng)建一個簇,如圖3-43(b)所示。這個簇由一個數(shù)值型控件、一個布爾型控件和一個字符串控件組成,其框圖對應的圖標如圖3-43(c)所示。全部由數(shù)值型對象組成的簇的圖標為棕色,不同類型組成的簇的圖標為粉紅色。
圖3-43簇的創(chuàng)建
3.6.3簇函數(shù)
LabVIEW提供了豐富的簇函數(shù),如圖3-44所示。
圖3-44簇函數(shù)操作子模板
1.捆綁和解除捆綁函數(shù)
把相關(guān)的元素組合成一個簇的操作叫作打包,可用簇子選板中的捆綁(Bundle)函數(shù)實現(xiàn);從一個簇中提取出需要的元素的操作叫作解包,可用簇子選板中的解除捆綁(Unbundle)函數(shù)實現(xiàn)。Bundle節(jié)點的圖標如圖3-45所示,當不接入輸入?yún)?shù)cluster時,該節(jié)點將元素0~n-1打包生成含有n個元素的新簇,接入輸入端口的順序決定了生成新簇中元素的順序;當接入?yún)?shù)cluster后,element端口的數(shù)目自動調(diào)整為與cluster所含元素數(shù)相同,節(jié)點的功能是替換cluster中的指定元素。注意:接入元素的順序必須與cluster中所含元素的順序按照類型匹配。剛在框圖上放置的Bundle節(jié)點只有兩個輸入端口,用鼠標拖動下邊沿,或者在節(jié)點的快捷菜單中選擇AddInput可以增加端口,如圖3-45所示。
圖3-45簇綁定函數(shù)結(jié)構(gòu)
2.創(chuàng)建簇數(shù)組函數(shù)
創(chuàng)建簇數(shù)組函數(shù)用來使每個元素輸入捆綁為簇,然后使所有元素簇組成以簇為元素的數(shù)組。連線板將顯示該多態(tài)函數(shù)的默認數(shù)據(jù)類型。創(chuàng)建簇數(shù)組函數(shù)結(jié)構(gòu)如圖3-46所示。圖3-46創(chuàng)建簇數(shù)組函數(shù)結(jié)構(gòu)
元素0~n-1輸入端的類型必須與最頂端的元素接線端的值一致。簇數(shù)組是作為結(jié)果的數(shù)組。每個簇都有一個元素。數(shù)組中不能再創(chuàng)建數(shù)組的數(shù)組。但是,使用該函數(shù)可創(chuàng)建以簇為元素的數(shù)組,簇可包含數(shù)組。創(chuàng)建簇數(shù)組函數(shù)程序框圖如圖3-47所示,通過使用該函數(shù)可提高執(zhí)行的效率。圖3-47創(chuàng)建簇數(shù)組函數(shù)程序框圖
3.索引與捆綁簇數(shù)組函數(shù)
索引與捆綁簇數(shù)組函數(shù)用來對多個數(shù)組建立索引,并創(chuàng)建簇數(shù)組,第i個元素包含每個輸入數(shù)組的第i個元素。連線板可顯示該多態(tài)函數(shù)的默認數(shù)據(jù)類型。索引與捆綁簇數(shù)組函數(shù)結(jié)構(gòu)如圖3-48所示。
圖3-48索引與捆綁簇數(shù)組函數(shù)結(jié)構(gòu)
數(shù)組x..z可以是任意類型的一維數(shù)組。數(shù)組輸入無需為同一類型。簇數(shù)組是由簇組成的數(shù)組,包含每個輸入數(shù)組的元素。輸出數(shù)組中的元素數(shù)等于最短輸入數(shù)組的元素數(shù)。圖3-49所示的程序框圖為兩種通過索引多個數(shù)組得到簇數(shù)組的方式,通過該函數(shù)可提高時間和內(nèi)存的使用效率。
圖3-49索引與捆綁簇數(shù)組函數(shù)程序框圖
4.簇至數(shù)組轉(zhuǎn)換函數(shù)
簇至數(shù)組轉(zhuǎn)換函數(shù)用來使相同數(shù)據(jù)類型元素組成的簇轉(zhuǎn)換為數(shù)據(jù)類型相同的一維數(shù)組。簇至數(shù)組轉(zhuǎn)換函數(shù)結(jié)構(gòu)如圖3-50所示。圖3-50簇至數(shù)組轉(zhuǎn)換函數(shù)結(jié)構(gòu)
3.7波形
3.7.1波形的概念波形類似于簇,但是波形的元素的類型和數(shù)量是固定的。波形可以用圖形顯示控件來顯示。波形的全部元素包括數(shù)據(jù)采集的起始時間t0、時間間隔dt、波形數(shù)據(jù)Y和屬性。波形數(shù)據(jù)Y可以是一個數(shù)組,也可能是一個數(shù)值。
3.7.2波形的創(chuàng)建
在程序面板單擊鼠標右鍵,選擇“波形”,如圖3-51所示。放置波形前面板如圖3-52所示。
圖3-51波形選板
圖3-52波形前面板
3.7.3波形的屬性
LabVIEW提供基本的波形操作函數(shù),位于“波形”函數(shù)子選板中;LabVIEW還提供大量高級的波形分析函數(shù),位于“信號處理”函數(shù)子選板中,包括波形生成、波形調(diào)理、波形測量3個子選板。
例如:演示通過“加”“減”“乘”“除”函數(shù)對波形數(shù)據(jù)類型執(zhí)行常見數(shù)學運算。波形傳輸前面板如圖3-53所示,波形傳輸程序框圖如圖3-54所示。圖3-53波形傳輸前面板
圖3-54波形傳輸程序框圖
綜合實訓
初始化一個3?×?5的二維數(shù)組,其元素的初始值全部為1;計算數(shù)組的大??;有一維數(shù)組常量(5,4,3,2,1)替代二維數(shù)組的第0行;以第0行第一列元素為起點,提取2行3列的一個二維矩陣。(1)前面板創(chuàng)建。圖3-55所示為前面板。
圖3-55前面板
(2)程序框圖創(chuàng)建。圖3-56所示為程序框圖。
(3)運行調(diào)試。圖3-56程序框圖
小結(jié)
本章主要介紹了LabVIEW中常用的數(shù)據(jù)類型以及相應的設(shè)置規(guī)則,同時介紹了各種數(shù)據(jù)類型相關(guān)的函數(shù)以及程序調(diào)試方法。通過本章的學習,可使學生能夠靈活地運用各種數(shù)據(jù)類型和相應的函數(shù)。評價與考核如表3-6所示。
習題
1.數(shù)值型數(shù)據(jù)根據(jù)數(shù)據(jù)精度劃分有哪些具體的類型?
2.用布爾型數(shù)據(jù)設(shè)計由一個按鈕操控的小燈。
3.討論數(shù)組和簇的相同點和不同點。
4.設(shè)計一個能夠輸入任意字符串并能計算字符串長度的VI。
5.建立一個簇,包含個人姓名、年齡、民族、專業(yè)等信息,并使用Unbundle節(jié)點將各個元素分別取出。
6.編寫計算以下等式的程序:y1?=?x3?-?x2?+?5,y2?=?m?×?x?+?b,x的范圍是0~10,y1和y2用數(shù)組顯示控件并顯示在前面板上。第4章結(jié)構(gòu)控制4.1循環(huán)結(jié)構(gòu)4.2條件結(jié)構(gòu)4.3事件結(jié)構(gòu)4.4順序結(jié)構(gòu)4.5公式節(jié)點綜合實訓小結(jié)習題
LabVIEW中所有的結(jié)構(gòu)都包含在“結(jié)構(gòu)”子選板中,如圖4-1所示。圖4-1“結(jié)構(gòu)”子選板
4.1循環(huán)結(jié)構(gòu)
4.1.1For循環(huán)1.For循環(huán)建立“For循環(huán)”(ForLoop)是LabVIEW最基本結(jié)構(gòu)之一。在程序框圖中創(chuàng)建For循環(huán)方法:在函數(shù)選板中的“編程”(Program)下的“結(jié)構(gòu)”(Structures)子選板中,用鼠標點擊“For循環(huán)”圖標,然后在程序框圖窗口中需要創(chuàng)建的空白區(qū)域再單擊鼠標,同時按住鼠標向右下角拖曳到合適大小即可,如圖4-2所示。圖4-2For循環(huán)的建立
圖4-3所示為使用For循環(huán)索引隨機數(shù)(RandomNumber)的程序,程序按照設(shè)定的總數(shù)執(zhí)行了50次,即由波形圖表顯示出50個隨機數(shù)圖形,程序執(zhí)行完畢,計數(shù)接線端輸出顯示為49。
圖4-3使用For循環(huán)索引隨機數(shù)的程序
2.For循環(huán)的數(shù)據(jù)通道及自動索引
For循環(huán)的數(shù)據(jù)通道(DataCommunication)是循環(huán)體內(nèi)的數(shù)據(jù)與循環(huán)體外的數(shù)據(jù)(輸入/輸出)進行交換的通道,所有結(jié)構(gòu)要通過數(shù)據(jù)通道才能和外部節(jié)點進行數(shù)據(jù)交換。數(shù)據(jù)通道位于邊框上,其顯示形式為小方格,小方格的顏色和數(shù)據(jù)類型的系統(tǒng)顏色一致,若為浮點數(shù),則數(shù)據(jù)通道的顏色為橙色。
通道有輸入數(shù)據(jù)通道和輸出數(shù)據(jù)通道,以圖4-4為例說明數(shù)據(jù)通道的創(chuàng)建方法:選擇“連線工具”,將程序框圖界面中數(shù)組常量連接至For循環(huán)左側(cè)循環(huán)體邊框后,系統(tǒng)會自動生成數(shù)據(jù)通道。該例中,連接到For循環(huán)的數(shù)組默認為能自動索引,即循環(huán)體邊框外面的數(shù)組元素依次進入到循環(huán)邊框內(nèi);若不需要索引,可以右擊循環(huán)體邊框上的數(shù)據(jù)通道,選擇“禁用索引”(DisableIndexing)命令,則連接到循環(huán)體的數(shù)組默認為不能自動索引,如果需要自動索引;可以在數(shù)據(jù)通道上單擊右鍵,選擇“開啟自動索引”(EnableIndexing)。“開啟自動索引”時,數(shù)據(jù)通道的外觀為空的矩陣符號[];“禁用索引”時,數(shù)據(jù)通道的外觀為實心的方框。
圖4-4所示為索引二維數(shù)組(2DArray)程序,程序中使用了兩個嵌套的For循環(huán);外層的For循環(huán)每執(zhí)行一次則從輸入的二維數(shù)組中索引出一行數(shù)組,里層的For循環(huán)則是每執(zhí)行一次再從剛生成的一維數(shù)組(1DArray)中索引出一個數(shù)據(jù)元素。圖中嵌套的兩個For循環(huán)均未連接計數(shù)接線端,此時For循環(huán)執(zhí)行的次數(shù)等于數(shù)組的長度,即循環(huán)一直執(zhí)行至所有元素索引完畢為止。
圖4-4使用For循環(huán)索引二維數(shù)組程序
圖4-5所示為使用For循環(huán)生成二維數(shù)組程序,程序中也使用了兩個嵌套的For循環(huán):里層的For循環(huán)通過4次執(zhí)行得到的循環(huán)數(shù)累積輸出一個一維數(shù)組0~3;外層的For循環(huán)依次為這個數(shù)組中的各個元素加上當前循環(huán)計數(shù),再將6次循環(huán)產(chǎn)生的6個一維數(shù)組累積成二維數(shù)組輸出,輸出結(jié)果同圖4-4中的二維數(shù)組相同。
圖4-5使用For循環(huán)生成二維數(shù)組程序
3.移位寄存器與反饋節(jié)點
1)移位寄存器
利用移位寄存器(ShiftRegister)可以把上一次循環(huán)中產(chǎn)生的數(shù)據(jù)傳遞到下一次循環(huán)。移位寄存器是成對出現(xiàn)的,分別出現(xiàn)在循環(huán)體邊框的兩個垂直邊上。
移位寄存器創(chuàng)建方法:在循環(huán)邊框上單擊右鍵,從彈出快捷菜單中選擇“添加移位寄存器”(AddRegister)可創(chuàng)建一對移位寄存器,如圖4-6所示。也可以創(chuàng)建多個左側(cè)移位寄存器,但是只能有一個右端口。添加左側(cè)端口的方法有兩個:一是在移位寄存器上單擊右鍵,從快捷菜單選擇“添加元素”(AddElement)來增加數(shù)據(jù)終端;二是直接對寄存器上的左側(cè)端口進行拖曳。
圖4-6添加移位寄存器
新創(chuàng)建移位寄存器出現(xiàn)在兩個垂直邊框上,是顏色為黑色的相對的端口,當將其連接到相應的數(shù)據(jù)上時,才會顯示相應數(shù)據(jù)的顏色,如圖4-7所示。圖4-7用移位寄存器求隨機數(shù)的最大值
2)反饋節(jié)點
前、后兩次數(shù)據(jù)的交換,除使用移位寄存器實現(xiàn)外,還可以使用反饋節(jié)點來實現(xiàn)。當一次循環(huán)完成后,反饋節(jié)點會保存相應數(shù)據(jù),并傳遞到下一次循環(huán);即移位寄存器和反饋節(jié)點的功能是相似的,當For循環(huán)的邊框太大時,使用移位寄存器會造成過長的連線,而反饋節(jié)點的優(yōu)點在于可以節(jié)省掉過長的連線,使程序看上去更加簡潔。
反饋節(jié)點位于函數(shù)選板中的“編程”下的“結(jié)構(gòu)”子選板中,如圖4-8所示。
圖4-8自動創(chuàng)建反饋節(jié)點
4.?For循環(huán)應用實例
例4-1使用For循環(huán)創(chuàng)建程序,完成從1~100這100個數(shù)相加求和,如圖4-9所示。圖4-91~100求和程序框圖
解創(chuàng)建步驟如下:
(1)前面板窗口創(chuàng)建一個數(shù)值顯示控件,在該控件上單擊右鍵彈出快捷菜單,從“表示法”(Representation)中選擇“I32”。
(2)創(chuàng)建一個For循環(huán),為其設(shè)定的循環(huán)總數(shù)為100。
(3)添加一對移位寄存器,為左側(cè)的端子賦初始值為0。
(4)添加“加法”(Add)函數(shù),將該函數(shù)的一個輸入端與移位寄存器的左側(cè)輸出端相連。
(5)將循環(huán)次數(shù)i接入“加1”(Increment)函數(shù)的輸入端,并將“加1”函數(shù)的輸出端連接至“加法”函數(shù)的另一個輸入端。
(6)將“加法”函數(shù)的輸出端與移位寄存器的右側(cè)端子的輸入端相連。
(7)將移位寄存器右側(cè)端子的輸出端與數(shù)值顯示控件的接線端連接。
4.1.2While循環(huán)的組成
“While循環(huán)”(WhileLoop)是一種條件循環(huán),循環(huán)會控制程序反復執(zhí)行一段代碼,直到某個條件成立發(fā)生為止。
1.While循環(huán)建立
建立While循環(huán)的方法與For循環(huán)是一樣的,在函數(shù)選板的“編程”下的“結(jié)構(gòu)”子選板中,單擊鼠標選中“While循環(huán)”圖標,然后在程序框圖窗口中需要創(chuàng)建的空白區(qū)域再單擊鼠標,同時按住鼠標向右下角拖曳到合適的大小即可,如圖4-10所示。由圖可見,循環(huán)框不是閉合的,并有代表重復執(zhí)行的箭頭。
圖4-10While循環(huán)結(jié)構(gòu)圖
While循環(huán)有兩個固定的接線端:計數(shù)接線端是一個輸出接線端,它輸出循環(huán)當前執(zhí)行的次數(shù),循環(huán)數(shù)是從0開始計數(shù)的;條件接線端是一個布爾量輸入接線端,程序在每次循環(huán)結(jié)束時檢查條件接線端,因此,布爾量的值將控制循環(huán)是否繼續(xù)執(zhí)行?!皸l件接線端”的條件有兩種,這兩種條件可以在端口上單擊右鍵所彈出的快捷菜單中進行轉(zhuǎn)換,如圖4-11所示。條件接線端默認的狀態(tài)為“真(T)時停止”(StopifTrue),即條件接線端的布爾量為“真”時退出循環(huán),如圖4-11(a)所示;如果將條件接線端的狀態(tài)改為“真(T)時繼續(xù)”(ContinueifTrue),則條件接線端的布爾量為“假”時退出循環(huán),如圖4-11(b)所示。如果條件接線端連接的是一個按鈕,則按鈕按下時循環(huán)停止。
圖4-11While循環(huán)條件接線端
2.?While循環(huán)應用實例
例4-2使用While循環(huán)創(chuàng)建程序,實現(xiàn)0~100這100個數(shù)相加求和。
解程序框圖如圖4-12所示。
創(chuàng)建步驟參考例4-1,這里稍有不同:
(1)創(chuàng)建一個While循環(huán),其循環(huán)次數(shù)用一個“大于等于?”函數(shù)來確定,i≥100時退出循環(huán)。
(2)使用反饋節(jié)點代替移位寄存器。
運行該程序,前面板中顯示控件的顯示結(jié)果應為5050。
圖4-121~100求和程序框圖
4.2條件結(jié)構(gòu)
“條件結(jié)構(gòu)”(CaseStructure)類似于文本編程語言中的switch語句、ifelse語句或者case語句。條件結(jié)構(gòu)包含兩個或兩個以上子程序框圖,每個子程序框圖中的一段程序代碼對應一個條件分支,條件結(jié)構(gòu)每次只能看到一個子程序框圖,即每次程序運行時只選擇其中的一個框圖執(zhí)行,執(zhí)行其中的哪一個子程序框圖是由輸入值決定的。
4.2.1條件結(jié)構(gòu)創(chuàng)建
條件結(jié)構(gòu)的創(chuàng)建同循環(huán)結(jié)構(gòu)相同,在函數(shù)選板的“編程”下的“結(jié)構(gòu)”子選板中選擇“條件結(jié)構(gòu)”圖標即可。條件結(jié)構(gòu)由選擇器標簽(CaseSelectorLabel)、分支選擇器(SelectorTerminal)和分支子程序框圖組成,如圖4-13(a)所示。
子框圖的數(shù)量根據(jù)實際需要確定,下面舉例說明如何將選擇器與選擇器標簽相匹配。當枚舉型控件連接到選擇器接線端時,選擇器標簽會自動轉(zhuǎn)換為兩個字符串。當為該枚舉型控件設(shè)定幾個枚舉型值后,在條件結(jié)構(gòu)邊框上單擊右鍵,彈出的快捷菜單上選擇“為每個值添加分支”(AddCaseForEveryValue)命令,就會增加到幾個子程序框圖,如圖4-13(b)所示。圖4-13條件結(jié)構(gòu)選擇器標簽
需要注意的是,選擇器接線端的數(shù)據(jù)類型必須與選擇器標簽中的數(shù)據(jù)類型一致,如果不一致,LabVIEW則會自動報錯,同時選擇器值中的字體顏色變?yōu)榧t色,提示必須修改,否則程序?qū)o法執(zhí)行。不同數(shù)據(jù)類型的條件結(jié)構(gòu)如圖4-14所示,其中布爾型條件結(jié)構(gòu)如圖4-14(a)所示,整型數(shù)條件結(jié)構(gòu)如圖4-14(b)所示,字符串型條件結(jié)構(gòu)如圖4-14(c)所示,枚舉型條件結(jié)構(gòu)如圖4-14(d)所示。
圖4-14不同數(shù)據(jù)類型的條件結(jié)構(gòu)
4.2.2條件結(jié)構(gòu)的數(shù)據(jù)輸入和輸出通道
當向“條件結(jié)構(gòu)”內(nèi)引入連線或從“條件結(jié)構(gòu)”向外引出連線時,會在邊框上生成隧道;當向“條件結(jié)構(gòu)”隧道輸入數(shù)據(jù)時,所有分支都可以使用該數(shù)據(jù),所有的分支各個子程序框圖連接或不連接這個數(shù)據(jù)的隧道都可以。但是從“條件結(jié)構(gòu)”邊框向外輸出數(shù)據(jù)時,各個子程序框圖都必須為這個隧道連接數(shù)據(jù),否則會出現(xiàn)代碼錯誤,程序無法運行。此時,輸出隧道的圖標是空心,表示部分分支中沒有接入輸入值。當每個分支的輸出隧道都連接好數(shù)據(jù)時,輸出隧道才會變?yōu)閷嵭?,程序才能正常運行。
4.2.3條件結(jié)構(gòu)應用實例
例4-3求一個數(shù)的平方根,若該數(shù)大于等于0,則計算該數(shù)的平方根并輸出計算結(jié)果;若該數(shù)小于0,則輸出錯誤的數(shù)值為-9999。
解創(chuàng)建步驟如下:
(1)前面板窗口創(chuàng)建一個數(shù)值輸入控件和數(shù)值顯示控件。
(2)程序框圖中創(chuàng)建一個條件結(jié)構(gòu),其子框圖為“真”和“假”兩個。
(3)將數(shù)值型輸入控件的接線端與條件結(jié)構(gòu)連接,生成隧道。
(4)使用“大于等于?”函數(shù),將數(shù)值與0進行比較,該函數(shù)的輸出端接入分支選擇器。
(5)在“真”子框圖中添加“平方根”函數(shù),其輸入端連接左側(cè)隧道,輸出端連接到“條件結(jié)構(gòu)”右側(cè)邊框產(chǎn)生隧道。
(6)在“假”子框圖中添加“數(shù)值常量”,并為其賦值?-9999。
運行該程序,前面板中顯示控件的顯示結(jié)果如圖4-15所示。
圖4-15例4-2前面板及程序框圖
4.3事件結(jié)構(gòu)
所謂事件,是指發(fā)生了某種事情的通知。事件可以來自于用戶界面、外部I/O或者其他方式。LabVIEW支持兩種來源的事件:(1)用戶界面事件。(2)編程生成事件。
圖4-16為事件結(jié)構(gòu),圖中各部分含義為:
(1)事件超時接線端(TimeoutTerminal):用來設(shè)定超時時間,其接入數(shù)據(jù)是以毫秒為單位的整數(shù)值。
(2)選擇器標簽(SelectorLabel):標識當前顯示的子框圖所處理事件的事件源。
(3)事件數(shù)據(jù)節(jié)點(DataNode):為子框圖提供所處理事件的相關(guān)數(shù)據(jù),事件數(shù)據(jù)節(jié)點由若干個事件數(shù)據(jù)端子構(gòu)成。
編輯事件結(jié)構(gòu)的方法:在“事件結(jié)構(gòu)”邊框上單擊右鍵彈出快捷菜單,如圖4-17所示,選擇“添加事件分支”(AddEventCase)選項,可以彈出“編輯事件”對話框,如圖4-18所示?!熬庉嬍录睂υ捒騼?nèi)包括事件說明符、事件源和事件三部分。
圖4-17事件結(jié)構(gòu)添加分支
圖4-18“編輯事件”對話框
4.4順序結(jié)構(gòu)
4.4.1平鋪式順序結(jié)構(gòu)1.平鋪式順序結(jié)構(gòu)建立“平鋪式順序結(jié)構(gòu)”(FlatSequenceStructure)位于函數(shù)選板“編程”下的“結(jié)構(gòu)”子選板中,選擇其下拉菜單中的“平鋪式順序結(jié)構(gòu)”對象,拖至程序框圖中,按住鼠標左鍵,向右下方拖動到所需大小后松開按鍵,即可創(chuàng)建一個平鋪式順序結(jié)構(gòu),如圖4-19(a)所示。
新建好的平鋪式順序結(jié)構(gòu)只有一幀,可以通過單擊鼠標右鍵,在出現(xiàn)的快捷菜單中選擇“在后面添加幀”(AddFrameAfter)選項或者“在前面添加幀”(AddFrameBefore)選項進行子框圖的添加,通過拖動框圖四周的箭頭可以改變框圖大小。添加好的順序結(jié)構(gòu)如圖4-19(b)所示。
圖4-19平鋪式順序結(jié)構(gòu)
2.平鋪式順序結(jié)構(gòu)數(shù)據(jù)傳遞
平鋪式順序結(jié)構(gòu)中,兩個幀之間的數(shù)據(jù)傳遞可以通過直接連線的方式來實現(xiàn),連線經(jīng)過兩幀連接處時將產(chǎn)生一個小方塊,稱為隧道,數(shù)據(jù)通過隧道進行傳輸。如圖4-20(a)所示,在第0幀創(chuàng)建了一個“字符串常量”(Stringconstant),連線經(jīng)過第1幀直接傳輸?shù)降?幀,運行之后輸出顯示為“LabVIEW”(如圖4-20(b)所示)。
圖4-20平鋪式順序結(jié)構(gòu)數(shù)據(jù)傳遞
4.4.2層疊式順序結(jié)構(gòu)
1.層疊式順序結(jié)構(gòu)建立
在LabVIEW2015集成開發(fā)環(huán)境中,不能直接創(chuàng)建“層疊式順序結(jié)構(gòu)”(StackedSequenceStructure),但“層疊式順序結(jié)構(gòu)”可以通過“平鋪式順序結(jié)構(gòu)”轉(zhuǎn)換而來。在“平鋪式順序結(jié)構(gòu)”對象中,單擊鼠標右鍵,在出現(xiàn)的快捷菜單中選擇“替換為層疊式順序”(ReplacewithStackedSequence),即可創(chuàng)建“層疊式順序結(jié)構(gòu)”,如圖4-21(a)所示。層疊式順序結(jié)構(gòu)添加幀的方法同平鋪式順序結(jié)構(gòu)相同,但每次只能看到一個子框圖,按照子框圖0、1、2的順序執(zhí)行;單擊頂部的順序選擇標識符左右兩側(cè)的箭頭,可以增加或減少子框圖的序號。圖4-21(b)為添加好的層疊式順序結(jié)構(gòu)的每一個子框圖。
圖4-21層疊式順序結(jié)構(gòu)
2.層疊式順序結(jié)構(gòu)數(shù)據(jù)傳遞
在層疊式順序結(jié)構(gòu)中,兩個幀之間的數(shù)據(jù)傳遞不能通過直接連線的方式來實現(xiàn),必須要借助“局部變量”(LocalVariable)來實現(xiàn)。建立“局部變量”的方法是:在“順序結(jié)構(gòu)”的邊框上單擊鼠標右鍵,在彈出的快捷菜單中選擇“添加順序局部變量”(AddSequentialLocalVariables)選項,此時在彈出快捷菜單的位置會出現(xiàn)一個小方框,小方框的顏色會隨傳輸數(shù)據(jù)類型的系統(tǒng)顏色發(fā)生變化。為這個小方框連接數(shù)據(jù)后,它的中間會出現(xiàn)一個指向順序結(jié)構(gòu)框的箭頭,此時數(shù)據(jù)已經(jīng)存儲到順序局部變量中。
圖4-22(a)中,第0幀輸入字符串創(chuàng)建了一個“字符串常量”,該常量存儲于該子框圖的順序局部變量中,數(shù)據(jù)經(jīng)過第1幀向第2幀傳輸時,此時第2幀必須也要創(chuàng)建順序局部變量才能進行數(shù)據(jù)接收;創(chuàng)建后小方框中的箭頭方向指向外,表明數(shù)據(jù)傳輸方向指向字符串顯示控件,運行之后輸出顯示為“LabVIEW”,如圖4-22(b)。
圖4-22層疊式順序結(jié)構(gòu)數(shù)據(jù)傳遞
例4-4使用順序結(jié)構(gòu)實現(xiàn)由“隨機數(shù)”函數(shù)產(chǎn)生0~1的隨機數(shù),計算出這些隨機數(shù)的平均值達到0.5所用的時間,同時顯示出隨機數(shù)累加值、循環(huán)次數(shù)。
解該程序使用順序結(jié)構(gòu)來實現(xiàn),這里選用“層疊式順序結(jié)構(gòu)”,該順序結(jié)構(gòu)共有3幀,每一幀具體編輯如下:
(1)第0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際貿(mào)易居間合同文本資料
- 咖啡烘焙館施工合同范本
- 廠房裝修合同延期協(xié)商技巧
- 健康管理中心改造合同模板
- 主題酒店租賃合同特色版
- 上海足療店裝修合同模板
- 鄉(xiāng)村衛(wèi)生院混凝土供應合同
- 學校教室改造施工合同工程
- 農(nóng)產(chǎn)品運輸合同樣本
- 船舶制造沙石運輸合同模板
- 應急預案演練、總結(jié)和評估制度
- 2024湘教版初中八年級數(shù)學上冊第章分式大單元整體教學設(shè)計
- 期中鞏固練習(試題)-2024-2025學年統(tǒng)編版(2024)語文一年級上冊
- 防風應急預案
- 4《平平安安回家來》第二課時(教學設(shè)計)-一年級道德與法治上冊統(tǒng)編版·2024
- 基于人工智能的智能倉儲研發(fā)與應用方案
- 部編版初中語文教材目錄
- 2024精麻藥品培訓知識試題庫及答案(完整版)
- 2024-2030年果酒行業(yè)市場發(fā)展分析及前景趨勢與投資研究報告
- 部編版小學語文二年級上冊月考達標檢測試題(全冊)
- 感控知識應知應會課件
評論
0/150
提交評論