LabVIEW变量
由于LabVIEW圖形化編程特點,某些情況下要在同一VI的不同位置或在不同VI中訪問同一控件,這時控件對象之間的連線就無法實現了。此時,需要用到局部變量或全局變量,通過局部變量或全局變量可以在程序框圖中的多個地方讀/寫同一個控件。LabVIEW的變量可以分為三類:局部變量、全局變量和共享變量。本節只對局部變量和全局變量進行講解。
局部變量
局部變量主要用于在程序內部傳遞數據,它既可以作為控制量向其他對象傳遞數據,也可以作為顯示量接收其他對象傳遞過來的數據。
下面介紹利用局部變量制作一個計時器的實例。本例的計時器可以暫停,暫停后還可繼續計時。用“已用時間”對象獲取計時時間,單位為秒,然后通過獲取的時間計算其時、分、秒的數據。暫停后的計時值、“已用時間”對象的重置控制、顯示控件初始化可通過局部變量實現。
步驟一:新建一個VI。在前面板上添加四個“數值顯示”控件,分別命名為“時”、“分”、“秒”、“毫秒”,將數據顯示類型更改為“I32”(具體方法為用鼠標右鍵單擊控件,在“表示法”中選擇“I32”)。打開“時”、“分”和“秒”的屬性對話框,在“顯示格式”選項卡中,設置相關參數。“毫秒”只是將“使用最小域寬”設置為“3”,其余設置均相同。
步驟二:在前面板中添加兩個數值顯示控件,分別命名為“計時數”和“暫停前計數值”;在“控件”下“經典”選項中的“經典布爾”子面板中選擇“帶標簽方形按鍵”控件,將其放置到前面板上,命名為“開始/暫停”,并打開其屬性對話框的“外觀選項卡”,設置“開時文本”為“開始”,“關時文本”為“暫停”。添加一個“停止”按鈕和一個布爾型的“方形指示燈”控件命名為“重置”。
步驟三:切換到程序框圖,添加一個條件結構,并將“開始/暫停”對象的輸出端連接分支選擇器。在整個條件結構外添加一個While循環結構,設置時間間隔為10ms,并將停止按鈕連接循環條件端子。
步驟四:在條件結構的“真”分支中添加一個平鋪式順序結構,并將順序結構、前后各添加一幀。從“函數”下“編程”選項中的“定時”子面板中選擇“已用時間”對象,將其添加到順序結構的中間幀內,“重置”對象放置在第一幀中,并與“已用時間”對象的重置端口連接;創建一個“重置”對象的局部變量,放置在第三幀中,并在輸入端連接一個布爾“假”常量。這樣做的目的是實現暫停計時并在重新計時后,將“已用時間”對象在暫停時的計時數清零,因為只要程序不停,“已用時間”對象就會一直計數。
步驟五:用鼠標右鍵單擊“計時數”對象,在快捷菜單中選擇“創建”下的“局部變量”選項,創建一個計時數對象的局部變量并添加到“假”分支中,將其轉換為讀取狀態。同時,創建該局部變量的顯示控件,命名為“暫停前計數值”,這一步的作用是保存暫停時的計時數并與“重置”對象一起完成暫停后累加計時的功能。同樣創建“重置”對象的局部變量,放置到“假”分支中,并向其輸入端連接布爾型的“真”常量。
步驟六:在While循環的外側創建一個平鋪式順序結構,在其前方添加一幀,把“時”、“分”、“秒”、“毫秒”等對象以及“計時數”和“暫停前計數值”局部變量放置到第一幀中,并初始化為“0”。
步驟七:創建時”、“分”、“秒”、“毫秒”和“暫停前計數值”等對象的局部變量,添加“加”、“乘”、“商與余數”對象,并將它們放置到“真”分支中順序結構的中間幀,按圖中所示進行連接,即可完成計時器功能的主要程序設計。
步驟八:運行程序。
全局變量
局部變量通常用于程序內部的數據傳遞,對于程序間的數據傳遞就無能為力了,而全局變量則可以解決這個問題。LabVIEW中的全局變量是以獨立的VI文件形式存在的,這個VI文件只有前面板,沒有程序框圖,不能進行編程。通過全局變量可以在不同的VI之間進行數據交換,一個全局變量的VI文件中可以包含多個不同數據類型的全局變量。
下面通過一個用全局變量在不同VI之間傳遞數據的實例,來說明全局變量的使用方法。首先創建兩個VI和一個全局變量,其中一個VI產生正弦波形,通過全局變量傳遞后,在另一個VI中顯示。創建程序的步驟如下:
步驟一:創建一個全局變量。打開全局變量編輯框后,在其中放置一個“波形圖”顯示控件,命名為“波形全局變量”,如圖所示。保存該VI,命名為“波形全局變量.vi”。
步驟二:創建信號產生VI。創建一個VI,保存VI名為“信號產生”。在前面板上放置一個“波形圖”控件,命名為“信號產生波形顯示”。切換到程序框圖,選擇“編程”→“波形”→“模擬波形”→“波形生成”選項,在“波形生成”子面板中選擇“仿真信號”并放置到程序框圖上,使用默認設置,用于產生一個正弦信號,輸出端與“信號產生波形顯示”連接。在“函數”面板上單擊“選擇VI”,在打開的對話框中選擇第一步中創建的“波形全局變量”,將其與“仿真信號”的輸出端相連。在“仿真信號”的頻率輸入端口創建一個“輸入控件”。創建一個While循環將所有程序框圖上的對象框到其中,設置時間間隔為100ms,程序框圖如圖所示。
步驟三:創建信號顯示VI。創建一個VI,命名為“信號顯示”。在前面板中放置一個“波形圖”控件,命名為“變量傳遞后波形顯示”。切換到程序框圖,從“編程”下的“波形”子面板中選擇“創建波形”并添加到框圖上,拉伸后,使用鼠標右鍵單擊各個端口,在彈出的快捷菜單中的“選擇項”分別選擇“Y”、“t0”、“dt”。在“函數”面板上單擊“選擇VI”,在打開的對話框中選擇第一步中創建的“波形全局變量”,單擊鼠標右鍵選擇“轉換為讀取”,與“創建波形”對象的“Y”相連。在“t0”端口創建一個時間常量,在“dt”端口創建一個常量“0.001”。創建一個While循環將所有程序框圖上的對象框到其中,設置時間間隔為100ms,程序框圖如圖所示。
步驟四:運行“信號產生”和“信號顯示”兩個VI,結果如圖所示,改變不同的信號頻率,比較顯示結果是完全一致的。
總結
- 上一篇: cfd软件matlab,【流体】| 10
- 下一篇: 网站扫码登录时怎么一回事?