新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > labview的深入探索------什么是“節點“

        labview的深入探索------什么是“節點“

        作者: 時間:2017-01-09 來源:網絡 收藏
        即便是用了LV多年,有些基本概念還是非常模糊的,比如"節點"和"函數"(NODE AND FUNCTION),我們稱LV本身提供的函數為節點,或者節點函數,那自己做的子VI被調用時算不算節點,它內部包含的下一級別的子VI是不是節點那?控件是不是節點?裝飾是不是節點?程序的結構比如順序結構、循環結構是否是節點那?

        LV經常用節點的數量來統計VI的性能,所以了解節點的真正含義是非常有必要的。

        首先看看幫助文件對節點的定義:

        節點是程序框圖上的對象,帶有輸入輸出端,在VI運行時進行運算。節點類似于文本編程語言中的語句、運算符、函數和子程序。LabVIEW有以下類型的節點:

        本文引用地址:http://www.104case.com/article/201701/337237.htm
        • 函數-內置的執行元素,相當于操作符、函數或語句。
        • 子VI-用于另一個VI程序框圖上的VI,相當于子程序。
        • Express VI-協助常規測量任務的子VI。Express VI是在配置對話框中配置的。
        • 結構-執行控制元素,如For循環、While循環、條件結構、平鋪式和層疊式順序結構、定時結構和事件結構。
        • 公式節點和表達式節點-公式節點是可以直接向程序框圖輸入方程的結構,其大小可以調節。表達式節點是用于計算含有單變量表達式或方程的結構。
        • 屬性節點和調用節點-屬性節點是用于設置或尋找類的屬性的結構。調用節點是設置對象執行方式的結構。
        • 通過引用節點調用-用于調用動態加載的VI的結構。
        • 調用庫函數節點-調用大多數標準庫或DLL的結構。
        • 代碼接口節點(CIN)-調用以文本編程語言所編寫的代碼的結構。


        這里函數的概念本身就不好理解,內置的執行元素,加減運算符號算一個節點,一個文件操作函數內部包含大量的子函數或者子VI,也是一個節點?
        我們自己制作的VI稱作子VI,它可以理解成函數嗎?從分類上看顯然不是,那它到底有那些不同那?




        顯然,兩個輸入控件+一個顯示控件+運算符號共四個節點,前面板的裝飾當然也是控件,因為我們可以得到它的參考,進而控制它的屬性,從分類上看,它也是繼承于最基本的圖形對象的,所以裝飾是控件,但不是輸入控件,也不是輸出控件,換個角度看,它沒有數據的流入或者流出,因此,裝飾不屬于節點.


        從上圖可以看出,常量,結構,屬性節點都屬于節點,一個屬性節點可以同時控制多個屬性,它仍然只算是一個節點,所以通過一個屬性節點控制可以減少節點數量,全局變量和局部變量也都屬于節點,因為它都涉及了數據的流入或者流出.

        我們感興趣的是自己做的子VI和內置函數有何不同之處



        上圖中,頂層VI有三個節點,但是EXPRESS VI內部包括53個節點,自己做的SUBVI內部包含8個節點,而WRITE SPREAD SHEET盡管內部包含大量操作,我們可以打開跟蹤,但是它只是一個節點,從這里可以看出,經管EXPRESS VI使用非常方便,但是LV沒有把EXPRESS VI稱為函數,而寫文本文件VI盡管內部非常復雜,但是仍然是一個節點.

        所以使用LV內置的函數可以提高程序運行效率,而EXPRESS VI盡管使用方便,但是效率很低.


        上圖表明,我的計算二次函數VI,的確內部包含8個節點,那么如果我多次調用它,情況會如何那?


        二次函數本身8個節點沒有變化,每多調用一次,節點增加一個,6+8=14個節點.
        對于經常使用的操作,如果作成子VI,可以有效地減少節點數量,提高運行效率.

        為什么LV內置的函數只是一個節點那,而我們自己做的子VI卻包含內部使用的節點那?

        猜測LV啟動后,很多內置的函數已經調入內存了,因此我們使用它不過是增加了一個節點,而我們自己做的SUBVI則不同,它是添加在程序框圖中被調入內存的,所以節點數量應該包括它內部使用的節點.


        關鍵詞: labview節

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 浏阳市| 大冶市| 武汉市| 彰化县| 洪江市| 吕梁市| 大竹县| 平凉市| 湖口县| 泽库县| 汾阳市| 包头市| 绍兴县| 南溪县| 蕲春县| 胶南市| 辽阳市| 锡林浩特市| 南昌市| 合肥市| 和田县| 万盛区| 祁门县| 临夏市| 当涂县| 崇文区| 夏邑县| 迁安市| 蒙山县| 东丽区| 宜都市| 礼泉县| 榆树市| 博爱县| 丘北县| 山阳县| 雷山县| 白水县| 富源县| 西安市| 化州市|