C#で計測器制御 GPIBインターフェース
私は計測器制御のプログラムを作るときにはGPIBを使うことが多いですが、今までGPIBインターフェース(ハードウェア)についてあまり触れませんでした。
GPIBインターフェースについてもプログラムのトラブルにつながる可能性があるので少し説明したいと思います。
1 GPIBインターフェースの種類
普通はWindowsのPCを使ってC#のプログラミングを行いますが、初めからGPIBインターフェースを持っているPCはほとんど無いと思います。
なので、何かしらのGPIBのハードウェアを買ってきて取り付けることになります。
2018年現在で購入できるインターフェースはPCI(PCI express)とUSBだと思います。もちろんPCIではPCIポート、USBではUSBポートが必要です。
近年、USBポートが無いPCはほとんど無いと思いますが、PCIポートがあるのはデスクトップのみです。デスクトップでも省スペース製品はPCIポートがない場合もあります。
PCIにするかUSBにするかですが、実はUSBなら問題になることはほとんどありません。よほどはっきりした理由がなければPCIよりもUSBを選んだほうが後々便利です。
2 GPIBカード(PCI)
おすすめはしないと書きましたが、PCIカードでないといけない理由のある方もいるかもしれませんので、PCIのGPIBカードを紹介します。
GPIBのPCIではNIとKeysightがメジャーですが、私はコンテッックしか使ったことが無いです。NIとKeysight高いからね・・・。
いつもNIのドライバでプログラミングをしていますが、コンテッックの方が書きやすいんじゃないかなーと思いました。
コンテックがメジャーにならないのは、日本企業だからですね。残念ですが。
3 GPIBアダプター (USB)
GPIBアダプターといえば通常はUSBのものを指します。メジャーなものは2つです。
- National Instruments GPIB-USB-HS
- Keysight 82357B
GPIB-USB-HSがほぼでファクトスタンダードですね。
いまは、GPIB-USB-HS2があるのかな。
私が知っている装置付属のソフトウェアの中にはコードの中にNIのコマンドしか書いていなくて、その上PCIには対応していないものがありました。
ですので上のGPIB-USB-HSかGPIB-USB-HS2しか対応していないことになります。
確かに普及率の偏りからするとそうなるのかもしれません。
4 まとめ
というわけで、実際の話では、よほど都合が悪くなければGPIB-USB-HSを買っておくのが無難です。
しかし、実のところNIもKeysightもGPIBの開発には積極的ではなく、NIのドライバの中のバグがそのまま放置されていたりします。
KeysightもGPIBではなくLAN規格のLXIを使おうとキャンペーン張っていたりします。LXIはまだまだ普及率が低いので、機器が集めにくいですよね。ケーブルが細くて取り回しがいいですが。
私は積極的にLXIを使おうと思っていますが、皆さんも参考にしてみてください。