以程式化方式在Real-Time控制器上啟動執行檔或VI

更新 Nov 13, 2023

環境

軟體

  • LabVIEW Real-Time Module

我在我的Real-Time target (RT target)上部署了VI或執行檔。如何以程式化方式使用VI Server去啟動它?

LabVIEW 2009及更高版本:

從LabVIEW Real-Time 2009開始,startup.rtexe只能作為啟動執行檔(startup executable)運行。這是因為startup.rtexe現在是一個在啟動時解壓縮的LLB的壓縮檔(.zip)。考慮到其大小限制,此行為已更改。

為了以程式化方式在RT target上啟動VI,您必須將專案轉換為Source Distribution並將Source Distribution部署到RT target。

創建Source Distribution的步驟:
1.在包含目標VI的專案中,右鍵點擊Build Specifications並選擇New»Source Distribution

2.在Source Files類別中,選擇VI並按向右箭頭將其移動到Always Included區域中。
3.在Destination類別中,通過修改Destination Path指定要放置VI的位置。
4.點擊Build 。
5. 右鍵點擊source distribution,然後選擇Deploy 。 (在2009版,這並非一個可點擊的選項,您需要手動將VI所需的文件以FTP的方式傳送到RT target)


請繼續按照以下LabVIEW 8.6.1及之前的版本步驟進行操作,以在RT target上啟動VI的source distribution。在步驟2中,請確保指向source distribution最上層的VI(top level VI)。


LabVIEW 8.6.1及之前版本:
下列為從主機端(host computer)透過VI Server在RT控制器上啟動已嵌入的執行檔的基本步驟:

1.在block diagram上放置一個Open Application Reference函式,並將RT Controller的名稱或IP位址連接到Machine Name輸入端點。

2.在block diagram上放置一個Open VI Reference函式。使用它打開對執行檔中最上層VI的reference。對於名為RT Engine.vi的最上層VI,為預設執行檔位置打開的路徑為C:\ ni-rt \ startup \ RT Engine.vi

3.使用Invoke Node或Call By Reference Node執行遠端VI。要創建Invoke Node,請右鍵點擊Open VI Reference的VI Reference輸出,然後點擊Create»Method for VI Class»Run VI。

4.當您不再需要VI在RT target上執行時,請關閉VI reference,然後關閉LabVIEW應用程式參考(application reference)。請注意,動態調用的VI只能當reference保持開啟狀態時在RT target上運行,關閉reference將停止RT target上的VI。

注意,在某些情況下,使用路徑資料類型不能提供足夠的位置資訊來打開VI reference,並將回傳Error -1445。如果發生這種情況,請將包含VI名稱的字串常數連接到Open VI Reference函數的vi path輸入端點。以此範例來說,包含最高層VI名稱RT Engine.vi的字串常數將被用來當作輸入。

Additional Information

使用VI Server功能時,務必確保正確設置VI Server安全權限,否則可能會發生錯誤。打開RT控制器的屬性,然後選擇視窗左側的VI Server部分。確保已選擇TCP / IP 。請注意,預設埠為3363。


對於使用來自函式庫(DAQmx,VISA等)的VI的source distribution,請確保這些函式庫包含在發行(distribution)中(否則VI不會執行)。要完成此設定,請打開發行屬性視窗(distribution property window),並在Additional Exclusions選項卡中取消勾選選項,如下圖所示。當執行檔執行時,函式庫中的所有VI都將在Real-Time控制器上皆可被呼叫使用。