USB-GPIBコントローラで計測器を活用しよう!

                                2024年2月
【1】
はじめに

 
従来、パソコンからGPIBを通して計測器をコントロールしたり計測データを読み取ったりするのに、パソコンに拡張基板を取り付けていました。良く使っていたのは、Contec の ISA & PCIボードや Interface の PCI(GPC-4301)ボードでした。しかし、ノートパソコンや小型化されたディスクトップパソコンには、これらを取り付けることができないので、USBによるインターフェイスがあれば思って調べると、あるにはありますが結構、価格が高いです。わたしがやりたい事は、GPIBを通して単に計測器を設定し、測定値が読み取れれば良いのです。同じことを考える方が世界に大勢いて、手作りでそれを実現する記事は大量に存在します。その中でArduino Uno を使って、ていねいな解説をしている方の記事を見つけました。イタリアのトリノの方で Emanuele Girlando(エマヌエーレ・ガランド)さんです。i
su al B     asic 6.0
Emanuele GirlandoさんのUSB-GPIBコントローラのページ
この記事は、日本語に翻訳できます。丁寧に説明されています。ほぼ同じスケッチを GitHub にも上げてあります。
 私は、彼が説明に使っている Arduino Uno を使って動かしてみました。配線と確認に少々手間取りましたが、結果的には問題なく計測器を操作して計測値を受け取れています。それで、これを小さくするため Arduino Nano に入れてテストしました。同様に動作しました。
私が必要とする機能は満たされています。ファームウェアは、上のリンクからスケッチ(ソースコード:GPIB6.1.ino)をダウンロードしてください。その時、よろしければ彼の努力に感謝して、何がしかの寄付を差し上げて下さいませんでしょうか。GPIBの一般的な使用に問題なく使えます。
 GPIBはレガシーな規格ではありますが、とても堅牢に創られていて、コントローラ以外に、最大で14台の計測器を接続することができる優れものであると思います。私自身は2〜3台しか接続したことはありませんが(笑い)。いずれにしろ、従来の計測器は GPIB を搭載している物が多く、それを利用しない手はないと思います。


【2】基板化したコントローラ
  これを小さな基板としました。下にその写真を示します。



 基板・コネクタ・Arduino Nano・USBケーブルの一式を、配線済にて提供致します。ここで提供いたしております。ハード的には、一式が揃っていますから、すぐに動かすことができます。必要なのは上記より入手したスケッチ (GPIB6.1.ino) をコンパイルして書き込むだけです。使い方の一部は下の動作テストに示しますが、詳細については上記の著作者のリンクから得てください。皆様に、すぐに使えたと喜んでいただいています。

【3】書き込み
  コンパイルした模様 (Arduino IDE) を下図に示します。 この Nano には、ブートローダーは書き込み済ですが、 CPUは互換機ですので、ここを参考
互換機用のドライバーを予めインストールしてください。
GPIB6.1.ino は、Uno をターゲットにしてありますが、Nano でもそのまま使えます。もしまだ、Arduino IDE をインストールされていないならば、ここにアクセスして環境を作ってください。



参考のためのスケッチ


Arduino Nano を USB でパソコンに接続すると、デバイスマネージャーの「ポート(COMとLPT)」に表示(下の左図)されます。その項目に COMx というように COM番号(x)が表示されます。このCOM番号は後でも参照しますので覚えておいて下さい。ただし、パソコンの
USBに挿す場所を変更するとこの番号は変わるので御留意ください。
【注】デバイスマネージャーを表示するには?
画面左下の (スタートボタン・Windowマーク)を右クリックし、表示された「クイック リンク」メニューから[デバイス マネージャー]をクリックします。


     デバイスマネージャ図                Arduino IDE の Tool の設定

コンパイルしたものを Arduino Nano に書き込みます。
この時に、Arduino Nano を接続していると上の右図ようにCOM番号の指定ができます。また、Processor の指定は、
ATmega328P(Old Bootloader) を指定して下さい。書き込みが完了すると上記の COM番号を使って GPIBとの通信ができるようになります。


【4】テストの準備
  ここでは、テストのために Tera Tarm を使います。Tera Tarm の設定を下図のようにして下さい。
 このアプリのフリーでのご提供に感謝いたします。



 設定をすると使えるのですが、毎回、起動するたびに設定するのが面倒な場合は、設定ファイルをここに置いておきます。ダウンロードし解凍するとTERATERM.INIができますので、それをメモ帳などで読み込み "ComPort=5"(これは私の分) を検索して、その番号を、ご自分が使うCOM番号、つまり
