結合 LabVIEW 使用 Python、MathWorks® MATLAB® 軟體與 C/C++ 語言

綜覽

LabVIEW 可連接其他的程式設計語言,這對測試系統建置工程師而言是非常實用的功能。 Python、MathWorks MATLAB 軟體、C/C++ 與 .NET 等語言整合至 LabVIEW 的圖形化資料流之後,即可整合各種語言的優點,並能以更短的時間建立彈性的測試系統。

 

在本技術文章中,您將了解如何將四大程式設計技術的程式碼與 LabVIEW 整合,並可運用這樣的靈活性,為作業挑選合適的工具,並加速邁向成功。

內容

從 LabVIEW 呼叫 Python 指令碼

過去數年來,Python 不僅越來越普遍,更擴展到擁有數十萬種函式庫,可用於各式各樣的應用領域。將 Python 整合到 LabVIEW 後,您就可同時擁有 Python 的靈活指令碼功能,以及 LabVIEW 的系統設計工具。

透過 Python Node,LabVIEW 即具有可從 LabVIEW 程式方塊圖呼叫 Python 指令碼的原生功能。這項功能可讓不同的語言互通,從而降低潛時。

圖 1: 透過 Python 節點呼叫 Python 指令碼,將指令碼整合至 LabVIEW。

於 Python 節點中,使用者可指定呼叫函式時要使用的版本與 Python 路徑,進而存取安裝於客制化目錄中的 Python。此項功能意味著您可使用多個 Python 節點來開啟多個不同版本的工作階段,或儲存於客制化目錄中的可執行檔。

LabVIEW 2022 Q3 新增了對傳遞 Python 類別物件作為參數的支援。Python 節點上的參考數字輸出即代表 Python 類別物件,您可將此做為傳遞至另一個 Python 節點的輸入項目,藉此執行該類別物件。

.

圖 2: LabVIEW 2022 支援將 Python 類別物件當做參數傳輸的功能。

LabVIEW 2023 Q1 新增了新函式,可透過 Anaconda 與 Venv 呼叫 Python 虛擬環境。

NI 不斷投注心力提升 Python 與 LabVIEW 的互通性,並計劃在 2023 年以及之後持續推出更新。如需深入了解 LabVIEW 的最新資訊,以及我們的後續計畫,歡迎參閱 LabVIEW 概述頁面。

整合 LabVIEW 與 MathWorks MATLAB 軟體

適用於數字分析、訊號處理以及進階數學的常見程式設計方法,可用於呼叫使用 MATLAB 開發的 .m 檔案。MATLAB 的分析功能可使用 MATLAB Node,以 G 語言將這些檔案整合至 VI 中,藉此整合您的測試與量測系統。


圖 3:  透過 MATLAB Node 的 Call MATLAB 函式呼叫 .m 檔案,將這些檔案整合至 LabVIEW。

此外,LabVIEW 現在還能讓使用者選擇特定的 MATLAB 執行版本。

圖 4: 透過 MATLAB Node 選擇特定的 MATLAB 執行版本。

我們自 LabVIEW 2022 Q3 開始提供新的除錯功能。您可以在 MATLAB 編輯器新增暫停點、透過從 LabVIEW 單步執行到您的 .m 檔案中來除錯程式碼,並且從 LabVIEW 啟動 MATLAB IDE 即可隨時隨地編輯您的 .m 檔案。


圖 5: 使用 LabVIEW 的除錯工具開啟 .m 檔案,並透過 LabVIEW 進行除錯。

在 LabVIEW 中呼叫 C/C++ DLL

使用 LabVIEW,即可透過呼叫動態連結函式庫 (DLL) 或共用函式庫,重複使用現有程式碼。

舉例來說,如果需要在 LabVIEW 中重複使用現有的 C/C++ 共用函式庫,就可以使用 Call Library Function Node 加以呼叫。為了簡化匯入外部函式庫的作業,LabVIEW 也包含了匯入共用函式庫精靈。這個精靈能自動建立或更新 LabVIEW 封套 VI 專案函式庫,以便整合到您的 LabVIEW 程式方塊圖中。

圖 6:透過 Call Library Function Node 搭配 G 程式設計方法,即可重複使用現有的 C 或 C++ 共用函式庫。

在 LabVIEW 中呼叫 .NET 組件

透過 LabVIEW 重複使用現有程式碼的另一種方式,就是呼叫 .NET 組件。

如要存取 .NET 組件,請使用 Constructor Node。將該其放在程式方塊圖後,即可顯示對話視窗,讓使用者選擇適合的 .NET 組件。LabVIEW 會自動辨識所有方式與屬性,並透過 Method Node 與 Property Node 加以顯示。

圖 7:使用 .NET Constructor Node 函式建立 .NET 組件參考。接著,將參考傳遞至 Property 或 Invoke Node 函式,讓函式了解目前正在哪個組件上執行。

LabVIEW 可以載入適用於 .NET CLR 4.0 或較早版本的 .NET 組件。不過,LabVIEW 會載入 .NET CLR 4.0 中的所有組件。

結論

本文說明了使用 LabVIEW 連接熱門語言的四個方法,以突顯其靈活性與互通性。此一連線能力可協助您順暢結合各項工具的特長,進而加速打造靈活的測試系統。

後續步驟