labview 100題
《labview 100題》由會員分享,可在線閱讀,更多相關(guān)《labview 100題(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 第一講:認(rèn)識Labview 1.1 Labview 簡介 在開始菜單里找見NI Labview7.1 點擊打開,會出現(xiàn)如下界面: 從File>>New VI 或者從右半部分中的New>>Blank VI 都可以打開如下界面: 上圖中前圖是虛擬儀器的前面板,是用戶使用的人機(jī)界面,后面的是程序框圖界面(即后面板)。 在LabVIEW的用戶界面上,應(yīng)特別注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函數(shù)(Functions)模板。這些模板集中反映了該軟件的功能與特征。下面我們來大致瀏覽一下。 工具模板(Tools Pale
2、tte) 該模板提供了各種用于創(chuàng)建、修改和調(diào)試VI程序的工具。如果該模板沒有出現(xiàn),則可以在Windows菜單下選擇Show Tools Palette命令以顯示該模板。當(dāng)從模板內(nèi)選擇了任一種工具后,鼠標(biāo)箭頭就會變成該工具相應(yīng)的形狀。當(dāng)從Windows菜單下選擇了Show Help Window功能后,把工具模板內(nèi)選定的任一種工具光標(biāo)放在流程圖程序的子程序(Sub VI)或圖標(biāo)上,就會顯示相應(yīng)的幫助信息。 工具圖標(biāo)有如下幾種: 圖標(biāo) 名稱 功 能 1 Operate Value(操作值) 用于操作前面板的控制和顯示。使用它向數(shù)字或字符串控制中鍵入值時,工
3、具會變成標(biāo)簽工具 2 Position/Size/Select (選擇) 用于選擇、移動或改變對象的大小。當(dāng)它用于改變對象的連框大小時,會變成相應(yīng)形狀。 3 Edit Text(編輯文本) 用于輸入標(biāo)簽文本或者創(chuàng)建自由標(biāo)簽。當(dāng)創(chuàng)建自由標(biāo)簽時它會變成相應(yīng)形狀。 4 Connect Wire(連線) 用于在流程圖程序上連接對象。如果聯(lián)機(jī)幫助的窗口被打開時,把該工具放在任一條連線上,就會顯示相應(yīng)的數(shù)據(jù)類型。 5 Object Shortcut Menu(對象菜單) 用鼠標(biāo)左鍵可以彈出對象的彈出式菜單。 6 Scroll Windows(窗口漫游) 使
4、用該工具就可以不需要使用滾動條而在窗口中漫游。 7 Set/Clear Breakpoint(斷點設(shè)置/清除) 使用該工具在VI的流程圖對象上設(shè)置斷點。 8 Probe Data(數(shù)據(jù)探針) 可在框圖程序內(nèi)的數(shù)據(jù)流線上設(shè)置探針。通過控針窗口來觀察該數(shù)據(jù)流線上的數(shù)據(jù)變化狀況。 9 Get Color(顏色提?。? 使用該工具來提取顏色用于編輯其他的對象。 10 Set Color(顏色設(shè)置) 用來給對象定義顏色。它也顯示出對象的前景色和背景色。 下面的兩個模板是多層的,其中每一個子模板下還包括多個對象。 控制模板(Control Pal
5、ette) 注意:只有打開前面板時才能調(diào)用該模板 該模板用來給前面板設(shè)置各種所需的輸出顯示對象和輸入控制對象。每個圖標(biāo)代表一類子模板。如果控制模板不顯示,可以用Windows菜單的Show Controls Palette功能打開它,也可以在前面板的空白處,點擊鼠標(biāo)右鍵,以彈出控制模板。 控制模板如右圖所示,它包括如下所示的一些子模板。子模板中包括的對象,我們在功能中用文字簡要介紹。 圖標(biāo) 子模板名稱 功 能 1 Numeric(數(shù)值量) 數(shù)值的控制和顯示。包含數(shù)字式、指針式顯示表盤及各種輸入框。 2 Boolean(布爾量) 邏輯數(shù)值
6、的控制和顯示。包含各種布爾開關(guān)、按鈕以及指示燈等。 3 String & Path(字符串和路徑) 字符串和路徑的控制和顯示。 4 Array & Cluster(數(shù)組和簇) 數(shù)組和簇的控制和顯示。 5 List & Table(列表和表格) 列表和表格的控制和顯示 6 Graph(圖形顯示) 顯示數(shù)據(jù)結(jié)果的趨勢圖和曲線圖。 7 Ring & Enum(環(huán)與枚舉) 環(huán)與枚舉的控制和顯示。 8 I/O(輸入/輸出功能) 輸入/輸出功能。于操作OLE、ActiveX等功能。 9 Refnum 參考數(shù) 10 Digilog
7、 Controls(數(shù)字控制) 數(shù)字控制 11 Clussic Controls(經(jīng)典控制) 經(jīng)典控制,指以前版本軟件的面板圖標(biāo)。 12 Activex 用于ActiveX等功能。 13 Decorations(裝飾) 用于給前面板進(jìn)行裝飾的各種圖形對象。 14 Select a Controls(控制選擇) 調(diào)用存儲在文件中的控制和顯示的接口。 15 User Controls(用戶控制) 用戶自定義的控制和顯示。 功能模板(Functions Palette) 注:只有打開了流程圖程序窗口(即后面板),才能出現(xiàn)功能模板。
8、 功能模板是創(chuàng)建流程圖程序的工具。該模板上的每一個頂層圖標(biāo)都表示一個子模板。若功能模板不出現(xiàn),則可以用Windows菜單下的Show Functions Palette功能打開它,也可以在流程圖程序窗口的空白處點擊鼠標(biāo)右鍵以彈出功能模板。 功能模板如右圖所示,其子模塊如下所示。(個別不常用的子模塊未包含) 圖標(biāo) 子模板名稱 功 能 1 Structure(結(jié)構(gòu)) 包括程序控制結(jié)構(gòu)命令,例如循環(huán)控制等,以及全局變量和局部變量。 2 Numeric(數(shù)值運算) 包括各種常用的數(shù)值運算,還包括數(shù)制轉(zhuǎn)換、三角函數(shù)、對數(shù)、復(fù)數(shù)等運算,以及各種數(shù)值常數(shù)。
9、3 Boolean(布爾運算) 包括各種邏輯運算符以及布爾常數(shù)。 4 String(字符串運算) 包含各種字符串操作函數(shù)、數(shù)值與字符串之間的轉(zhuǎn)換函數(shù),以及字符(串)常數(shù)等。 5 Array(數(shù)組) 包括數(shù)組運算函數(shù)、數(shù)組轉(zhuǎn)換函數(shù),以及常數(shù)數(shù)組等。 6 Cluster(簇) 包括簇的處理函數(shù),以及群常數(shù)等。這里的群相當(dāng)于C語言中的結(jié)構(gòu)。 7 Comparison(比較) 包括各種比較運算函數(shù),如大于、小于、等于。 8 Time & Dialog(時間和對話框) 包括對話框窗口、時間和出錯處理函數(shù)等。 9 File I/O(文件輸入
10、/輸出) 包括處理文件輸入/輸出的程序和函數(shù)。 10 Data Acquisition(數(shù)據(jù)采集) 包括數(shù)據(jù)采集硬件的驅(qū)動,以及信號調(diào)理所需的各種功能模塊。 11 Waveform(波形) 各種波形處理工具 12 Analyze(分析) 信號發(fā)生、時域及頻域分析功能模塊及數(shù)學(xué)工具 。 13 Instrument I/O(儀器輸入/輸出) 包括GPIB(488、488.2)、串行、VXI儀器控制的程序和函數(shù),以及VISA的操作功能函數(shù)。 14 Motion & Vision(運動與景像) 15 Mathematics(數(shù)學(xué)) 包括統(tǒng)
11、計、曲線擬合、公式框節(jié)點等功能模塊,以及數(shù)值微分、積分等數(shù)值計算工具模塊。 16 Communication(通訊) 包括TCP、DDE、ActiveX和OLE等功能的處理模塊。 17 Application Control(應(yīng)用控制) 包括動態(tài)調(diào)用VI、標(biāo)準(zhǔn)可執(zhí)行程序的功能函數(shù)。 18 Graphics & Sound(圖形與聲音) 包括3D、OpenGL、聲音播放等功能模塊。包括調(diào)用動態(tài)連接庫和CIN節(jié)點等功能的處理模塊。 19 Tutorial(示教課程) 包括LabVIEW示教程序。 20 Report Generation(文檔生成)
12、 21 Advanced(高級功能) 22 Select a VI(選擇子VI) 23 User Library(用戶子VI庫) 下面我們通過練習(xí)掌握如何應(yīng)用Labview7.1 練習(xí)一:建立一個測量溫度和容積的VI 步驟如下: 1. 選擇 File?New VI,打開一個新的前面板窗口。 2. 從 Controls>>All Controls>>numeric中選擇 Tank放到前面板中。(注:如果前面板中沒有Controls模版,可在菜單欄選window>>show controls palette,即可打開或直接點擊鼠標(biāo)右鍵)
13、 3. 在標(biāo)簽(Tank)文本框中輸入“容積” ,然后在前面板中的其他任何位置單擊一下。 4. 同樣從Controls>>All Controls>>numeric中選擇Thermometer放到前面板中 5. 在標(biāo)簽文本框中輸入“溫度計” ,然后在前面板中的其他任何位置單擊一下。 6. 把容器顯示對象的顯示范圍設(shè)置為0.0到1000.0。 a.雙擊容器坐標(biāo)的10.0 標(biāo)度,使它高亮顯示。在坐標(biāo)中輸入 1000,再在前面板中的其他任何地方單擊一下。 這時0.0到1000.0之間的增量將被自動顯示。 7. 在容器旁配數(shù)據(jù)顯示?!? 將鼠標(biāo)移到容器上,點右鍵,在出現(xiàn)的快速菜單中選Vis
14、ible Iterms>>Digital Display即可。 前面板如下圖所示: 圖1-1 練習(xí)一的前面板圖 8. Windows>>Show block Diagram 打開流程圖窗口,在窗口中建立如下程序: 隨機(jī)數(shù)發(fā)生器 乘法函數(shù) 數(shù)值常數(shù) 延時函數(shù) 圖1-2 練習(xí)一的流程圖 該流程圖中新增的對象有兩個乘法器、兩個數(shù)值常數(shù)、兩個隨機(jī)數(shù)發(fā)生器、一個延時函數(shù),一個while循環(huán),一個布爾常量,溫度和容積對象是由前棉板的設(shè)置自動帶出來的。 a. 乘法器(Multiply)、隨機(jī)數(shù)發(fā)生器(Random number (0--1))和數(shù)值常數(shù)(Numberi
15、c constant)由Functions>>All Functions>>Numeric中拖出。(注:如果面板中沒有Functions模版,可以從菜單欄中選Window>>Show Functions palette 或點擊鼠標(biāo)右鍵) b. 延時函數(shù)(Time delay)可以從Functions>>All Functions>>Time&Dialog>>Time delay中拖出,在自動彈出的對話框中輸入要延時的時間(比如0.5s)。 9.連線:把鼠標(biāo)放到函數(shù)端子上,當(dāng)鼠標(biāo)自動變?yōu)檫B線模式并出現(xiàn)一閃一閃時,點擊一下鼠標(biāo)左鍵然后找要連接的函數(shù)端子,當(dāng)鼠標(biāo)出現(xiàn)一閃一閃時,再次點擊鼠標(biāo)左鍵,
16、這時就把兩個函數(shù)連接起來了。 10. 最后選Functions>>All Functions>>Structures>>While Loop,在已編好的程序左上角點擊鼠標(biāo)左鍵,然后移動鼠標(biāo),直到出現(xiàn)的虛線把程序全包含起來再點鼠標(biāo)左鍵,就創(chuàng)建了一個While循環(huán)。在右下角條件端子上點擊鼠標(biāo)右鍵,再彈出的菜單里選Creat constant就可,目的是讓循環(huán)能夠維持下去。 11. 在前面板中,單擊Run(運行)按鈕,運行該 VI 12. 在后面板的工具欄中點擊類似燈泡狀的按鈕,就可以看見程序中各個數(shù)據(jù)流的走向。 13. 選擇 File?Save, 把該VI 保存到任意目錄下。 14. 選
17、擇File?Close,關(guān)閉該 VI 。 練習(xí)一 結(jié)束 附注與說明: 1. 顯示對象(Indicator)、控制對象(Control)和數(shù)值常數(shù)對象 顯示對象和控制對象都是前面板上的控件,前者有輸入端子而無輸出端子,后者正好相反,它們分別相當(dāng)于普通編程語言中的輸出參數(shù)和輸入?yún)?shù)。數(shù)值常數(shù)對象可以看成是控制對象的一個特例。 在前面板中創(chuàng)建新的控制對象或顯示對象時,LabVIEW 都會在流程圖中創(chuàng)建對應(yīng)的端子。端子的符號反映該對象的數(shù)據(jù)類型。例如,DBL 符號表示對象數(shù)據(jù)類型是雙精度數(shù);TF 符號表示布爾數(shù);I16 符號表示16位整型數(shù);ABC符號表示對象數(shù)據(jù)類型是字符串。 一個對象應(yīng)
18、當(dāng)是顯示對象還是控制對象必須弄清楚,否則無法正確連線。有時他們的圖標(biāo)是相似或相同的,可以根據(jù)需要明確規(guī)定它是顯示對象還是控制對象。方法是將鼠標(biāo)移到圖標(biāo)上,然后點右鍵,可出現(xiàn)快速菜單(例見右圖)。如果菜單中的第一項是Chang to Control,說明這是一個顯示對象,你可以根據(jù)需要,將其變?yōu)榭刂茖ο?。如果菜單中的第一項是Chang to Indicator ,說明這是一個控制對象,你也可以根據(jù)需要,將其變?yōu)轱@示對象。 2. 關(guān)于連線 連線是程序設(shè)計中較為復(fù)雜的問題。流程圖上的每一個對象都帶有自己的連線端子,連線將構(gòu)成對象之間的數(shù)據(jù)通道。因為這不是幾何意義上的連線,因此并非任意兩個端子間都
19、可連線,連線類似于普通程序中的變量。數(shù)據(jù)單向流動,從源端口向一個或多個目的端口流動。不同的線型代表不同的數(shù)據(jù)類型。下面是一些常用數(shù)據(jù)類型所對應(yīng)的線型和顏色: 類型 顏色 標(biāo)量 一維數(shù)組 二維數(shù)組 整形數(shù) 蘭色 浮點數(shù) 橙色 邏輯量 綠色 字符串 粉色 文件路徑 青色 當(dāng)需要連接兩個端點時,在第一個端點上點擊連線工具(從工具模板欄調(diào)用),然后移動到另一個端點,再點擊第二個端點。端點的先后次序不影響數(shù)據(jù)流動的方向。 當(dāng)把連線工具放在端點上時,該端點區(qū)域?qū)W爍,表示連線將會接通該端點。當(dāng)把連線工具從一個端口接到另一個端口時,不需要按住鼠標(biāo)鍵。當(dāng)
20、需要連線轉(zhuǎn)彎時,點擊一次鼠標(biāo)鍵,即可以正交垂直方向地彎曲連線,按空格鍵可以改變轉(zhuǎn)角的方向。
接線頭是為了幫助正確連接端口的連線。當(dāng)把連線工具放到端口上,接線頭就會彈出。接線頭還有一個黃色小標(biāo)識框,顯示該端口的名字。
線型為波折號的連線表示壞線。出現(xiàn)壞線的原因有很多,例如:連接了兩個控制對象;源端子和終點端子的數(shù)據(jù)類型不匹配(例如一個是數(shù)字型,而另一個是布爾型)。可以通過使用定位工具點擊壞線再按下
21、e Ends (信號丟失終端)的錯誤信息時,這是一個快捷的調(diào)試方法。 程序調(diào)試技術(shù) (以下操作大家可以用練習(xí)一嘗試) 1.找出語法錯誤 如果一個VI程序存在語法錯誤,則在面板工具條上的運行按鈕會變成一個折斷的箭頭,表示程序不能被執(zhí)行。這時該按鈕被稱作錯誤列表。點擊它,則LabVIEW彈出錯誤清單窗口,點擊其中任何一個所列出的錯誤,選用Find功能,則出錯的對象或端口就會變成高亮。 2.設(shè)置執(zhí)行程序高亮 在LabVIEW的工具條上有一個畫著燈泡的按鈕,這個按鈕叫做“高亮執(zhí)行”按鈕上。點擊這個按鈕使它變成高亮形式,再點擊運行按鈕,VI程序就以較慢的速度運行,沒有被執(zhí)行的代
22、碼灰色顯示,執(zhí)行后的代碼高亮顯示,并顯示數(shù)據(jù)流線上的數(shù)據(jù)值。這樣,你就可以根據(jù)數(shù)據(jù)的流動狀態(tài)跟蹤程序的執(zhí)行。 3.?dāng)帱c與單步執(zhí)行 為了查找程序中的邏輯錯誤,有時希望流程圖程序一個節(jié)點一個節(jié)點地執(zhí)行。使用斷點工具可以在程序的某一地點中止程序執(zhí)行,用探針或者單步方式查看數(shù)據(jù)。使用斷點工具時,點擊你希望設(shè)置或者清除斷點的地方。斷點的顯示對于節(jié)點或者圖框表示為紅框,對于連線表示為紅點。當(dāng)VI程序運行到斷點被設(shè)置處,程序被暫停在將要執(zhí)行的節(jié)點,以閃爍表示。按下單步執(zhí)行按鈕,閃爍的節(jié)點被執(zhí)行,下一個將要執(zhí)行的節(jié)點變?yōu)殚W爍,指示它將被執(zhí)行。你也可以點擊暫停按鈕,這樣程序?qū)⑦B續(xù)執(zhí)行直到下一個斷點。 4.
23、探針 可用探針工具來查看當(dāng)流程圖程序流經(jīng)某一根連接線時的數(shù)據(jù)值。從Tools工具模板選擇探針工具,再用鼠標(biāo)左建點擊你希望放置探針的連接線。這時顯示器上會出現(xiàn)一個探針顯示窗口。該窗口總是被顯示在前面板窗口或流程圖窗口的上面。在流程圖中使用選擇工具或連線工具,在連線上點擊鼠標(biāo)右鍵,在連線的彈出式菜單中選擇“探針”命令,同樣可以為該連線加上一個探針。 1.2 子VI的建立 子VI(SubVI)相當(dāng)于普通編程語言中的子程序,也就是被其他的 VI調(diào)用的VI??梢詫⑷魏我粋€定義了圖標(biāo)和聯(lián)接器的 VI作為另一個 VI的子程序。在流程圖中打開 Functions?Select a VI…. ,就可以選擇
24、要調(diào)用的子 VI 。構(gòu)造一個子VI主要的工作就是定義它的圖標(biāo)和聯(lián)接器。 每個VI在前面板和流程圖窗口的右上角都顯示了一個默認(rèn)的圖標(biāo)。啟動圖標(biāo)編輯器的方法是,用鼠標(biāo)右鍵單擊面板窗口的右上角的默認(rèn)圖標(biāo),在彈出菜單中選擇 Edit Icon。 下圖顯示了圖標(biāo)編輯器的窗口??梢杂么翱谧筮叺母鞣N工具設(shè)計像素編輯區(qū)中的圖標(biāo)形狀。編輯區(qū)右側(cè)的一個方框中顯示了一個實際大小的圖標(biāo)。圖標(biāo)編輯器的具體使用細(xì)節(jié)參閱練習(xí)二 圖標(biāo)編輯器窗口 聯(lián)接器是 VI 數(shù)據(jù)的輸入輸出接口。如果用面板控制對象或者顯示對象從子 VI 中輸出或者輸入數(shù)據(jù),那么這些對象都需要在聯(lián)接器面板中有一個連線端子。您可以通過選擇 VI
25、的端子數(shù)并為每個端子指定對應(yīng)的前面板對象以定義聯(lián)接器。 定義聯(lián)接器的方法是,用鼠標(biāo)右鍵單擊面板窗口中的圖標(biāo)窗口,在快捷菜單中選擇 Show Connector。 聯(lián)接器圖標(biāo)會取代面板窗口右上角的圖標(biāo)。LabVIEW 自動選擇的端子連接模式是控制對象的端子位于聯(lián)接器窗口的左邊,顯示對象的端子位于聯(lián)接器窗口右邊。選擇的端子數(shù)取決于前面板中控制對象和顯示對象的個數(shù)。 聯(lián)接器中的各個矩形表示各個端子所在的區(qū)域,可以用它們從 VI 中輸入或者輸出數(shù)據(jù)。如果必要,也可以選擇另外一種端子連接模式。方法是在圖標(biāo)上單擊鼠標(biāo)右鍵單出快捷菜單,選擇 Show Connector,再次彈出快捷菜單,選擇Patt
26、erns。下面我們通過一個練習(xí)說明具體操作。 練習(xí)二:子VI的建立及調(diào)用 步驟如下: 1. 打開一個NEW VI 2. 在前面板中放置一個Number control 控件(數(shù)據(jù)輸入控件)和一個Number Indicator控件(數(shù)據(jù)顯示),都在All controls>>numberic模板下并把標(biāo)簽分別改為 X 和 X^6,如下圖: 3. 后面板程序圖如下圖連接,這是一個計算X 的6次方程序 4. 在前面板中,用鼠標(biāo)右鍵單擊窗口右上角的圖標(biāo),在快捷菜單中選擇 Edit Icon….,也可以雙擊圖標(biāo)激活圖標(biāo)編輯器。注意只能在前面板中編輯圖
27、標(biāo)和聯(lián)接器。
5. 刪除默認(rèn)圖標(biāo)。使用Select Tool(矩形框),單擊并拖動想要刪除的部分,按下
28、兩個對象,所以聯(lián)接器有兩個端子,如右圖所示。用鼠標(biāo)右鍵單擊聯(lián)接器窗口,在快捷菜單中選擇Rotate 90 Degrees(旋轉(zhuǎn)90度),注意聯(lián)接器窗口的變化,如右圖所示。 9. 端子連接到X和X^6: a. 點擊聯(lián)接器左部端子。光標(biāo)自動變成連線工具,同時端子變成黑色。 b. 單擊X控件對象。一個移動的虛線框把它包圍起來,選中的端子的顏色變?yōu)榕c控制/顯示對象的數(shù)據(jù)類型一致的顏色。 如果單擊前面板中的任何空白區(qū)域以后,虛線消失,選中的端子變暗,這表示您已經(jīng)成功地把顯示對象和上部端子連接起來。如果端子是白色,則表示沒有連接成功。c. 重復(fù)步驟a 和 b,把右部的端子和X^6連接起來。 c.
29、 用鼠標(biāo)右鍵單擊聯(lián)接器,在快捷菜單中選擇Show Icon. 10. 選擇File?Save ,保存該 VI,保存名為X^6。這樣這個 VI 就完成了,并也可以作為子 VI被其他的VI調(diào)用。子VI 的圖標(biāo)在主 VI 的流程圖中代表它。 11. 調(diào)用子VI。新建一個New VI 12. 在前面板中放置一個Number control 控件和一個Number Indicator控件,并把標(biāo)簽分別改為 X 和 X^6,如下圖 13. 后面板操作。在Functions>>All Functions>>Select a VI ,選中并打開剛才保存的VI,并連接好線如下圖:
30、14.運行該程序 練習(xí)二 結(jié)束 1.3 使用三種圖表模式 目的:查看 VI 分別在三種模式下執(zhí)行時圖表的顯示。 練習(xí)三: 建立前面板及流程圖如下 步驟: 1.在前面板放置chart(Controls>>All Controls>>Graph>>Waveform chart)控件 2.在后面板放置Sine函數(shù)(Functions>>All Functions>>Numberic>> Trigonometric>>sine)及Wait Until Next ms Multiple 函數(shù)(Functions>>All Functions>>Time&Di
31、alog>> Wait Until Next ms Multiple)并在左端子建立常數(shù)如100。最后放置while循環(huán) 該程序中利用一個while循環(huán)產(chǎn)生連續(xù)的sin(i)函數(shù)值,并及時地在chart圖表上顯示出來,現(xiàn)在前面板上的chart是一個strip,這是一個坐標(biāo)式顯示器,與紙帶式圖表記錄器相似。每接受一個新數(shù)據(jù),新數(shù)據(jù)就將顯示在右側(cè),而原有數(shù)據(jù)移動到左側(cè) 3.用鼠標(biāo)選中chart,點擊右鍵,可在快速菜單中選擇Advanced?Update Mode子菜單。可以選擇更換其他兩種更新模式。 示波器模式是一個返回式的顯示器,與示波器類似。每接受一個新數(shù)據(jù)時,它就把新數(shù)據(jù)繪制在原有數(shù)據(jù)
32、的右側(cè)。當(dāng)數(shù)據(jù)曲線到達(dá)顯示區(qū)的右邊緣時,VI 會刪除全部圖形,從左邊緣重新開始繪制曲線。示波器模式顯然要快于條狀圖模式,因為它不會因為滾動產(chǎn)生溢出。 掃描模式更接近于示波器模式,但是當(dāng)數(shù)據(jù)曲線到達(dá)顯示區(qū)的右邊時,不會變成空白,而是會出現(xiàn)一個移動的垂線,標(biāo)記新數(shù)據(jù)的開始,并當(dāng)VI添加新數(shù)據(jù)時穿過整個顯示區(qū)。 練習(xí)三 結(jié)束。 第二講 程序結(jié)構(gòu) 循環(huán)結(jié)構(gòu) While循環(huán) While 循環(huán)可以反復(fù)執(zhí)行循環(huán)體的程序,直至到達(dá)某個邊界條件。它類似于普通編程語言中的 Do 循環(huán)和 Repeat-Until 循環(huán)。While 循環(huán)的框圖是一個大小可變的方框,用于執(zhí)行框中的程序,直到
33、條件端子接收到的布爾值為 FALSE。 該循環(huán)有如下特點: 計數(shù)從0開始(i=0)。 先執(zhí)行循環(huán)體,而后i+1,如果循環(huán)只執(zhí)行一次,那么循環(huán)輸出值i=0。 循環(huán)至少要運行一次。 圖4-1 While 循環(huán)示意圖 由于在練習(xí)一中已講過While循環(huán)的應(yīng)用,大家可以自己做下面的練習(xí),其前面板和流程圖如下圖所示: 2.1.1.1 移位寄存器(Shift Register) 移位寄存器可以將數(shù)據(jù)從一個循環(huán)周期傳遞到另外一個周期。在程序設(shè)計中,經(jīng)常要用到它.創(chuàng)建一個移位寄存器的方法
34、是,用鼠標(biāo)右鍵單擊循環(huán)的左邊或者右邊,在快捷菜單中選擇 Add Shift Register。如右圖所示。 移位寄存器在流程圖上用在循環(huán)邊框上相應(yīng)的一對端子來表示。右邊的端子中存儲了一個周期完成后的數(shù)據(jù),這些數(shù)據(jù)在這個周期完成之后將被轉(zhuǎn)移到左邊的端子,賦給下一個周期。移位寄存器可以轉(zhuǎn)移各種類型的數(shù)據(jù)--數(shù)值、布爾數(shù)、數(shù)組、字符串等等。它會自動適應(yīng)與它連接的第一個對象的數(shù)據(jù)類型。下圖表示了它的工作過程. 圖2-3 Shift Register的工作過程 可以令移位寄存器記憶前面的多個周期的數(shù)值。這個功能對于計算數(shù)據(jù)均值非常有用。還
35、可以創(chuàng)建其他的端子訪問先前的周期的數(shù)據(jù),方法是用鼠標(biāo)右鍵單擊左邊或者右邊的端子,在快捷菜單中選擇Add Element。例如,如果某個移位寄存器左邊的端口含有三個元素,那么就可以訪問前三個周期的數(shù)據(jù)。 練習(xí)四 使用移位寄存器 目的:創(chuàng)建一個可以在圖表中顯示運行平均數(shù)的VI。 前面板 1. 打開一個新的前面板,按照下圖所示創(chuàng)建對象。 2. 把波形圖表的坐標(biāo)范圍改為0.0到2.0。 3. 在添加開關(guān)之后,用鼠標(biāo)右鍵單擊它,在快捷菜單中選擇Mechanical Action?Latch When Pressed,再選擇Operate?Make Current Values D
36、efault,把ON狀態(tài)設(shè)置為默認(rèn)狀態(tài)。 2.0 0.0 0.5 1.0 1.5 50 0 隨機(jī)數(shù) Boolean ON OFF 練習(xí)四 的前面板 流程圖 1.按下圖創(chuàng)建流程圖。 練習(xí)四 的流程圖 2.在流程圖中添加 While 循環(huán)(Functions?Structures),創(chuàng)建移位寄存器。 a. 用鼠標(biāo)右鍵單擊While循環(huán)的左邊或者右邊,在快捷菜單中選擇Add Shift Register。 b. 用鼠標(biāo)右鍵單擊寄存器的左端子,在快捷菜單中選擇Add Element,添加一個寄存器。用同樣的方法創(chuàng)建第三個元素。 3.Random Nu
37、mber (0–1)函數(shù)(Functions?Numeric)——產(chǎn)生0到1之間的某個隨機(jī)數(shù)。 4.Compound Arithmetic 函數(shù)(Functions?Numeric)——在本練習(xí)中,它將返回兩個周期產(chǎn)生的隨機(jī)數(shù)的和。如果要加入其他的輸入,只需用右鍵單擊某個輸入,從快捷菜單中選擇Add Input。 5.除法函數(shù)(Functions?Numeric)——在本練習(xí)中,它用于返回最近四個隨機(jī)數(shù)的平均值。 6.數(shù)值常數(shù)(Functions?Numeric)——在While循環(huán)的每個周期,Random Number (0–1)函數(shù)將產(chǎn)生一個隨機(jī)數(shù)。VI就將把這個數(shù)加入到存儲在寄存器
38、中的最近三個數(shù)值中。Random Number (0–1)再將結(jié)果除以4,就能得到這些數(shù)的平均值(當(dāng)前數(shù)加上以前的三個數(shù))。然后再將這個平均值顯示在波形圖中。 7.Wait Until Next ms Multiple函數(shù) (Functions?Time & Dialog)——它將確保循環(huán)的每個周期不會比毫秒輸入快。在本練習(xí)中,毫秒輸入的值是500毫秒。如果用鼠標(biāo)右鍵單擊圖標(biāo),從快捷菜單中選擇Visible?Label,就可以看到Wait Until Next ms Multiple的標(biāo)簽。 8.用鼠標(biāo)右鍵單擊Wait Until Next ms Multiple 功能函數(shù)的輸入端子,在快
39、捷菜單中選擇Create Constant。出現(xiàn)一個數(shù)值常數(shù),并自動與功能函數(shù)連接。 9.將Constant設(shè)置為500。這樣連接到函數(shù)的數(shù)值常數(shù)設(shè)置了500毫秒的等待時間。因此循環(huán)每半秒執(zhí)行一次。注意,VI用一個隨機(jī)數(shù)作為移位寄存器的初始值。如果沒有設(shè)置移位寄存器端子的初始值,它就含有一個默認(rèn)的數(shù)值,或者上次運行結(jié)束時的數(shù)值,因此開始得到的平均數(shù)沒有任何意義。 10.執(zhí)行該 VI,觀察過程。 11.把該 VI 保存。 練習(xí) 四 結(jié)束。 附注:移位寄存器的初值: 上面的練習(xí)中對移位寄存器設(shè)置了初值0.5。如果不設(shè)這個初值,默認(rèn)的初值是0。在這個例子中,一開始的計算結(jié)果是不
40、對的,只有到循環(huán)完3次后移位寄存器中的過去值才填滿,即第4次循環(huán)執(zhí)行后可以得到正確的結(jié)果。 2.1.2 For循環(huán) For循環(huán)用于將某段程序執(zhí)行指定次數(shù)。和While 循環(huán)一樣,它不會立刻出現(xiàn)在流程圖中,而是出現(xiàn)一個小的圖標(biāo),而后您可以修改它的大小和位置。具體的方法是,先單擊所有端子的左上方,然后按下鼠標(biāo),拖曳出一個包含所有端子的矩形。釋放鼠標(biāo)時就創(chuàng)建了一個指定大小和位置的For循環(huán)。 For循環(huán)將把它的框圖中的程序執(zhí)行指定的次數(shù),F(xiàn)or循環(huán)具有下面這兩個端子: N: 計數(shù)端子(輸入端子)——用于指定循環(huán)執(zhí)行的次數(shù)。 I: 周期端子(輸出端子)——含有循環(huán)已經(jīng)執(zhí)行的次
41、數(shù)。 上圖顯示了一可以產(chǎn)生100個隨機(jī)數(shù)并將數(shù)據(jù)顯示在一個圖表上的For循環(huán)。在該例中,i 的初值是0,終值是99。 練習(xí)五 使用For循環(huán) 目的:用For循環(huán)和移位寄存器計算一組隨機(jī)數(shù)的最大值。 1.打開一個新的前面板,按照下圖創(chuàng)建對象。 a.將一個數(shù)字顯示對象放在前面板,設(shè)置它的標(biāo)簽為“最大值”。 b.將一個波形圖表放在前面板,設(shè)置它的標(biāo)簽為“隨機(jī)數(shù)”。將圖表的縱坐標(biāo)范圍改為0.0到1.0。 c.在圖表的快捷菜單中選擇Visible Items?Scrollbar和Digital Display,并隱藏Plot Legend。 d.用移位工具修改滾動欄的大小。
42、 練習(xí)五 的前面板和流程圖 2.按照上圖畫流程圖。 3.在流程圖中放置一個For循環(huán)(Functions?Structures)。 4.在For循環(huán)的邊框處單擊鼠標(biāo)右鍵,在快捷菜單中選擇Add Shift Register。 5.將下列對象添加到流程圖。 a.Random Number (0–1)函數(shù)(Functions?Numeric)——產(chǎn)生0到1之間的某個隨機(jī)數(shù)。 b.數(shù)值常數(shù)(Functions?Numeric)——在這個練習(xí)中需要將移位寄存器的初始值設(shè)成0。 c.Max&Min函數(shù)(Functions?C
43、omparison)——輸入兩個數(shù)值,再將它們的最大值輸出到右上角,最小值輸出到右下角。這里只需要最大值,只用連接最大值輸出。 d.數(shù)值常數(shù)(Functions?Numeric)——For循環(huán)需要知道需要執(zhí)行的次數(shù)。本練習(xí)中是100次。 6.按照上圖連接各個端子。 7.運行該VI。 8.將該VI保存。 練習(xí)五 結(jié)束。 2.2 分支結(jié)構(gòu):Case Case結(jié)構(gòu)含有兩個或者更多的子程序(Case),執(zhí)行那一個取決于與選擇端子或者選擇對象的外部接口相連接的某個整數(shù)、布爾數(shù)、字符串或者標(biāo)識的值。必須選擇一個默認(rèn)的Case以處理超出范圍的數(shù)值,或者直接列出所有可能的輸入數(shù)值。C
44、ase結(jié)構(gòu)見下圖,各個子程序占有各自的流程框,在其上沿中央有相應(yīng)的子程序標(biāo)識:Ture、False或1、2、3…。按鈕用來改變當(dāng)前顯示的子程序(各子程序是重疊放在屏幕同一位置上的)。 子程序標(biāo)識 按鈕 條件端子 練習(xí)六 使用 Case結(jié)構(gòu) 目的:創(chuàng)建一個VI以檢查一個數(shù)值是否為正數(shù)。如果它是正的,VI就計算它的平方根,反之則顯示出錯。 前面板 1. 打開一個新的前面板,并按照下圖所示創(chuàng)建對象??刂茖ο笥糜谳斎霐?shù)值,顯示對象用于顯示該數(shù)值的平方根。 流程圖 2. 照下圖創(chuàng)建流程圖。 練習(xí)六的面板和流程圖 3. 從Functions?
45、Structures中選擇一個 Case結(jié)構(gòu),并放置在在流程圖中。 Case 結(jié)構(gòu)是一個可以改變大小的方框。先來做Ture的情況,照流程圖上半部分構(gòu)造。 a. Greater Or Equal To 0? 函數(shù)(Functions?Comparison)——如果輸入數(shù)值大于或者等于0就會返回一個TRUE值。 b. Square Root 函數(shù)(Functions?Numeric)——返回輸入數(shù)值的平方根。 連好線 c. 點擊Case框的選擇按鈕,轉(zhuǎn)入False情況編程 數(shù)值常數(shù)(Functions?Numeric)——這里用于顯示錯誤的代數(shù)值-999.0
46、0。 d. One Button Dialog函數(shù)(Functions?Time & Dialog)——在 這里它用于顯示一個對話框,內(nèi)容是Error...。 e. 字符串常數(shù) (Functions?String)——用Edit Text Tools在對話框中輸入字符串。 該VI在TRUE或者FALSE情況下都會執(zhí)行。如果輸入的數(shù)值大于等于0,VI會執(zhí)行TRUE Case,返回該數(shù)的平方根,否則將會輸出-999.00,并顯示一個對話框,內(nèi)容為Error...。 返回前面板,運行該VI。修改標(biāo)簽為Number的數(shù)字式控制對象的數(shù)值,分別嘗試一個正數(shù)和負(fù)數(shù)。注意,當(dāng)把
47、數(shù)字式控制對象的值改為負(fù)數(shù)時,LabVIEW會顯示Case結(jié)構(gòu)的FALSE Case中設(shè)置的出錯信息。 4. 保存該 VI。 VI 的算法 本練習(xí)中的流程圖功能相當(dāng)于代碼式編程語言中的下列偽代碼: if (Number >= 0) then Square Root Value = SQRT(Number) else Square Root Value = -999.00 Display Message "Error.. " end if 練習(xí) 六 結(jié)束。 2.3 順序結(jié)構(gòu)和公式節(jié)點 2.3.1 順序結(jié)構(gòu)(Sequence Structu
48、re) 在代碼式的傳統(tǒng)編程語言中,默認(rèn)的情況是,程序語句按照排列順序執(zhí)行,但LabVIEW中不同,它是一種圖形化的數(shù)據(jù)流式編程語言。在下圖左圖中,假設(shè)有A、B、C、D4個節(jié)點,其數(shù)據(jù)流向如右圖所示。按照數(shù)據(jù)流式語言的約定, 順序結(jié)構(gòu)的說明 任何一個節(jié)點只有在所有的輸入數(shù)據(jù)有效時才會執(zhí)行,所以圖中,當(dāng)且僅當(dāng)A、B、C3個節(jié)點執(zhí)行完,使得D節(jié)點的3個輸入數(shù)據(jù)都到達(dá)D節(jié)點后,D節(jié)點才執(zhí)行。但是你要注意,這里并沒有規(guī)定A、B、C3個節(jié)點的執(zhí)行順序。在LabVIEW中這種情況下,A、B、C的執(zhí)行順序是不確定的,如果你需要對它們規(guī)定一個確定的順序,那就需要使用本節(jié)介紹的“順序結(jié)構(gòu)”。 上圖中
49、的右邊是順序結(jié)構(gòu)的圖標(biāo),它看上去像是電影膠片。它可以按一定順序執(zhí)行多個子程序。首先執(zhí)行0幀中的程序,然后執(zhí)行1幀中的程序,逐個執(zhí)行下去。與Case結(jié)構(gòu)類似,這多幀程序在流程圖中占有同一個位置。 練習(xí) 七 使用順序結(jié)構(gòu) 目的:創(chuàng)建一個 VI,計算生成等于某個給定值的隨機(jī)數(shù)所需要的時間。 前面板 打開一個新的前面板,并按照下圖所示創(chuàng)建對象。 練習(xí)七的前面板 我們約定數(shù)據(jù)是0到100范圍的整數(shù)。當(dāng)前值用于顯示當(dāng)前產(chǎn)生的隨機(jī)數(shù)。“執(zhí)行次數(shù)”用于顯示達(dá)到指定值循環(huán)執(zhí)行的次數(shù)。匹配時間用來顯示達(dá)到指定值所用的時間。 流程圖 練習(xí) 七 的流程圖(
50、共3幀) 1. 在流程圖中放置順序結(jié)構(gòu)(Functions?Structures)。 2. 用鼠標(biāo)右鍵單擊幀的邊框,在快捷菜單中選擇Add Frame After,創(chuàng)建一個新幀。重復(fù)這個步驟,再創(chuàng)建一個幀。共3楨。 3. 選中第0楨,設(shè)置讀取初始時間(子)程序 4. 第0幀的下邊框上含有一個小方框,其中有一個箭頭。這個方框叫做順序局 部變量,可以在同一個順序結(jié)構(gòu)中的各個幀之間傳遞數(shù)據(jù)。用鼠標(biāo)右鍵單擊第0 幀的底部邊框,選擇Add Sequence Local,創(chuàng)建順序局部變量。順序局部變量顯示為一個空的方塊。當(dāng)您將某個功能函數(shù)與順序局部變量相連時,方塊中的箭頭就會自
51、動顯示。 5. Tick Count (ms) 函數(shù)(Functions?Time & Dialog)——返回啟動 到現(xiàn)在的時間(以毫秒為單位)。在這里例子里需要使用兩個這個函數(shù)。另一個在第2幀中。 6. 按圖連好線。轉(zhuǎn)入第1幀。該幀是匹配計算,內(nèi)含一個循環(huán)結(jié)構(gòu)。該圖中使 用的新函數(shù)有: Round to Nearest函數(shù)(Functions?Numeric)——在該例中,它用于取0到100之間的隨機(jī)數(shù)到距離最近的整數(shù)。 Not Equal?函數(shù)(Functions? Comparison)——在該例中,它將隨機(jī)數(shù)和前面板中設(shè)置的數(shù)相比較,如果兩者不相等會返回TRUE值,
52、否則返回FALSE。 Increment函數(shù)(Functions?Numeric)——在該例中,它將While循環(huán)的計數(shù)器加1。 7. 按圖連好線。轉(zhuǎn)入第2幀 在第0幀中,Tick Count (ms)功能函數(shù)將以毫秒為單位表示當(dāng)前時間。這個數(shù)值被連到順序局部變量,這樣它就可以被后續(xù)的幀使用。在第1幀中,只要函數(shù)返回的值與指定值不等,VI就會持續(xù)執(zhí)行While循環(huán)。在第2幀中,Tick Count (ms)功能函數(shù)以毫秒為單位返回新的時間。VI從中減去原來的時間(由第0幀通過順序局部變量提供)就可以計算出花費的時間。 8. 返回前面板,在Number to Match控制對象中輸入一個
53、數(shù)值,執(zhí)行該VI。 9. 把該VI保存。 練習(xí) 七 結(jié)束。 附注與說明:設(shè)置數(shù)據(jù)范圍 在設(shè)定一個數(shù)據(jù)對象時,可以設(shè)置對輸入數(shù)據(jù)的限制,利用快捷鍵選擇Data Range… 選項,將會出現(xiàn)如下對話框: 圖 設(shè)置數(shù)據(jù)范圍 它可以防止用戶創(chuàng)建的控制對象或顯示對象的值超出某個預(yù)設(shè)的范圍。您可以選擇忽略這個值,將它強制修改到范圍以內(nèi),或暫停程序的執(zhí)行。在程序執(zhí)行時,如果發(fā)生溢出錯誤,溢出錯誤符號將顯示在工具欄中的執(zhí)行按鈕的位置。而且,一個立體的黑框?qū)寻l(fā)生溢出的控制對象包圍起來。 2.3.2 公式節(jié)點(Formula Node) 公式節(jié)點是一個大小可變的方框,可以
54、利用它直接在流程圖中輸入公式。從Functions?Structures中選擇公式節(jié)點就可以把它放到流程圖中。當(dāng)某個等式有很多變量或者非常復(fù)雜時,這個功能就非常有用。例如等式:y = x2 + x + 1使用公式節(jié)點可以表示為: 公式節(jié)點示意圖 利用公式節(jié)點可以直接輸入一個或者多個復(fù)雜的公式,而不用創(chuàng)建流程圖的很多子程序。使用文本編輯工具來輸入公式。創(chuàng)建公式節(jié)點的輸入和輸出端子的方法是,用鼠標(biāo)右鍵單擊第0幀的底部邊框,選擇Add Input (Add Output)。再在節(jié)點框中輸入變量名稱。變量名對大小寫敏感。然后就可以在框中輸入公式。每個公式語句都必須以
55、分號(;)結(jié)尾。 公式節(jié)點的幫助窗口中列出了可供公式節(jié)點使用的操作符、函數(shù)和語法規(guī)定。一般說來,它與C語言非常相似,大體上一個用C寫的獨立的程序塊都可能用到公式節(jié)點中。但是仍然建議不要在一個公式節(jié)點中寫過于復(fù)雜的代碼程序。 下面這個例子顯示了如何在一個公式節(jié)點中執(zhí)行不同條件時的數(shù)據(jù)發(fā)送。 請閱讀下面這段程序代碼,如果X為正數(shù),它將算出X的平方根并把該值賦給Y,如果X為負(fù)數(shù),程序就給Y賦值-99。 if (x >= 0) then y = sqrt(x) else y = -99 end if 可以用公式節(jié)點取代上面這段代碼,如下圖所示: 注意:公式節(jié)點中變量字母
56、X,Y大、小寫是有區(qū)別的,開方的函數(shù)sqrt(X)中函數(shù)名稱是小寫。 練習(xí) 八 使用公式節(jié)點 目的:創(chuàng)建一個VI,它用公式節(jié)點計算下列等式: y1 = x 3 – x 2 + 5 y2 = m* x + b x的范圍是從0到10??梢詫@兩個公式使用同一個公式節(jié)點,并在同一個圖表中顯示結(jié)果。 前面板 練習(xí) 八 的面板 打開一個新的前面板,按照上圖(該圖中包含運行結(jié)果)創(chuàng)建前面板中的對象。波形圖顯示對象用于顯示等式的圖形。該 VI使用兩個數(shù)字式控制對象來輸入m和b的值。 流程圖 按照下圖創(chuàng)建流程圖。 練習(xí) 八 的流程圖 在創(chuàng)建某個輸入或
57、者輸出端子時,必須給它指定一個變量名。這個變量名必須與公式節(jié)點中使用的變量名完全相符。 公式節(jié)點中,在邊框上單擊鼠標(biāo)右鍵,在快捷菜單中選擇Add Input,可以創(chuàng)建三個輸入端子。在快捷菜單中選擇Add Output,創(chuàng)建輸出端子。 x的范圍是從0到10(包括10),就必須連接11到計數(shù)端子。 Build Array (Functions?Array)——在這個例子中,它用于將兩個數(shù)據(jù)構(gòu)成數(shù)組形式提供給一個多曲線的圖形中。通過用變形工具拖拉邊角就可以創(chuàng)建兩個輸入端子。 返回前面板,嘗試給m和b賦以不同的值再執(zhí)行該 VI。 把該VI保存。 練習(xí) 八 結(jié)束。 第三講
58、 數(shù)據(jù)類型:數(shù)組、簇和波形 3.1 概述 數(shù)組是同類型元素的集合。一個數(shù)組可以是一維或者多維,如果必要,每維最多可有231-1個元素。可以通過數(shù)組索引訪問其中的每個元素。索引的范圍是0到n – 1,其中n是數(shù)組中元素的個數(shù)。圖3-1所顯示的是由數(shù)值構(gòu)成的一維數(shù)組。注意第一個元素的索引號為0,第二個是1,依此類推。數(shù)組的元素可以是數(shù)據(jù)、字符串等,但所有元素的數(shù)據(jù)類型必須一致。 圖3-1 數(shù)組示意圖 簇(Cluster)是另一種數(shù)據(jù)類型,它的元素可以是不同類型的數(shù)據(jù)。它類似于C語言中的stuct。使用簇可以把分布在流程圖中各個位置的數(shù)據(jù)元素組合起來,這樣可以減少連線的擁擠程度。減少
59、子VI的連接端子的數(shù)量。 波形(Waveform)可以理解為一種簇的變形,它不能算是一種有普遍意義的數(shù)據(jù)類型,但非常實用。 3.2 數(shù)組的創(chuàng)建及自動索引 3.2.1 創(chuàng)建數(shù)組 一般說來,創(chuàng)建一個數(shù)組有兩件事要做,首先要建一個數(shù)組的“殼”(shell),然后在這個殼中置入數(shù)組元素(數(shù)或字符串等)。 如果需要用一個數(shù)組作為程序的數(shù)據(jù)源,可以選擇Functions?Array?Array Constant,將它放置在流程圖中。然后再在數(shù)組框中放置數(shù)值常量、布爾數(shù)還是字符串常量。下圖顯示了在數(shù)組框放入字符串常量數(shù)組的例子。左邊是一個數(shù)組殼,中間的圖上已經(jīng)置入了字符串元素,右邊的圖
60、反映了數(shù)組的第0個元素為:”ABC”,后兩個元素均為空。 圖3-1 數(shù)組的創(chuàng)建 在前面板中創(chuàng)建數(shù)組的方法是,從Controls模板中選擇Array & Cluster,把數(shù)組放置在前面板中,然后選擇一個對象(例如數(shù)值常量)插入到數(shù)組框中。這樣就創(chuàng)建了一個數(shù)值數(shù)組。也可以直接在前面板中創(chuàng)建數(shù)組和相應(yīng)的控制對象,然后將它們復(fù)制或者拖曳到流程圖中,創(chuàng)建對應(yīng)的常數(shù)。還有很多在流程圖中創(chuàng)建和初始化數(shù)組的方法,有些功能函數(shù)也可以生成數(shù)組。 3.2.2 數(shù)組控制對象、常數(shù)對象和顯示對象 通過把數(shù)組與數(shù)值、布爾數(shù)、字符串或者簇組合在一起,可以在前面板和流程圖中創(chuàng)建任何一種控制對象、常數(shù)對象
61、和顯示對象。數(shù)組元素不能是數(shù)組、圖表或者圖形。 3.2.3 自動索引 For循環(huán)和While循環(huán)可以自動地在數(shù)組的上下限范圍內(nèi)編索引和進(jìn)行累計。這些功能稱為自動索引。在啟動自動索引功能以后,當(dāng)把某個外部節(jié)點的任何一維元素連接到循環(huán)邊框的某個輸入通道時,該數(shù)組的各個元素就將按順序一個一個地輸入到循環(huán)中。循環(huán)會對一維數(shù)組中的標(biāo)量元素,或者二維數(shù)組中的一維數(shù)組等編制索引。在輸出通道也要執(zhí)行同樣的工作――數(shù)組元素按順序進(jìn)入一維數(shù)組,一維數(shù)組進(jìn)入二維數(shù)組,依此類推。 在默認(rèn)情況下,對于每個連接到For循環(huán)的數(shù)組都會執(zhí)行自動索引功能。可以禁止這個功能的執(zhí)行,方法是用鼠標(biāo)右鍵單擊通道(輸入數(shù)組進(jìn)入循環(huán)
62、的位置),在快捷菜單中選擇Disable Indexing。 練習(xí) 九 創(chuàng)建一個自動索引的數(shù)組 目的:使用 For 循環(huán)的自動索引功能創(chuàng)建數(shù)組,并用一個圖形(Graph)顯示該數(shù)組。 前面板 圖3-2 練習(xí) 九 的面板 1. 打開一個新的前面板。 2. 選擇Controls?Array & Cluster,在前面板中放置一個數(shù)組。設(shè)置它的標(biāo)簽為Waveform Array。 3. 選擇Controls?Numeric,在數(shù)組框中插入一個數(shù)字式顯示對象。如右圖所示。它用于顯示數(shù)組的內(nèi)容。 4. 選擇Controls?Grap
63、h,在前面板中放置一個波形圖。設(shè)置它的標(biāo)簽為Waveform Graph。 5. 隱藏圖例和模板。 6. 用鼠標(biāo)右鍵單擊圖形,并在快捷菜單中取消選中 Y Scale?Autoscale Y,禁止自動坐標(biāo)功能。 7. 使用文本工具,把Y軸的范圍改為-0.5到1.5。 8. 按照下圖創(chuàng)建流程圖。 圖3-2 練習(xí) 九 的流程圖 由Functions?Select a VI…尋找LabVIEW\activity目錄下的Generate Waveform VI ,它的作用是返回波形中的某一點。這個VI需要輸入一個索引,我們將循環(huán)周期連接到這
64、個輸入。 注意Generate Waveform VI連出來的連線在循環(huán)邊界變成一個數(shù)組時會變粗,正是在這個邊界處形成了一維數(shù)組?!? For循環(huán)會自動累計邊界內(nèi)的數(shù)組。這種功能叫做自動索引。在這個例子中,連接到循環(huán)計數(shù)輸入的數(shù)值常數(shù)令For循環(huán)創(chuàng)建了一個由100個元素組成的數(shù)組。 Bundle函數(shù)( Functions? Cluster)——將圖塊中的各個組件組合成一個簇,在正確連接以前需要改變該函數(shù)的圖標(biāo)的大小。將移位工具放在圖標(biāo)的左下角。變形工具會變成如左圖所示,拖曳鼠標(biāo)直到出現(xiàn)第三個輸入端子。 數(shù)值常數(shù)( Functions?Numeric)——三個數(shù)值常數(shù)用于設(shè)置For循環(huán)執(zhí)行
65、的周期數(shù)N=100,初始X=0和delta X=1。 9. 從前面板執(zhí)行該VI。該VI將把自動索引后的波形圖數(shù)組顯示在波形圖中。 10.把 X的delta值改為0.5,X的初始值改為20。再次執(zhí)行該VI。注意,波形圖現(xiàn)在同樣顯示100個點,而每個點的初始值為20,X的delta值為0.5(見X軸)。 11.只需在顯示器中輸入元素的索引號就可以查看波形數(shù)組中的任何元素。如果輸入的數(shù)比數(shù)組的元素個數(shù)大,那么顯示器將變暗,表示您沒有為該元素設(shè)置索引。 如果需要一次查看多個元素,可以通過改變數(shù)組顯示對象的大小來實現(xiàn)。 把定位工具放置在數(shù)組框的右下角。工具將變成右圖所示的變形工具。當(dāng)工具變形時,
66、用鼠標(biāo)拖曳數(shù)組的右邊或者下邊。數(shù)組現(xiàn)在就可以按照元素索引的上升順序顯示多個素,以某個與指定索引對應(yīng)的元素開始,如下圖所示。
圖3-3 練習(xí) 九 中多個數(shù)組元素的同時觀察
在前面的流程圖中,您為波形圖指定了初始的X值和delta X值。默認(rèn)的X初始值是0,delta X 值是1。這樣,也可以把波形數(shù)組直接連接到波形圖端子, 而無需指定初始的X值和delta X值,如圖3-4所示。
圖3-4 練習(xí) 九使用默認(rèn)X及Delta X時簡化后的流程圖
12. 按上圖刪除 Bundle功能函數(shù)和它所連接的常數(shù)對象。方法是用移位工具選擇該功能函數(shù)和連接的常數(shù)對象,按下
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案