動態呼叫方法通常有兩種: 一個是利用”Call by Reference”另外一個是”Invoked Node”這篇主要探討這兩者之間的差異,和其應用面。可以參考另外一篇不同動態呼叫VI的方法:Invoke Node V.S. Call by Reference。
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
首先,需要先解釋什麼是"動態呼叫",當LabVIEW中如果主程式呼叫其他的副程式(SubVI)時,會使用兩種方法,一種是"靜態呼叫"、另外一種為"動態呼叫",這兩種的差異主要是運行主程式時有沒有載入副程式到記憶體裡。
- 靜態的 subVI 是主程式在開始運行時,就會載入(load) SubVI,而且直到主程式結束,都不會釋放副程式的記憶體;換而言之,即使這一個 subVI 只會執行一次,但是 SubVI 也會一直佔用記憶體空間,直到主程式結束為止。
- 動態呼叫,就是當程式執行到 SubVI 之前,電腦的記憶體都不會載入 subVI 程式,等到執行到需要的SubVI 時,程式才會載入此SubVI,這樣可以大大節省記憶體的使用。
使用方法:
Programming->Application Control -> Open VI Reference。
在接角type specifier VI Refnum(for type only)創建一個Control
利用Front Panel->Select VI Server Class-->Browse選擇需要的型態
在Block Diagram中加入”Call By Reference”、”Close Reference”。
將Block Diagram接角串起來,並將VI 名稱建置。
這樣即完成一個簡單的Call by Reference 的程式。
其他和動態呼叫相關文章連結:
LabVIEW_同步動態呼叫Asynchronously Calling VIs
LabVIEW_動態呼叫程式寫法Calling by Reference
不同動態呼叫VI的方法:Invoke Node V.S. Call by Reference
如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~
學習相關LabVIEW文章:
程式分享相關LabVIEW文章:
考取LabVIEW證照相關:
留言列表