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