LabVIEW按照數(shù)據(jù)流的模式運行VI。程序框圖上的節(jié)點只有在接收到所有必要輸入端的數(shù)據(jù)后才開始執(zhí)行。節(jié)點執(zhí)行后產(chǎn)生輸出端數(shù)據(jù),并將該數(shù)據(jù)傳遞給數(shù)據(jù)流路徑中的下一個節(jié)點。數(shù)據(jù)流在節(jié)點中流動的過程決定了程序框圖上VI和函數(shù)的執(zhí)行順序。
Visual Basic、C++、Java以及絕大多數(shù)其他文本編程語言都遵循程序執(zhí)行的控制流模式。控制流中,元素在程序中的先后順序定了執(zhí)行的順序。
圖1是一個數(shù)據(jù)流編程示例,程序框圖中兩個數(shù)字相加,然后從結(jié)果中減去50.00。該示例中,程序框圖從左向右執(zhí)行,這并非因為對象的放置順序如此,而是因為“減”函數(shù)必須在“加”函數(shù)執(zhí)行完并將數(shù)據(jù)傳到“減”函數(shù)后才能執(zhí)行。請記住僅當(dāng)節(jié)點的全部輸入端上的數(shù)據(jù)都準(zhǔn)備就緒,節(jié)點才能開始執(zhí)行。僅當(dāng)節(jié)點執(zhí)行結(jié)束后,才能將數(shù)據(jù)傳遞至輸出接線端。
圖1. 數(shù)據(jù)流編程示例
在圖2中,請思考哪一部分代碼將優(yōu)先執(zhí)行:加、隨機數(shù)還是除函數(shù)?答案是不知道,因為“加”和“除”函數(shù)同時有數(shù)據(jù)輸入,而“隨機數(shù)”不用數(shù)據(jù)輸入。如一段代碼必須在另一段代碼前執(zhí)行,而兩個函數(shù)間不存在數(shù)據(jù)依賴關(guān)系,可采用其他編程方法(例如順序結(jié)構(gòu)或錯誤簇)強制設(shè)定執(zhí)行的順序。
圖2. 多段代碼的數(shù)據(jù)流示例
連線返回頁首通過連線可以在程序框圖對象之間傳輸數(shù)據(jù)。在圖1和2中,輸入控件和顯示控件接線端通過連線連接至“加”和“減”函數(shù)。每根連線都只有一個數(shù)據(jù)源,但可以與多個讀取該數(shù)據(jù)的VI和函數(shù)連接。數(shù)據(jù)類型不同,連線的顏色、粗細和式樣也不同。
斷線顯示為中間帶有紅色X的黑色虛線,如上圖所示。產(chǎn)生斷線的原因有很多,例如將數(shù)據(jù)類型不兼容的兩個對象相連。
表1列出了最常見的連線類型。
表1. 常見的連線類型
LabVIEW中,連線連接VI中的多個接線端來傳遞數(shù)據(jù)。連線連接的輸入端和輸出端數(shù)據(jù)必須兼容。例如,不能將數(shù)組輸出端連接到數(shù)值輸入端。另外,連線的方向也必須正確。連線必須僅有一個輸入和至少一個輸出。舉例來說,兩個顯示控件之間不能連線。決定連線兼容性的因素包括輸入/顯示控件的數(shù)據(jù)類型和接線端的數(shù)據(jù)類型。例如,一個綠色邊框的開關(guān)可與Express VI上任意帶綠色標(biāo)簽的輸入端相連;一個橙色邊框的旋鈕可與任意帶橙色標(biāo)簽的輸入端相連。但是,一個橙色旋鈕不能與帶綠色標(biāo)簽的輸入端相連。連線的顏色與接線端的顏色相同。
自動連接對象
在程序框圖上,如將一個對象移至另一對象近旁,LabVIEW將顯示臨時連線,提示兩者間有效的連線方式。放開鼠標(biāo)將對象放置在程序框圖上后,LabVIEW將自動連接兩個對象。此外,用戶還可對程序框圖上已存在的對象執(zhí)行自動連線。LabVIEW將對最匹配的接線端進行連線,對不匹配的接線端不予連線。
從函數(shù)模板選擇一個對象,或通過按住鍵并拖動對象的方式來復(fù)制程序框圖上的某個對象時,自動連線方式將默認(rèn)啟用。用定位工具移動程序框圖上已存在的對象時,自動連線默認(rèn)為禁用。
通過選擇工具?選項,然后從類別列表中選擇程序框圖,可調(diào)整自動連線設(shè)置。
手動連接對象
連線工具移至接線端時,將出現(xiàn)一個帶接線端名稱的提示框。此外,即時幫助窗口和圖標(biāo)上的接線端將閃爍,幫助您確認(rèn)正確的接線端。如要連接兩個對象,首先將連線工具移至第一個接線端并單擊,然后將光標(biāo)移至第二個接線端并再次單擊即可完成。連好后右鍵單擊連線,從快捷菜單中選擇整理連線,LabVIEW將自動整理連線路徑。如要清除斷線,請按刪除程序框圖中的所有斷線。
(轉(zhuǎn)載)