版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、LabVIEW的程序結(jié)構(gòu),主要的程序結(jié)構(gòu)有: 循環(huán)(While循環(huán)和For循環(huán)) 選擇(Case結(jié)構(gòu)) 順序(Sequence結(jié)構(gòu),分為平鋪式和層疊式) 事件(Event結(jié)構(gòu)),1 For循環(huán),1For循環(huán)的創(chuàng)建 基本的For循環(huán)結(jié)構(gòu)由循環(huán)框、循環(huán)次數(shù)端口和計(jì)數(shù)端口組成。,循環(huán)框,計(jì)數(shù)端口,循環(huán)次數(shù)端口,循環(huán)邊框,2For循環(huán)的工作流程 For循環(huán)用于將結(jié)構(gòu)中的程序循環(huán)執(zhí)行指定的次數(shù)。 在開(kāi)始For循環(huán)之前,從循環(huán)次數(shù)端口讀入循環(huán)次數(shù),計(jì)數(shù)端口輸出0值。 接下來(lái)執(zhí)行For循環(huán)框內(nèi)框圖代碼程序,每執(zhí)行一次計(jì)數(shù)端口值自動(dòng)加1。 循環(huán)次數(shù)達(dá)到設(shè)定值后,退出循環(huán)。,3For循環(huán)的數(shù)據(jù)通道與自動(dòng)索引 數(shù)
2、據(jù)通道是用連線工具連接循環(huán)框內(nèi)外的數(shù)據(jù)端口時(shí),在框架上自動(dòng)形成的方形通道圖標(biāo) 。 圖標(biāo)空心表明此時(shí)數(shù)據(jù)通道具有自動(dòng)索引功能,實(shí)心圖標(biāo)不能索引 。 自動(dòng)索引是指將循環(huán)框外面的數(shù)組成員逐個(gè)依次進(jìn)入循環(huán)體內(nèi),或?qū)⒀h(huán)框內(nèi)的數(shù)據(jù)累加成一個(gè)數(shù)組輸出到循環(huán)框外面。,例如:下圖中通道自動(dòng)索引功能有效時(shí),每一次循環(huán)產(chǎn)生一個(gè)新的數(shù)據(jù),存儲(chǔ)在循環(huán)的邊框通道上,待循環(huán)結(jié)束以后,產(chǎn)生的6個(gè)數(shù)據(jù)將傳送到一個(gè)數(shù)組指示器中。自動(dòng)索引功能無(wú)效時(shí),只有最后一次For循環(huán)產(chǎn)生的1個(gè)隨機(jī)數(shù)傳到循環(huán)外。,空心,實(shí)心,4移位寄存器 創(chuàng)建:右擊邊框,彈出一個(gè)菜單,選擇Add Shift Register選項(xiàng),可添加一個(gè)移位寄存器。 用途
3、:主要用于While循環(huán)和For循環(huán),將上一次循環(huán)的值傳給下一次循環(huán)。 數(shù)據(jù)類型: 數(shù)字型、布爾型、字符串等 。 初始化:在循環(huán)外將初始值連到移位寄存器的左端口,有默認(rèn)初值。 還可以存儲(chǔ)前幾次循環(huán)的值,在移位寄存器的左端口或右端口上右擊鼠標(biāo)彈出菜單,選擇Add Element選項(xiàng),可創(chuàng)建附加的左端口來(lái)存儲(chǔ)前幾次循環(huán)的值。,5反饋節(jié)點(diǎn) 功能:在循環(huán)中,將數(shù)據(jù)從一次循環(huán)傳遞到下一次循環(huán)。 反饋節(jié)點(diǎn)箭頭的方向表示數(shù)據(jù)流的方向。 反饋節(jié)點(diǎn)和移位寄存器可以互換,在反饋節(jié)點(diǎn)或移位寄存器圖標(biāo)上彈出快捷菜單選Replace with shift Register或Replace with Feedback N
4、ode即可。 移位寄存器左端口多于1個(gè)時(shí)不能轉(zhuǎn)換為反饋節(jié)點(diǎn)。,下面是用移位寄存器(左圖)和反饋節(jié)點(diǎn)(右圖)實(shí)現(xiàn)a+的框圖程序。,2 While循環(huán),For循環(huán)和While循環(huán)的區(qū)別: For循環(huán)要執(zhí)行預(yù)先指定的循環(huán)次數(shù)。 而While循環(huán)只有在條件端口接收到的值為False(or:True)時(shí)才停止循環(huán)。While循環(huán)不必知道循環(huán)次數(shù)。 While循環(huán)不滿足條件也要執(zhí)行1次。 For循環(huán)當(dāng)N1時(shí)1次都不執(zhí)行。,1.While循環(huán)的創(chuàng)建 While循環(huán)由循環(huán)框、條件端口和計(jì)數(shù)端口組成。,循環(huán)框,條件端口,計(jì)數(shù)端口,循環(huán)邊框,2.While循環(huán)的工作流程 條件端口控制循環(huán)的停止與否。 條件端口有兩
5、種狀態(tài) : 當(dāng)使用狀態(tài)為Stop if True 時(shí),若輸入值為Ture,則停止循環(huán) 。若輸入值為False,則繼續(xù)執(zhí)行下一次循環(huán)。 當(dāng)使用狀態(tài)為Continue if True 時(shí),若輸入值為Ture,則繼續(xù)執(zhí)行下一次循環(huán)。若輸入值為False,則停止循環(huán)。 循環(huán)結(jié)束后,才去檢測(cè)條件端口的值,因此不管條件是否成立,循環(huán)至少要執(zhí)行一次。,計(jì)數(shù)端口用于統(tǒng)計(jì)循環(huán)執(zhí)行的次數(shù),While循環(huán)每執(zhí)行一次,計(jì)數(shù)端口的值就加1。 計(jì)數(shù)端口從零開(kāi)始計(jì)數(shù),也就是說(shuō),在第一次循環(huán)結(jié)束時(shí),計(jì)數(shù)端口的值為0,如果循環(huán)執(zhí)行了10次,則計(jì)數(shù)端口的值為9。 While循環(huán)也具有數(shù)據(jù)通道索引和移位寄存器、反饋接點(diǎn)的功能,它們
6、的用法與For循環(huán)相同,只是While循環(huán)的邊框數(shù)據(jù)通道默認(rèn)為不能索引。,用While 循環(huán)實(shí)現(xiàn)求X的立方和(P54),3 Case結(jié)構(gòu),1.Case結(jié)構(gòu)的創(chuàng)建 Case結(jié)構(gòu)由選擇框架、選擇端口、選擇器標(biāo)簽,以及遞增/遞減按鈕組成。,選擇標(biāo)簽,遞增按鈕,遞減按鈕,選擇框架,選擇端口,2Case結(jié)構(gòu)的工作流程 Case結(jié)構(gòu)有一個(gè)條件選擇端口 (Selector),根據(jù)連到該端口 的值來(lái)判斷執(zhí)行哪一個(gè)子Case。 Selector端口的數(shù)據(jù)類型有布爾型、數(shù)字型和字符串型。 3設(shè)置選擇結(jié)構(gòu)的默認(rèn)項(xiàng) 應(yīng)設(shè)置一個(gè)默認(rèn)項(xiàng)來(lái)處理超出條件選項(xiàng)范圍的情況。 設(shè)置選擇結(jié)構(gòu)默認(rèn)項(xiàng)的方法是在選擇結(jié)構(gòu)邊框上單擊鼠標(biāo)右鍵
7、,選擇Make This The Default Case。,4選擇結(jié)構(gòu)數(shù)據(jù)通道的設(shè)置 輸入數(shù)據(jù)時(shí),每個(gè)子Case框可連可不連數(shù)據(jù)通道。 輸出數(shù)據(jù)時(shí),每個(gè)子Case框必須為通道連接數(shù)據(jù)。否則程序不能運(yùn)行,這時(shí)通道的圖標(biāo)是空心的,只有為每個(gè)子Case框的數(shù)據(jù)端口都連接數(shù)據(jù)后,圖標(biāo)才變成實(shí)心。 Use Default if Unwired可使程序中沒(méi)有連線的子Case框輸出默認(rèn)值。,CASE0 (Add),VI就進(jìn)行加法運(yùn)算,CASE1,則VI將進(jìn)行減法運(yùn)算。 使用了一個(gè)數(shù)字型Text Ring控制器(在控制模板中的Ring&Enum子模板中)注意:當(dāng)在一個(gè)子Case中建立了一個(gè)輸出數(shù)據(jù)通道后,必
8、須給每一個(gè)子Case定義輸出數(shù)據(jù)通道。,設(shè)定默認(rèn)的子CASE,當(dāng)所有條件都不滿足時(shí),執(zhí)行默認(rèn)子CASE,例子,4 順序結(jié)構(gòu),LabVIEW是一種數(shù)據(jù)流程序設(shè)計(jì)語(yǔ)言,沒(méi)有明確的先后順序,當(dāng)節(jié)點(diǎn)所有輸入端的數(shù)據(jù)全部有效時(shí),節(jié)點(diǎn)才執(zhí)行。 Sequence結(jié)構(gòu),它是一種先后順序執(zhí)行的結(jié)構(gòu),看上去象電影膠片的幀(Frame),每一幀為一段框圖程序,按照幀(Frame)的順序來(lái)執(zhí)行框圖程序。 兩種形式順序結(jié)構(gòu),F(xiàn)lat Sequence Structure平鋪式順序結(jié)構(gòu)和Stacked Sequence Structure層疊式順序結(jié)構(gòu)。功能相同,區(qū)別僅在于表現(xiàn)形式不同。,1. 順序結(jié)構(gòu)的創(chuàng)建 在函數(shù)模板
9、的Structures子模板中選擇創(chuàng)建順序結(jié)構(gòu)。選取Stacked Sequence Structure層疊式順序結(jié)構(gòu) 。 在結(jié)構(gòu)邊框上面單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇“Add Frame After”或“Add Frame Before”可以增加子圖形代碼框。 在結(jié)構(gòu)邊框上右擊彈出的快捷菜單,選擇ReplaceReplace with Flat Sequence,可以將層疊式順序結(jié)構(gòu)變換為平鋪式順序結(jié)構(gòu),2.順序結(jié)構(gòu)的工作方式 數(shù)據(jù)傳遞至順序結(jié)構(gòu)時(shí),層疊式從標(biāo)識(shí)0開(kāi)始執(zhí)行,依次順序執(zhí)行;平鋪式從左至右執(zhí)行所有子圖形代碼框。 從結(jié)構(gòu)外面向順序結(jié)構(gòu)寫數(shù)據(jù)時(shí),可連接可不連接這個(gè)數(shù)據(jù)通道;但是
10、當(dāng)順序結(jié)構(gòu)向外輸出數(shù)據(jù)時(shí),各個(gè)圖形代碼框中只能有一個(gè)連接這個(gè)數(shù)據(jù)通道。 代碼框之間的數(shù)據(jù)傳遞,平鋪式可從一幀直接連線到另一幀來(lái)傳遞數(shù)據(jù),層疊式則需要通過(guò)局部變量Sequence Local來(lái)傳送數(shù)據(jù)。,在層疊式順序結(jié)構(gòu)的邊框上面右擊,選擇Add Sequence Local即可在當(dāng)前幀創(chuàng)建一個(gè)順序局部變量端口。 將本幀中的數(shù)據(jù)連接到該局部變量端口,該數(shù)據(jù)就可傳到后面的幀,該數(shù)據(jù)不會(huì)作用到它前面的幀。 如下圖示意了層疊式順序結(jié)構(gòu)通過(guò)局部變量傳遞數(shù)據(jù)的情況。在標(biāo)識(shí)是1號(hào)幀的一個(gè)數(shù)據(jù)傳遞到標(biāo)識(shí)是2號(hào)的幀進(jìn)行“或”運(yùn)算,0號(hào)幀不能使用該數(shù)據(jù)。,例:使用Sequence結(jié)構(gòu),設(shè)計(jì)一個(gè)VI,計(jì)算產(chǎn)生一個(gè)與
11、指定的數(shù)字相等的隨機(jī)數(shù)所需花費(fèi)的時(shí)間。,讀取定時(shí)器的當(dāng)前值,VI程序每隔10ms執(zhí)行循環(huán),四舍五入取整,5 事件結(jié)構(gòu),1.事件結(jié)構(gòu)的創(chuàng)建 事件結(jié)構(gòu)包括:結(jié)構(gòu)框、事件標(biāo)簽、超時(shí)端口和事件數(shù)據(jù)端口。,事件標(biāo)簽 :說(shuō)明當(dāng)前框圖程序是響應(yīng)的什么事件 。,超時(shí)端口,默認(rèn)值為-1,表示無(wú)限等待 。,事件數(shù)據(jù)端口,結(jié)構(gòu)框,2事件結(jié)構(gòu)的使用 可有一個(gè)或多個(gè)子圖形代碼框,該圖形代碼框可以設(shè)置為響應(yīng)多個(gè)事件。 右擊事件結(jié)構(gòu)邊框,從彈出的快捷菜單中選擇Edit Events Handled by ThisCase,這時(shí)將彈出編輯事件對(duì)話框。,顯示當(dāng)前建立的事件,默認(rèn)“Timeout事件。,增加事件,刪除事件,可以選
12、擇的事件源,相應(yīng)的事件源可產(chǎn)生的事件消息,例如:建立一個(gè)5秒的超時(shí)事件和一個(gè)“OK Button” 開(kāi)關(guān)值發(fā)生變化的事件,要求: 方法1:任一事件發(fā)生都執(zhí)行同一個(gè)子圖形代碼框程序,顯示出對(duì)話框“超時(shí)或單擊了OK按鈕”。 方法2:由不同的框圖程序響應(yīng)不同的事件,顯示出對(duì)話框“超時(shí)事件”或“單擊了OK按鈕事件”。,法1: 在前面板添加放置一個(gè)“OK Button” 控件 。 在編輯事件對(duì)話框中單擊按鈕 新建一個(gè)事件,選取“EventSources”事件源窗口中的“OK Button”,并在“Event”事件窗口中選擇“Value Change” 。 選取OneButtonDialog函數(shù),放置在E
13、vent Structure中。 在message數(shù)據(jù)端口新建一個(gè)常量,輸入“超時(shí)或單擊了OK按鈕”。 在超時(shí)端口連接值為5000的一個(gè)數(shù)字常量。,運(yùn)行程序,如果單擊了“OK Button”按鈕或等待5秒都會(huì)顯示出對(duì)話框“超時(shí)或單擊了OK按鈕”。,法2: 在事件結(jié)構(gòu)邊框的快捷菜單中選擇Add Event Case來(lái)創(chuàng)建事件結(jié)構(gòu)的一個(gè)分支 。 在彈出的對(duì)話框中,選取“EventSources”事件源窗口中的“OK Button” 。并在“Event”事件窗口中選擇“Value Change” 。 后面的設(shè)置與法1類似。,6 公式節(jié)點(diǎn),在框圖程序中,如果需要設(shè)計(jì)較復(fù)雜的數(shù)學(xué)運(yùn)算,框圖將會(huì)十分復(fù)雜,
14、工作量大,而且不直觀,調(diào)試、改錯(cuò)也不方便。 利用公式節(jié)點(diǎn),只需將數(shù)學(xué)公式的文本表達(dá)式輸入在公式節(jié)點(diǎn)的框圖內(nèi),并連接相應(yīng)的輸入、輸出端口,則LabVIEW會(huì)自動(dòng)地根據(jù)公式計(jì)算出正確的結(jié)果,并從輸出端輸出。,(1)公式節(jié)點(diǎn)的創(chuàng)建 從函數(shù)模板的Structures子模板上選擇公式節(jié)點(diǎn)Formula Node,在框圖中設(shè)置公式節(jié)點(diǎn)。 公式節(jié)點(diǎn)的邊框大小可以改變,用戶可以使用標(biāo)簽工具,將數(shù)學(xué)公式直接輸入到公式節(jié)點(diǎn)的框內(nèi)。,(2)公式節(jié)點(diǎn)的使用 可以聲明變量,也支持一些常用的C語(yǔ)言的語(yǔ)句(包括賦值語(yǔ)句、條件語(yǔ)句、循環(huán)語(yǔ)句、Switch語(yǔ)句),每條語(yǔ)句以分號(hào)結(jié)尾。 輸入公式后,需要添加輸入、輸出端口。 在添
15、加端口后出現(xiàn)的方框內(nèi)填入變量名稱。 將輸入端口和程序中的數(shù)據(jù)端口相連接。 將輸出端口和程序中的指示端口連接,公式節(jié)點(diǎn)中常用的運(yùn)算符,其中,條件運(yùn)算符的“?”前的部分是判定條件,“?”和“ :”間的部分為當(dāng)條件為True時(shí)的表達(dá)式,“ :”后的部分為當(dāng)條件為False時(shí)的表達(dá)式。,公式節(jié)點(diǎn)語(yǔ)句中還可以使用數(shù)學(xué)函數(shù):abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos、cosh、cot、csc、exp、expml、floor、getexp、getman、int、intrz、ln、lnp1、log、log2、max、min、mod、pow、rand、
16、rem、sec、sign、sin、sinc、sinh、sizeOfDim、sqrt、tan、tanh。 公式節(jié)點(diǎn)中可使用 IF條件語(yǔ)句, for和do 、while循環(huán) Swtich ( ) case分支語(yǔ)句 公式節(jié)點(diǎn)的語(yǔ)法與C語(yǔ)言相同,例:用公式節(jié)點(diǎn)計(jì)算y1=x3+x2+5和y2=m*x+b,分析: 公式的輸入端口共有3個(gè)輸入量,分別是m、b和x。 3個(gè)輸入量經(jīng)過(guò)公式節(jié)點(diǎn)中的兩條語(yǔ)句完成指定的運(yùn) 算,通過(guò)輸出端口輸出y1和y2。,補(bǔ)充:前面板對(duì)象屬性的動(dòng)態(tài)控制,在前面板設(shè)計(jì)編程時(shí),我們可以修改和設(shè)定對(duì)象控件的屬性,但是在程序運(yùn)行時(shí)能否由用戶修改或程序自身改變呢? 方法是:創(chuàng)建對(duì)象的屬性節(jié)點(diǎn),
17、通過(guò)對(duì)屬性節(jié)點(diǎn)的“寫”操作,完成對(duì)對(duì)象屬性的修改。 同樣通過(guò)對(duì)屬性節(jié)點(diǎn)的“讀”操作,在程序中讀取對(duì)象的屬性。,例:程序運(yùn)行中,用Knob控件改變圖形曲線的顏色,提示:建立CHART的屬性節(jié)點(diǎn) ,改為可寫,并指定為曲線Plot的顏色Color屬性,用Knob的值控制CASE,分別送5種顏色值給屬性節(jié)點(diǎn),7 局部變量和全局變量,1局部變量 程序太復(fù)雜,連線困難,需用局部變量。 (1)創(chuàng)建 法一:為前面板對(duì)象創(chuàng)建局部變量。 在對(duì)象上面單擊鼠標(biāo)右鍵,選擇CreateLocal Variable。 法二:在框圖程序中新建局部變量,然后再指向某個(gè)對(duì)象。 可以為一個(gè)對(duì)象創(chuàng)建多個(gè)局部變量。 局部變量具有讀、寫
18、兩種屬性。并可互換。,(2) 使用示例 程序中,建立了“停止”控件的兩個(gè)局部變量。 循環(huán)內(nèi)的局部變量處于“讀”狀態(tài),讀出當(dāng)前“停止”控件的狀態(tài),送給“指示燈”控件顯示。 循環(huán)外的局部變量 則處于“寫”狀態(tài),它在每次程序運(yùn)行前賦給“停止”控件,賦值為“False”,以保證程序運(yùn)行時(shí)進(jìn)入循環(huán)狀態(tài)。,2全局變量 不同程序之間交換數(shù)據(jù),需用全局變量。 全局變量VI只有前面板而無(wú)框圖程序。 (1)創(chuàng)建 選擇全局變量圖標(biāo),右擊,選擇Open Front Panel,打開(kāi)全局變量聲明VI的前面板。 按照需要的數(shù)據(jù)類型加入控件 。 切換到框圖程序窗口,單擊全局變量圖標(biāo),選擇需要它指向的控件。 返回到全局變量聲明VI的前面板,將該VI文件存盤,完成全局變量的建立。,(2)調(diào)用 由函數(shù)模板中的Select a VI子模板打開(kāi)選擇用戶程序?qū)υ捒颍x擇已經(jīng)保存的全局變量聲明VI程序,此時(shí)將在框圖程序中顯示全局變量數(shù)據(jù)端口。 如果在全局變量聲明VI中建立多個(gè)控件,可以用操作工具在全局變量的圖標(biāo)上單擊,在列出的所有變量對(duì)象中選擇所需的對(duì)象。,(3)使用示例 利用全局變量在不同VI中傳遞數(shù)據(jù)。 創(chuàng)建一個(gè)全局變量聲明,其中包含
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 調(diào)酒沙龍活動(dòng)方案策劃(3篇)
- 水下拆除施工方案(3篇)
- 手繪驚喜活動(dòng)策劃方案(3篇)
- 保暖大棚施工方案(3篇)
- 浴室擴(kuò)建施工方案(3篇)
- 化工車間培訓(xùn)資料
- 城市酒店員工培訓(xùn)
- 2025年大學(xué)舞蹈(舞蹈心理學(xué))試題及答案
- 2025年大學(xué)會(huì)計(jì)學(xué)(財(cái)務(wù)會(huì)計(jì)基礎(chǔ))試題及答案
- 2025年高職作物生產(chǎn)與經(jīng)營(yíng)管理(農(nóng)業(yè)項(xiàng)目管理)試題及答案
- (2025年)昆山杜克大學(xué)ai面試真題附答案
- 污水處理設(shè)施運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 高級(jí)衛(wèi)生專業(yè)技術(shù)資格考試臨床醫(yī)學(xué)檢驗(yàn)臨床微生物(042)(副高級(jí))試題及解答參考(2025年)
- 四川省南充市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試題含解析
- JGJ100-2015車庫(kù)建筑設(shè)計(jì)規(guī)范
- 2024屆高考語(yǔ)文復(fù)習(xí):二元思辨類作文
- DB11T 696-2023 預(yù)拌砂漿應(yīng)用技術(shù)規(guī)程
- (完整word版)英語(yǔ)四級(jí)單詞大全
- 井下作業(yè)技術(shù)油水井措施酸化課件解析
- 旅游接待業(yè) 習(xí)題及答案匯總 重大 第1-10章 題庫(kù)
- 智慧金庫(kù)項(xiàng)目需求書
評(píng)論
0/150
提交評(píng)論