mengineer's blog

ニッチなネタばかりですが。

VISAで菊水電源をUSB制御してみる 前準備編

今回はタイトルのまんまです、計測器ネタは初めてかな、 またまたニッチですが。

下記の菊水電子のDC電源(PMX35-3A)を使用することになりました。

コンパクト直流安定化電源(CVCC)|PMX-Aシリーズ:概要・特長|菊水電子工業(株)

LAN(LXI)/USB/RS232C通信制御可能、価格(60,000円)の割に機能豊富で、
結構お得な気がしますね。(ここの回し者では無いですよ、念のため)

以前、RS232C経由では計測器を制御したことが有ったのですが、
今回はUSB接続なので初めて、ということで前準備から色々調べました。

”VISA”というもので制御しますが、そもそもVISAとは何ぞや、という話から。

VISA とは?

Virtual Instrument Software Architecture の略、IVI Foundationによって定められた
計測器を接続するためのライブラリで、Windowsだと"visa32.dll"等のdllになります。

各計測器メーカー毎にVISAを提供しており、NationalInstueumentsだとNI-VISA
agilent、もとい今はKEYSIGHTだと、IOライブラリ・スイートの中に含まれます。

今回の菊水電子からもKI-VISAが提供されているのですが、NIやKEYSIGHTのVISAでも
使えるようなので、今回はインストール済みのVISAを使用することにしました。

ちなみにNIのLabVIEWをインストールすると、NI-VISAもインストールされます、
VISAを扱う関数も含まれており、下記みたいに簡単にプログラム可能です。
(”*IDN?”というコマンド文字列を送信し、応答文字列を読み取っています)

f:id:mengineer:20160710175946p:plain

今回はLabVIEWでは無くC#から電源を制御したいので、上記は使えません、
ということで、次はC#からVISAを参照する方法について。

VISA-COMを使おう

下記リンクに情報が有りました、”VISA-COM”を使えば良いようです。

www.keysight.com

VISAがdllそのものなのに対し、VISA-COMはMicrosoft COM(Component Object Model)
に基づいたAPIで、.NETアセンブリ(Primary InteropAssembly)も提供されているため、
C#から使うのにも便利です。

VISAをインストールすると、下記にVISA-COMもインストールされます。

f:id:mengineer:20160712145528p:plain

C#のプロジェクト、”参照の追加”でCOMのTABを選択すると、
下記のようにVISA COM XX Type Libraryが出てくるので選択します。
(XXはVISAのバージョンにより異なります)

パスを見ると、上記フォルダ内のGlobMgr.dllになっていますね。

f:id:mengineer:20160712151038p:plain

これで準備完了、実際に菊水の電源を制御する部分は次回のネタにて。

複数のVISAをインストールする場合の注意

VISAは便利なのですが注意する点がひとつ、複数のVISAを入れると、
ちょっとややこしいことになります。

例えばNI-VISAがインストール済みの環境にKEYSIGHTのVISAを入れると、
インストール中に、下記のダイアログが出てきます。

f:id:mengineer:20160710214613p:plain

既に別のVISAがインストールされているので、Secondary VISAとして
インストールされます、という説明です。

これに対し、元々インストールされていたNIーVISAをPrimary VISAと呼び、
区別しています、要はPrimaryのNI-VISAが優先で使用されます。

今回の電源のようにメジャーなVISAでも使えますよ、なら簡単なのですが、
測定器によっては、メーカー純正のVISAを入れないといけません。

この場合、PrimaryとSecondaryのVISAを切り替える、等の裏技が必要です、
この話も、いずれまた(実例を交えて)書こうかなと思っています。