【C#】【VISA】計測機器をPCから制御するVISA入門

C#.NET

【C#】【VISA】計測機器をPCから制御するVISA入門

計測機器をPCから制御

計測器インターフェース規格のVISA(Virtual Instrument Software Architecture)ライブラリを用いて、

PCから計測機器を制御することができる。

VISAライブラリを使えば計測機器(オシロスコープ、周波数発振器、安定化電源、などなど)をPCから制御できる。

簡単なサンプルコードをご紹介します。

VISAライブラリをインストールする

IVI.netを取得する。

インストールすると、デフォルトで下記のdllファイルが作成される。

C:\Program Files\IVI Foundation\VISA\VisaCom64\Primary Interop Assemblies\Ivi.Visa.Interop.dll

使用する計測機器によってそのメーカー毎にVISAライブラリがインストールできる。

・National Instruments製⇒NI-VISA

・菊水製⇒KI-VISA

・Keysight Technologies製⇒Keysight VISA

・Rohde & Schwarz製⇒R&S VISA

参照に追加する

C#.NETでプロジェクトの参照を追加するに上記のDLLライブラリファイルを追加する。

sansyoutuika_ivivisa

インターフェースのセットアップ

PCと繋ぐインターフェースを計測機器側で設定しておくこと。

RS232C,USB,GPIBなど、機器ごとに接続できるインターフェースが決まっている。

SCPIコマンド

基本のコマンドみたいなものがある。

IEEE488.2共通コマンド

*CLS ステータスデータ構造体をクリアします。
*ESE イベントステータスイネーブルレジスタビットを設定します。
*ESR イベントステータスレジスタを問い合わせます。
*IDN 識別ストリングを問い合わせます。(製造業者の情報)
*OPC 待機中が検出された装置のすべての動作が終了すると、装置は操作完了メッセージをイベントステータスレジスタに生成します。
*RCL メモリに保存した内容を読み出します。
*RST 装置のリセット。
*SAV 現在の設定をメモリに保存します。
*SRE サービスリクエストイネーブルレジスタビットを設定します。
*STB ステータスバイトとマスタサマリステータスビットを読み取ります。
*TRG トリガコマンド
*TST 自己診断の実行
*WAI 待機中の動作なしフラグが「真」になるまで、以降のコマンドやクエリを実行しないようにします。

 

この共通コマンド以外にその計測器の独自のコマンドがあります。

それは、取説やユーザーマニュアル等に記載されています。

サンプルコード

今回は、菊水製の電子負荷装置をUSB接続した場合のサンプルコードを載せます。

画面デザイン

sample_screendesign

ソースコード

 

*IDNコマンドを送信すると、

(例) 形名PLZ164W、製造番号AB123456、ROMバージョン1.00の場合

KIKUSUI,PLZ164W,AB123456,1.00

というレスポンス結果が返ってきます。

おまけ 接続インターフェース別の接続子方法

GPIB GPIB[board]::PrimaryAddress[::SecondaryAddress][::INSTR] 例:GPIB0に接続されたプライマリアドレス3の計測器の場合
GPIB0::3::INSTR
シリアル
(RS232C)
ASRL[board][::INSTR] 例:シリアルポートCOM1に接続された計測器の場合
ASRL1::INSTR
USB USB[board]::VendorID::ProductID::SerialNumber[::InterfaceNumber][::INSTR] 例:ベンダーID(VID)2878、プロダクトID(PID)4121、シリアルナンバー”00000001”を持つUSNTMC計測器の場合
USB0::0x0B3E::0x1019::00000001::INSTR

msg = rm.Open(“GPIB0::1::INSTR”, AccessMode.NO_LOCK, 0, “”)     ‘GPIBの書き方例

‘msg = rm.Open(“ASRL1::INSTR”, AccessMode.NO_LOCK, 0, “”)  ‘RS232Cを使用した例

‘msg = rm.Open(“USB0::0x0B3E::0x1019::00000001::INSTR”, AccessMode.NO_LOCK, 0, “”)  ‘USBを使用した例

‘msg = rm.Open(“MYDEV1”, AccessMode.NO_LOCK, 0, “”)  ‘VISAエイリアスを使用した例

まとめ

今回は、計測機器をPCから制御するVISA規格のSCPIコマンドについてご紹介しました。

業務で計測機器を使用することが多い人は、PCからの制御を作って置けば、簡単に計測が出来て、データもいちいちUSBなどで機器から吸い出さなくても、PCに飛んでくるのですぐに保存できたり、CSV出力できるようにプログラムを組んでおけばデータ分析も簡単になり、業務効率UPできますよ。