LANで接続されたPCのLabVIEWからgRPCを介してPXIシステムの計測器を使用する方法

更新しました Aug 8, 2024

環境

ハードウェア

  • PXIe-4137

ソフトウェア

  • LabVIEW

ドライバ

  • NI-DCPower

従来の方法ではWindows OSのPXIシステムの計測器を使用するには各PXIコントローラのWindows OS上でプログラムを実行する必要がありました。この方法の場合、各PXIシステム ごとにソフトウェアの開発、管理、メンテナンスが必要となり、また計測モジュールについても各PXIシステムごとに使用する必要がありました。

LabVIEW 2024ではこの問題に対応する為、gRPC を使用し、LANで接続されたPXIシステム上の計測モジュールを別のクライアントPCのLabVIEWから使用できるようになりました。(gRPCによりリモート制御できるモジュール、関数、機能には制約があります。)

gRPC overview.png

ここではPXIシステム(PXIe-8840, Windows 10, IP = 10.128.1.34)のPXIe-4137 (SMU)を使用して、クライアントPC(Widnows 10, IP = 10.128.10.33)のLabVIEWの電圧スイープのサンプルVIを実行する方法について確認します。ここではPXIシステムがgRPCサーバ、クライアントPCがgPRCクライアントとなります。PXIシステムは有線LAN接続、クライアントPCは無線LAN接続されており、両者はIPで通信可能な状態となっています。ソフトウェア及びバージョンについて、ここではNI gRPC Device Server 2.6.0, LV 2024 Q1, DCPower 2024Q1, Python 3.10.11を使用します。

サーバ側の設定 (PXIシステム)

ここではPXIe-8840 (Windows 10, IP = 10.128.1.34)に搭載されているPXIe-4137を同じネットワーク下のクライアントPCから使用可能な状態とします。必要な設定は下記の2点です。
  • NI MAXでPXIモジュールが認識されている事
  • gRPCサーバのインストールと実行
1点目についてはドライバのインストールを行う必要があり、PXIe-4137 (SMU)の場合、NI-DCPower をインストールする事になります。NI Package Manager やni.comのダウンロードサイトからドライバのインストールを行う事ができます。

2点目について、この方法はこちらの記事 に詳細な説明があります。記事の記載の通り、下記の手順を行います。

    1. Microsoft Visual C++ Redistributable for Visual Studio 2017 and 2019 をインストールする。
    2. ni-grpc-device-server-windows-x64.zip をダウンロードし、server_config.txtのIPアドレス設定を変更し、NI gRPC Device Serverを実行する。( 今回の例ではIP = 10.128.1.34なのでserver_config.txtは "address": "10.128.1.34"と変更します。)

NI MAXでPXIe-4137が認識されているかを確認し、NI MAX上のデバイス名を確認します。Slot2に搭載している場合はデフォルトでは"PXI1Slot2"となります。
gRPCサーバを起動した際に正常に起動した場合は下記の様になります。

start grpc.png

また、ポートが正常にListenningの状態になっているかどうかは下記の様にコマンドプロンプトからnetstatで確認します。

check port.png

サーバ側の設定は以上です。クライアントのPCのLabVIEWからサーバ上の計測器を使用する際に必要となる情報は下記2点です。
  • NI MAX上のデバイス名、この例の場合、PXIe-4137はNI MAX上でPXI1Slot2として認識されています。
  • 使用しているIPアドレスとポート、この例の場合、server_config.txtで指定した通り、IP = 10.128.1.34とPort = 31763を使用しています。
 
 

クライアント側の設定 (PC)

ここではクライアントPC(Widnows 10, IP = 10.128.10.33)を使用します。クライアントPCからgRPCを介してPXIシステムの計測モジュールを使用する場合、LabVIEW, Python, C#を使用する事ができます。ここではLabVIEWとPythonの例を紹介します。

LabVIEWを使用する場合、LabVIEWとドライバのインストールが必要です。ここではLabVIEW 2024とNI-DCPower 2024を使用します。この時、DCPowerのドライバインストール時にデフォルトでは選択されていないniDCPower 2024Q1 gRPCサポート(NI-DCPower Runtime for LabVIEW Measurement Plug-In Support package)を手動で選択し、インストールする必要があります。この記事のAttachmentのVIの様に、サンプルVI上で変更が必要なのはInitilizeの関数のみです。Initializeの関数をgPRCセッションを開くものに変更し、サーバ側で確認した設定値を入力する事でサーバの計測器を使用した計測が可能となります。

initialize.png


上記の変更によりクライアントPCからgRPCサーバのPXIe-8840のPXIe-4137を使用してLEDの電圧スイープを行う事ができました。

led.png


Pythonを使用する場合、Python環境、grpcio-tools, matplotlibなどのインストール及び下記の手順が必要となります。ni-grpc-device-client.zip のダウンロードし、こちらの動画の手順 の通り、protoファイルの作成を行います。Pythonのサンプルを使用する場合、LabVIEWの時と同様にサーバで確認した接続情報が必要となります、下記の様に設定すると計測を行う事ができます。

python.png