談到動態呼叫,在NI LabVIEW中有兩個比較常見的方法,一個是利用”Call by Reference”另外一個是”Invoked Node”,這篇主要探討這兩者之間的差異,和其應用面。

兩種程式不同:

  1. 架構靈活性

”Call by Reference”,必須定義VI的型態(Refnum),也就是VI的輸入輸出必須和定義的相同,如下圖表示。

Call By Reference

“Call By Invoke Node”,只須給呼叫VI的路徑,不須定義VI的型態,這相較於Call by Reference的方法,更能發展出彈性的架構和應用

  1. 資料傳遞方法

"Call by Reference”,定義了輸入輸出的型態,所以在資料傳遞上面,就較為簡單,只需把定義的接角輸出即可以得到資料。

"Call By Invoke Node”,沒有直接可以做輸入輸出的方法,需要另外透過程式方法做到資料傳遞,通常是搭配其他的Invoke Node來做到。

  1. 程式互動性

"Call by Reference”,程式互動性較低,在程式運轉中,必須等到整個程式完全結束後才會繼續資料流,移動到下個程式程序。

"Call By Invoke Node”,可以透過” Call asynchronously the target VI”的方法,讓程式運作中繼續完成其他動作,這在不同VI間呼叫時特別能感受到其不同。

最後補上兩個差異表:

 

輸入輸出需定義

接角資料輸入輸出

程式互動性

Call By Reference

VI (VI Refnum)

X

V(Asynchronously)

Call By Invoke Node

X

V

X

 

其他和動態呼叫相關文章連結:

LabVIEW_同步動態呼叫Asynchronously Calling VIs

LabVIEW_動態呼叫程式寫法Calling by Reference

不同動態呼叫VI的方法:Invoke Node V.S. Call by Reference

 

如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

 

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

arrow
arrow

    安伯伯 發表在 痞客邦 留言(1) 人氣()