VXI-11 と GPIB の LAN 収容 - VXI-11 GPIB ライブラリ

私にとって、 面倒な測定機器の操作を自動化するという夢を最初にかなえてくれたのが、 「HP-IB」(Hewlett Packard Interface Bus)でしたが、 最初に使ったコントローラが 1976 年の HP 9825A という Calculator で、 HPL というコンパクトでよくできたインタプリータ言語を使う設計でした。

翌 1977 年になると、 初期のパソコン Commodore PET 2001 が生まれ、 周辺機器の接続に HP-IB を使うというユニークな設計ですから、「渡りに船」。 早速、GPIB 制御関数を書いて、 手持ちの測定器や自作の自動化機器の制御に使いました。

HP-IB が IEEE Std 488 (IEEE Standard Digital Interface for Programmable Instrumentation) として標準化されたのは 1975 年で、 Hewlett Packard 以外の会社が、 「GPIB」(General-Purpose Interface Bus)という名前を使うようになります。

その後は、事務用や工場自動化用ミニコンでも、多様な GPIB 機器を扱い、 PC/AT 互換パソコンが普及すると、 ISA バスや PCI バスの GPIB ボードとデバイスドライバを自作して、 FreeBSD でも使えるようになりました。

そして、ネットワークの普及が進むと、 どこからでもアクセスできるようにしたくなって、 機械設備やセンサを含めて、「すべてを LAN 収容」する方向に切替えたのですが、 計測器や産業用機械、建物付属設備、事務機の業界は保守的で、 RS-232, RS-422, RS-485 がほとんどでしたから、 MOXA などのデバイスサーバーによる LAN 収容で我慢するケースが増えました。

最近になって、測定器も LAN 接続できるものが増えてきましたが、 GPIB しか持たない機器をなんとかしなければなりません。 つまり、GPIB/LAN 変換器がほしいわけですが、 自作するほどたくさん使うわけではありませんから、 市販の変換器をいくつか試してみました。

しかし、どれも設計に問題があって、オシロスコープ、ネットワーク・アナライザ、 インピーダンス・アナライザなどの多量のデータ転送に対応できないとか、 Windows 専用でプログラミングに必要な情報がないとか、うまくゆきません。

そうこうしているうちに、 VXI-11 規格 が生まれ、 「Agilent E5810A LAN/GPIB Gateway」等の製品が出てきました。 この製品のマニュアルにも「LAN/GPIB Gateway for Windows」と書いてあるように、 何故か Windows 専用ですが、Sun RPC を使った VXI-11 規格 に準拠している以上、 プログラムの自作はできるはずで、 試しに入手して、規格を見ながら、まる 1 日の試行錯誤を楽しみました。

その動作確認と規格の理解ができたところで、翌日、 これまで自作してきた GPIB 制御プログラムがほとんどそのまま使えるような、 ライブラリを作成してみました。 VXI-11 サーバー透過な設計になっています。

FreeBSD 用に書いたものですが、他の Unix でも使えるはず(注1)ですし、 E5810A 以外の VXI-11 サーバーでも使えると思います。

READMEファイルと ライブラリ関数説明書をご覧のうえ、 ほしいと思われたかたは、 ソースコード をご利用ください。

サンプルプログラムはソースコードのパッケージに入れてありますが、 このライブラリを使ったGPIB 制御用簡易言語 は別途まとめてあります。

なお、将来仕様変更やバグ修正が行われる可能性がありますので、ご了承ください。

注1 - Debian Linux で確認したところ、 /etc/hosts を少し修正しないと、 gethostbyname() で 127.0.0.1 が得られてしまうというトラブルがありました。 SRQ 以外は正常に動作するという場合は、 ここを確認してください。

注2 - 最近の Debian GNU/Linux での注意点 (2013-05-31 物材機構の轟さんから情報をいただきました)

平林 浩一, 2008-07-10, 2013-05-31