LABVIEW中的條件結(jié)構(gòu)
Conditional Disabled Structure 類似 C 語言中的條件宏定義語句。
本文引用地址:http://www.ex-cimer.com/article/201701/336573.htm
一. 程序框圖禁用結(jié)構(gòu)(Diagram Disable Structure)
在調(diào)試程序時(shí)常常會(huì)用到程序框圖禁用結(jié)構(gòu)。程序框圖禁用結(jié)構(gòu)中只有 Enabled 的一頁會(huì)在運(yùn)行時(shí)執(zhí)
行,而 Disabled 頁是被禁用、即不會(huì)執(zhí)行的;并且在運(yùn)行時(shí),Disable 頁面里的 SubVI 不會(huì)被調(diào)入內(nèi)存。
所以,被禁用的頁面如果有語法錯(cuò)誤也不會(huì)影響整個(gè)程序的運(yùn)行。這是一般選擇結(jié)構(gòu)(Case Structure)無
法做到的。
圖1、2:使用程序框圖禁構(gòu)
例如圖 1、2 中的示例,如果我們?cè)谶\(yùn)行程序的時(shí)候暫時(shí)不希望將 test 寫入到文件里,但又覺得有可
能以后會(huì)用到。此時(shí),就可以使用程序框圖禁用結(jié)構(gòu)把不需要得程序禁用掉。需要注意的是程序框圖禁用
結(jié)構(gòu)可以有多個(gè)被禁用的框架,但必須有且只能有一個(gè)被使用的框架。在被使用的框架中,一定要實(shí)現(xiàn)正
確的邏輯,比如上圖的例子中,在被使用的框架中一定要有連線把前后的文件句柄和錯(cuò)誤處理聯(lián)接好。
二. 條件禁用結(jié)構(gòu)(Conditional Disabled Structure)
條件禁用結(jié)構(gòu)則根據(jù)用戶設(shè)定的符號(hào)(symbol)的值來決定執(zhí)行哪一頁面上的程序。其他方面與程序
框圖例如圖 1、2 中的示例,如果我們?cè)谶\(yùn)行程序的時(shí)候暫時(shí)不希望將 test 寫入到文件里,但又覺得有可
能以后會(huì)用到。此時(shí),就可以使用程序框圖禁用結(jié)構(gòu)把不需要得程序禁用掉。需要注意的是程序框圖禁用
結(jié)構(gòu)可以有多個(gè)被禁用的框架,但必須有且只能有一個(gè)被使用的框架。在被使用的框架中,一定要實(shí)現(xiàn)正
確的邏輯,比如上圖的例子中,在被使用的框架中一定要有連線把前后的文件句柄和錯(cuò)誤處理聯(lián)接好。
二. 條件禁用結(jié)構(gòu)(Conditional Disabled Structure)
條件禁用結(jié)構(gòu)則根據(jù)用戶設(shè)定的符號(hào)(symbol)的值來決定執(zhí)行哪一頁面上的程序。其他方面與程序
框圖禁用結(jié)構(gòu)相同。
程序中所使用的符號(hào),可以在項(xiàng)目或是運(yùn)行目標(biāo)機(jī)器(例如“My Computer”)的屬性里設(shè)置。
值得注意的是:程序框圖禁用結(jié)構(gòu)與條件禁用結(jié)構(gòu)都是靜態(tài)的,如果需要在運(yùn)行時(shí)決定執(zhí)行哪一部分
的程序可以使用選擇結(jié)構(gòu)。
程序框圖禁用結(jié)構(gòu)和條件禁用結(jié)構(gòu)的一種實(shí)用案例可以參考:《其它常用調(diào)試工具和方法》
三. 選擇結(jié)構(gòu)(Case Structure)
在一般情況下,選擇結(jié)構(gòu)類似于 C 語言的 switch 語句。當(dāng)輸入為 bool 數(shù)據(jù)類型或 error 數(shù)據(jù)類型
時(shí),選擇結(jié)構(gòu)類似于 C 語言中的 if 語句。
圖4:枚舉類型的 Case Selector
有輸出時(shí),則每一個(gè)框架中都必須連一個(gè)數(shù)據(jù),當(dāng)然也可以選擇“Use Default If Unwired”。選擇“Use
Default If Unwired”會(huì)有一定的風(fēng)險(xiǎn),因?yàn)槟憧赡軙?huì)忘記了連線,這時(shí)候 LabVIEW 并不會(huì)提醒你,程序就
可能得到不可預(yù)料的結(jié)果。
如圖5所示,鼠標(biāo)右擊數(shù)據(jù)輸出隧道,可以選擇是否使用“Use Default If Unwired”
評(píng)論