From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Python、MathWorks MATLAB®ソフトウェア、C/C++をLabVIEW組み合わせ使用する

概要

LabVIEWは他のプログラミング言語と接続することができます。この接続機能は、テストシステムを構築するエンジニアにとって魅力的な機能です。Python、MathWorks MATLAB Software、C/C++、.NETなどの言語を、LabVIEWのグラフィカルデータフローに統合することで、各言語の長所が組み合わされ、短時間で柔軟なテストシステムを構築することが可能になります。

 

このホワイトペーパーでは、4つの一般的なプログラミング言語のコードをLabVIEWに統合する方法を紹介しています。この柔軟性を活かして作業に適したツールを選び、短い時間で優れた成果を上げましょう。

内容

LabVIEWからPythonスクリプト呼び出す

Pythonはこの数年間で広く普及し、幅広い用途に対応する数十万のライブラリが提供されています。LabVIEWにPythonが組み込まれたことで、Pythonの柔軟なスクリプティング機能がLabVIEWのシステム設計ツール群に導入されます。

LabVIEWでは、Pythonノードを使用して、LabVIEWブロックダイアグラムからPythonスクリプトを呼び出すネイティブ機能を利用できます。この機能により、異なる言語間の相互運用を低レイテンシで実行できるようになります。

図1:  PythonノードでPythonスクリプトを呼び出し、LabVIEWに統合

Pythonノードでは、関数呼び出しに使用するバージョンとPythonのパスを指定できます。これにより、カスタムディレクトリにインストールされたPythonにアクセスできます。この機能は、複数のPythonノードを使用して、カスタムディレクトリに保存されている異なるバージョンか実行可能ファイルの複数のセッションを開くことができることを意味します。

LabVIEW 2022 Q3では、Pythonクラスオブジェクトをパラメータとして渡すことができます。Pythonノードのrefnum出力はPythonクラスオブジェクトを表しており、これを入力として別のPythonノードに渡してクラスオブジェクトの動作に適用できます。

.

図2:  LabVIEW 2022では、Pythonクラスオブジェクトをパラメータとして渡すことが可能

LabVIEW 2023 Q1には、AnacondaおよびVenvでPython仮想環境を呼び出す新しい機能が追加されています。

NIでは、PythonとLabVIEWの相互運用性を改善するための投資を継続的に行っており、2023年以降もアップデートを予定しています。LabVIEWの新機能と今後の予定について、LabVIEWの概要ページでご確認ください。

LabVIEWMathWorks MATLABソフトウェア連携

数値解析、信号処理、高度な数式処理で一般的に利用されるプログラミング手法を使用して、MATLABで開発された.mファイルを呼び出すことができます。MATLABの解析機能で、MATLABノードを使用してVI内にある.mファイルをGと組み合わせることで、テストシステムと測定システムを統合できます。


図3:   MATLABノードからMATLAB関数を呼び出す機能を使用して.mファイルを呼び出し、LabVIEWに統合

また、LabVIEWで特定のMATLABバージョンを選択して実行することが可能になりました。

図4:  MATLABノードを使用して、特定のMATLABバージョンを選択して実行

LabVIEW 2022 Q3以降では、新しいデバッグ機能が利用できます。MATLABエディタでブレークポイントを追加できるというメリットを活かして、LabVIEWから.mファイルに対してシングルステップでコードをデバッグしたり、外出先でもLabVIEWからMATLAB IDEを起動して.mファイルを編集したりできます。


図5:  LabVIEWのデバッグツールを使用して.mファイルにステップインし、LabVIEWからデバッグを実施

LabVIEWC/C++ DLL呼び出す

LabVIEWでは、既存のコードを再利用するためにダイナミックリンクライブラリ (DLL) や共有ライブラリを呼び出すことができます。

たとえば、既存のC/C++共有ライブラリをLabVIEWで再利用する必要がある場合、ライブラリ関数呼び出しノードを使用して呼び出すことができます。外部ライブラリを簡単にインポートできるよう、LabVIEWには共有ライブラリをインポートウィザードも用意されています。このウィザードを実行すると、LabVIEWラッパーVIプロジェクトライブラリが自動的に作成または更新され、LabVIEWブロックダイアグラムに組み込むことができます。

図6:ライブラリ関数呼び出しノードを使用し、既存のCまたはC++共有ライブラリをGプログラミングにインラインで再利用

LabVIEWで.NETアセンブリ呼び出す

LabVIEWで既存のコードを再利用するもう1つの方法は、.NETアセンブリを呼び出すことです。

.NETアセンブリにアクセスするには、コンストラクタノードを使用します。コンストラクタノードをブロックダイアグラムに配置すると、ダイアログウィンドウが表示され、適切な.NETアセンブリを選択することができます。LabVIEWではすべてのメソッドとプロパティが自動的に認識され、それがメソッドノードとプロパティノードに表示されます。

図7:.NETコンストラクタノード関数を使用して.NETアセンブリへのリファレンスを作成し、そのリファレンスをプロパティ関数やインボークノード関数に渡して、それらの関数が操作対象のアセンブリを認識できるようにする

LabVIEWでロードできるのは、NET CLR 4.0以前をターゲットにした.NETアセンブリです。しかし、LabVIEWはすべてのアセンブリを.NET CLR 4.0でロードします。

まとめ

ここでは、LabVIEWから一般的な言語に接続する4つの方法を紹介し、その柔軟性と相互運用性について説明しました。こうした接続を活用することで、それぞれのツールのメリットをスムーズに組み合わせて、柔軟なテストシステムをよりスピーティに構築できます。

ステップ