最近研究Lab view的時候發(fā)現(xiàn)移位寄存器和隧道的功能非常相似但是又有區(qū)別 外部數(shù)據(jù)進入循環(huán)體是通過隧道進入的?有幾種方式?
圖1?For 循環(huán)結(jié)構(gòu)上的隧道 圖 1 所示的 For 循環(huán)結(jié)構(gòu)演示了三種隧道結(jié)構(gòu)?就是在 For 循環(huán)結(jié)構(gòu)左右邊框上用于數(shù)據(jù)輸入輸出的節(jié)點。這三種隧道從上至下分別是?索引隧道、移位寄存器?shift register?、一般隧道。
一般隧道就是把數(shù)據(jù)傳入傳出循環(huán)結(jié)構(gòu)。數(shù)據(jù)的類型和值在傳入傳出循環(huán)結(jié)構(gòu)前后不發(fā)生變化。 索引隧道是 Lab VIEW 的一種獨特功能。一個循環(huán)外的數(shù)組通過索引隧道連接到循環(huán)結(jié)構(gòu)上?隧道在循環(huán)內(nèi)一側(cè)會自動取出數(shù)組的元素?依順序每次循環(huán)取出一個元素。用索引隧道傳出數(shù)據(jù)?可以自動把循環(huán)內(nèi)的數(shù)據(jù)組織成數(shù)組。 通過移位寄存器傳入傳出數(shù)據(jù)?也是數(shù)據(jù)的類型和值都不會發(fā)生變化。移位寄存器的特殊之處在于在循環(huán)結(jié)構(gòu)兩端的接線端是強制使用同一內(nèi)存的。因此?上一次迭代執(zhí)行產(chǎn)生的某一值?傳給移位寄存。當隧道里面有個小括弧時,自動索引就被打開了,F(xiàn)or循環(huán)中默認連線隧道就是啟動自動索引的。當你把一個數(shù)組輸入終端連線到For循環(huán)中并且開啟自動索引功能,LabVIEW會自動設(shè)定For循環(huán)的次數(shù)和數(shù)組長度一致而無需手工設(shè)定。默認狀態(tài)下LabVIEW在For循環(huán)中開啟自動索引功能,程序便可以在循環(huán)中每次處理一個數(shù)組中對應(yīng)的元素。如果循環(huán)中不需要每次處理一個元素可以關(guān)閉自動索引功能。同樣的,如果在數(shù)組輸出隧道中開啟自動索引功能,輸出數(shù)組每次會接受到一個循環(huán)中輸出的數(shù)組元素。因此自動索引的輸出數(shù)組的長度和循環(huán)次數(shù)總是一致的。要開啟或者關(guān)閉自動索引,右擊隧道進行選擇。
當數(shù)據(jù)連線到While循環(huán)中,自動索引功能默認被關(guān)閉,隧道標志是實心的。如果在While循環(huán)中開啟自動索引,和For循環(huán)一樣While循環(huán)每次索引數(shù)組中的一個元素,不同的是While循環(huán)的總次數(shù)卻和數(shù)組的長度不一致,因為While循環(huán)需要一個循環(huán)停止條件來控制循環(huán)。同樣的當你把一個輸出數(shù)組進行自動索引時,輸出數(shù)組每次接收到循環(huán)迭代中的一個對應(yīng)數(shù)組元素。