リアルタイムコントローラでNI-VISAを使用してUSBデバイスを制御する

更新しました Apr 18, 2024

使用製品

ドライバ

  • NI-VISA

オペレーティング・システム

  • NI Linux Real-Time
  • PharLap
  • VxWorks

問題

USBポート付きのリアルタイムコントローラがあり、USBデバイスを制御するためにNI-VISAを使用したいです。 これを行うことは可能ですか?また、参照できるサンプルプログラムはありますか?

解決策

USBデバイスと通信するためにVISA APIを使用することができます。オペレーティングシステム(OS)に関連するドライバがないUSBデバイスは、デフォルトでVISAに関連付けられます。つまり、システムにUSBデバイスを接続する場合は、VISA APIで参照できるVISAリソースとなり得ます。
 

VISA通信の種類は、USB計測器の種類によって異なります。2種類のUSB計測器と、その機器と通信するためのリソースを以下に示します。

 

USBTMC (USB Test & Measurement Class)

計測器がUSBTMCの一部と見なされるためには、USBTMCプロトコルをサポートしている必要があります。そうでなければ、USB RAWカテゴリにまとめられます。

デバイスがUSBTMCの場合、それはGPIB計測器とまったく同じように動作します。USBTMCデバイス



 

USB RAW

計測器がUSB RAWの場合は、通信方式がNI-VISAでサポートされていることを確認します。どのUSB計測器でも、転送手法が4つに分類可能です。すなわち、バルク(Bulk)、制御(Control)、割り込み (Interrupt)、アイソクロナス(Isochronous)です。NI-VISAドライバは、バルク、制御、および割り込み転送をサポートしています。
 

ナショナルインスツルメンツ(NI)のサンプルファインダには、バルク、制御、および割り込み転送を示す3つのサンプルプログラムがあります。それらを参照する方法は、以下のとおりです。
 

  1. LabVIEWでヘルプメニューからサンプルを検索...を選択します。
  2. サンプルファインダが開いたら、ハードウェア入力と出力>>VISAの順に選択すると、下記のサンプルが見つかります。
     
    • USB RAW - バルク
    • USB RAW - 割り込み 
    • USB RAW - 制御
 

詳細については、NI-VISA USB RAWモードを使用してデバイスと通信するには?を参照してください。

追加情報

すべての種類のRTOSがVISA APIを介してUSBデバイスにアクセスする機能をサポートしているわけではありません。
 

  • VxWorks RT OSを実行しているすべてのコントローラで利用可能です。
  • LabVIEW Real-Timeモジュール 2016以前のPhar Lap ETSターゲットでは、サポートされていません。
    詳細については、Real-Time Module on Phar Lap ETS Targetsを参照してください。
  • NI Linux Real-Timeを実行しているコントローラを使用している場合は、そのコントローラに互換性のあるバージョンのReal-Timeモジュールを使用する必要があります。さらに、cRIO-901xまたはcFP-2220に接続されているUSBデバイスは自動的に列挙されない場合があります。この場合、USBハブを介してデバイスを接続します。USBデバイスがNI Linux Real-Timeで認識されない場合は、USB Device Not Recognized by NI-VISA on NI Linux Real-Time Targetを参照してください。


通常、GPIBまたはシリアルを介した通信は、本質的に非確定的なプロセスであるため、一般的に計測器通信はリアルタイムシステムでは使用されません。ただし、GPIB通信が必要な場合はNI-VISAドライバを使用できます。