USB-GPIBインターフェイスのAgilent 82357Bを入手し、手始めにHP3457Aマルチメーターを接続してみたらハマったのでその記録。
結果を最初に書くと、END ALWAYS コマンドを一番最初に送るのが胆だった。
環境は、Windows 10 Pro. に IOLibSuite_18_2_27313 をインストールしたのみ。マザーは、ASUS TUF gaming Z590-plus.
対象測定器として、HEWLETT PACKARD 3457A (DMM)とAnritsu MS2602A (スペアナ)を実験。GPIBの接続は、対象測定器のGPIBポートに82357Bをダイレクトに刺しただけの、一対一接続で順番に実験。(まずは簡潔にテストするため)
実際に試した順序は逆だが、MS2602Aを接続してKeysight Connection Expert 2022を立ち上げると、*IDN? コマンドに応答して機種名が得られてそれと認識される。MS2602Aも古いデバイスだがSCPI規格をサポートしているようだ。
いっぽう、HP3457AはSCPI規格以前の製品なので、未知のデバイスとしてして存在しか認識されない。
Interactive IO を開いて、手操作でコマンドを送って試すのだが、ここで躓いた。Command に ID? を入れて、Send & Readをクリックするが、タイムアウトのエラーになってしまう。
! VI_ERROR_TMO: A timeout occurred
Visa ErrorCode: 0xBFFF0015(-1073807339)
ACV AUTO のようなコマンドを送ると3457Aのパネル表示が変わるので、いちおうGPIBのコマンドが届いてはいるようだ。とまあ二日ほど悩んだが下記サイトで解決方法が見つかった。3457A側はデフォルトだとデータの終わりにEOIをアサートしないので、USB-GPIBアダプタ側がEOIのアサートを待ちぼうけしてタイムアウトエラーになるらしい。
https://www.eevblog.com/forum/testgear/hp-3458a-82357b-usb-keysight-instrument-control-gt-reading-data-not-working/
ということで、電源ONのあと一番最初に END ALWAYS コマンドを送って、3467AにEOIをアサートするように指示をすれば解決。下の図は、次のような操作例。うまくいった。
Command 欄 操作
END ALWAYS Send Command ボタン
ID? Send & Read ボタン
ACV AUTO Send Command ボタン
Read Respond ボタン を4回