本篇要來介紹子程式載入與呼叫的方式,分別有分為靜態與動態,說明如下:
靜態裝載(static load):只要程式碼一開啟,即裝載進記憶體(不一定是程式執行的狀態下,編譯程式的狀態也會)
動態裝載(dynamic load):程式執行時,才裝載進記憶體
靜態呼叫(static call):呼叫的SubVI路徑只能於程式編譯時,做設定
動態呼叫(dynamic call):呼叫的SubVI路徑可以於程式執行的時候再設定
1.靜態裝載&靜態呼叫:
Load with callers:當caller VI load後也一併load subVI(不用等到程式執行時)
2.動態裝載&靜態呼叫:
2.1 Reload for each call:
當caller VI 運行並每次呼叫 SubVI時都會重新load。(實際上是如果subVI沒有在記憶體內就會reload。故此選項也不保證運行完後SubVI會保留在記憶體內)2.2 Load and retain on first call:
當caller VI運行時第一次呼叫SubVI時,subVI才會Load,並存在記憶體內。3.動態裝載&動態呼叫:
3.1 藉由invoke node 呼叫(call by vi method):
此種方法可以建立不影響主程式運行流程的背景程式,但有個缺點就是要輸入跟輸出SubVI的資料很麻煩!!!
3.2 藉由reference呼叫(call by ref):
無法建立背景程式,主程式中如果透過該方式呼叫SubVI,則一定執行完SubVI的程式後,才可以繼續執行主程式。
LabVIEW2011之後的版本,新增了
沒有留言 :
張貼留言