前回の続き、実際に菊水の電源PMX-35AをUSBで制御してみます。
PCと電源をUSBで接続し、NI-VISAの”VISA Interactive Control"を起動すると、
下記のように"USB Instrument Resources"に、接続した電源が出てきます。
ダブルクリックすると、更に詳しい情報が表示されます。
VISA Interactive Control を使って接続確認
ConfigurationのUSB Settingタブでは、このデバイスの詳細情報が表示されます。
0B3Eがメーカー、1029が型番、WD000061がシリアルNo を示すことが判ります、
この文字列を”VISAリソース名”と言い、接続機器を特定するのに使うので重要です。
USB0::0x0B3E::0x1029::WD000061::0::INSTR
Input/OutputのBasic I/Oタブで、簡単なコマンドを送受信することが出来ます、
”*IDN?"は測定器のIDを問い合わせるもので、通信確認での定番コマンドです、
個人的にはGPIBの頃から愛用でした、とか言うと年代がバレそうですね(笑)
*IDN?の応答文字列に”KIKUSUI"(メーカー名)”PMX35-3A”(電源型番)等の
情報が含まれています、その後ろは電源のFirmバージョンなどのようです。
これで通信出来ることは確認出来ましたので、次はC#から制御してみます。
C#からの制御
まず、参照の追加で"VISA COM XX Type Library"を追加します。(前回記事参照)
プロジェクトの参照設定に"VisaComLib"が追加されることを確認します。
簡単なサンプルです、テキストボックスにコマンド名を入れて”コマンド送信”を
押すと、応答文字列を読み取って、下のテキストボックスに表示する、というもの。
下記がソースファイルです、いつもはソースコード引用で貼り付けるのですが、
今回なぜか、引用で貼ると他の画像が表示されなくなってしまいました....。
(何回かソース貼ってるけど、こういう現象は初めて、はてな??)
見にくいですが、画像データで御勘弁下さい。
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の関係も、まだまだ未知の部分が多いので、機会を見て調べてみます。