デバイスマネージャーで表示されたCOM番号に変更して下さい。もし、同じならば、そのまま使えます。
 C:\Program Files (x86)\teraterm の位置にある TERATERM.INI と、この設定をしたファイルと差し替えると、ダイレクトにこの設定で起動されます。重ね書きする前に、もともとの TERATERM.INI を残して置くため、 TERATERM_Bak.INI などにリネームしておくと良いと思います。ここには示していませんが、ウインドウの設定で「反転」を指定しています(黒から白の画面となる)。


【5】動作テスト
  始めにターゲットの計測器1台でテストし、次に GPIB の本領を発揮する複数台の計測器で動かしてみます。

(1) デジタルマルチメーター(R6452A)へのアクセス
 1台ですので、コントローラを下図の左のように計測器に直接取り付けてください。Tera Tarm を起動します。













特にメッセージがなく起動できれば良いです。

++addr ( + 改行、以下同じ ) で、コントローラに設定されているターゲットの GPIB アドレスが表示されます。
デフォルトでは 2 となっています。
このマルチメータの GPIBアドレスは 3 でしたので、++addr 3 としてターゲットのアドレスを設定します。確認のため++addr とすると 3 と返ってきます。計測器の GPIBアドレスは、取扱説明書に確認の方法の記載がありますし変更もできます。
コマンド 'F1,R0' を発行します。F1 は直流電圧測定、R0 はレンジAuto です。このコマンドを発行すると、マルチメータの前面表示器に
RMTと表示されて、リモートモード(GPIBによるコントロール)になったことが分かります。
++read で読み込みを実行すると、確かに印加している直流電圧が返ってきます。次に F2 は、交流電圧測定です。このモードでも正常に動いています。 さらに F50 は、周波数測定です。これでも入力している周波数が測定できています。
 ヘッダー(測定値の前にある文字列) は、このように手動で測定している時は確認のため便利ですが、パソコンのソフトで計測・処理する場合は、計測数値を受け取る時に邪魔になるので H0 とするとヘッダー無しにもできます。
GPIBのコマンドは、計測器の取扱説明書にすべて記入してあります。

(2) 複数台の計測器にアクセスする
 オーディオアナライザ(VP-7723A)と上記のマルチメータを使って複数台の簡単な操作を実行・確認します。
GPIBケーブルを使って2台の計測器を連結し、さらに、ケーブルのメス側コネクタに USB-GPIBコントローラ を接続します(下図の左)。
前面では、オーディオアナライザの OSC の出力をマルチメータの入力に接続します(下図の右)。
GPIBケーブルは、オスメスのコネクタが一対で、それが両端に付いており、連結に便利な構造になっています。






Tera Tarm をオープンします。GPIBのターゲットアドレスをAudio Analyzer(AA) の15に設定します。
次に、発振周波数を 1KHz とします。これを実行すると AA の前パネルの
REMOTEのLED が点灯し、GPIBモードになったことが分かります。

GPIBのターゲットアドレスをマルチメータ(MM)の3に変更します。周波数測定コマンド F50 を発行します。この時、MM の表示器に
RMTと表示されます。読み込むと 1005.8Hzが計測されました。交流電圧測定コマンド F2 を発行して、電圧を測定します。

次に、ターゲットアドレスを AA (15)に変更し、発振周波数を 3KHz, 0dBに変更します。ターゲットアドレスを MM (3)に変更し、周波数を測定します。確かに 3KHz になっています。電圧も測定します。

もう一度、ターゲットアドレスを AA (15)に変更し、発振周波数を 5KHz に変更します。
ターゲットアドレスを MM(3) に変更し、周波数測定を実行します。
測定結果は 5.005KHz と測定されました。

;--------------------------------------------------

このように、GPIBのターゲットアドレスを切り替えながらアクセスすることにより、理屈では最大で14台の計測器を使用することができます。
ただしこのコントローラのGPIBドライブ能力で、どれくらいのターゲットを問題なくアクセスできるかは、テストしてみなければ分かりません。この2台でのテストは、繰り返し行っていますが全く問題ありませんでした。本来の規格では、1システムで、コントローラを含め最大で15台までと規定されています。Emanuele Girlandoさんは、このコントローラでは、1台のみOKとしておられるようです
これらの計測器は、デイジーチェーン(いもずる式)、スター(放射状)、および、その組み合わせで接続していくことができ、非常に自由度が高いです。ただし、ループ接続は禁止されています。

汎用製品通販のページへ      USB-IOのページに戻 る