mengineer's blog

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

VISAで菊水電源をUSB制御してみる 実践編

前回の続き、実際に菊水の電源PMX-35AをUSBで制御してみます。

PCと電源をUSBで接続し、NI-VISAの”VISA Interactive Control"を起動すると、
下記のように"USB Instrument Resources"に、接続した電源が出てきます。 f:id:mengineer:20160714223515p:plain

ダブルクリックすると、更に詳しい情報が表示されます。

VISA Interactive Control を使って接続確認

ConfigurationのUSB Settingタブでは、このデバイスの詳細情報が表示されます。

f:id:mengineer:20160714224644p:plain

0B3Eがメーカー、1029が型番、WD000061がシリアルNo を示すことが判ります、
この文字列を”VISAリソース名”と言い、接続機器を特定するのに使うので重要です。

 USB0::0x0B3E::0x1029::WD000061::0::INSTR

Input/OutputのBasic I/Oタブで、簡単なコマンドを送受信することが出来ます、
”*IDN?"は測定器のIDを問い合わせるもので、通信確認での定番コマンドです、
個人的にはGPIBの頃から愛用でした、とか言うと年代がバレそうですね(笑)

f:id:mengineer:20160714231824p:plain

*IDN?の応答文字列に”KIKUSUI"(メーカー名)”PMX35-3A”(電源型番)等の
情報が含まれています、その後ろは電源のFirmバージョンなどのようです。

これで通信出来ることは確認出来ましたので、次はC#から制御してみます。

C#からの制御

まず、参照の追加で"VISA COM XX Type Library"を追加します。(前回記事参照)
プロジェクトの参照設定に"VisaComLib"が追加されることを確認します。

f:id:mengineer:20160715090204p:plain

簡単なサンプルです、テキストボックスにコマンド名を入れて”コマンド送信”を
押すと、応答文字列を読み取って、下のテキストボックスに表示する、というもの。

f:id:mengineer:20160715090643p:plain

下記がソースファイルです、いつもはソースコード引用で貼り付けるのですが、
今回なぜか、引用で貼ると他の画像が表示されなくなってしまいました....。
(何回かソース貼ってるけど、こういう現象は初めて、はてな??)

見にくいですが、画像データで御勘弁下さい。

f:id:mengineer:20160715092504p:plain

8行目 using Ivi.Visa.Interop; を追加します。(VisaComLib)

25行目と26行目で、Resource ManagerとFormattedIO488の定義を追加します、
Resource Managerは環境につきひとつ定義すればOK、もし複数の測定器が有れば、
FormattedIO488は、その数だけ定義します。

28行目で測定器をOpenします、この時に先ほどのVISAリソース名で指定しています、
あとはWriteStringでコマンドを送り、ReadStringで文字列を読み取っているだけ。
31行目以降で測定器をCloseして、リソースを解放しています。

と偉そうに解説しましたが、実はKEYSIGHTの下記ファイルを参考にしました、
上記のソースファイル元ネタも、下記ファイル内に有りますので参照して下さい。

http://literature.cdn.keysight.com/litweb/pdf/5991-2365JAJP.pdf?id=2337367

VISAの関係も、まだまだ未知の部分が多いので、機会を見て調べてみます。