|
GP-IBの通信の流れ・・・
※ ご使用のボードのメーカー・ライブラリに依存します
デバイスのオープン時の手順 1. SetConfigで、通信の際のデリミタ・SRQ割り込み・タイムアウト等最低限の 設定を行う。 2. SetIfc送信 3. SetRen送信 4. Send命令で、ご使用の機器の初期化(設定)コマンドを 文字列等で送信。必ずレスポンスを受信し、正常終了を 確認。 5. SRQ割り込みを使う場合、 ExecSpollしてフラグを一度リセットし、Send命令でSQR 使用設定コマンドを送信。 SRQ割り込みを受信する割り込みルーチンを初期化・開始 する。
通常の通信の手順 1. Send命令でコマンド文字列を送信 2. レスポンスを受信し、コマンド送信完了の確認を行う ただし、機器よりデータを受信する場合は、その手順に 従ってReceive命令で受信する。 ※ 受信バイト数が解っている場合はよいのですが、不定長 の場合、タイムアウトしないと受信から返ってこない場 合があり、注意が必要。 ※ 複数台の機器を制御している場合、ある一定時間以上、 1台の機器を占有して通信していたら、エラーを発する 場合がある。 ※ SRQ割り込みを使わず、ただ単にサンプリングデータが 機器にある状態を確認して受信させるならばExecSpoll 命令で、受信したステータスのビットを確認して受信動 作を行うのが、CPU負荷がかからず安全に受信しやすい。 ただし、SRQに関わる仕様を熟知する必要がある。
デバイスのクローズ時の手順 1. Close命令でデバイスの使用を終わる。 ※ ただし、機器によっては、ある動作の途中でCloseされて しまうとエラーを発し、再オープン時に正常に制御でき ない場合がある。機器側の初期化ボタン等を押さないで プログラム的に正常動作させたい場合は、DeviceClear 命令を送信するなりして、動作やデータをクリアするの が好ましい。 尚、機器によっては、設定情報全てクリアされてしまう ので、注意が必要。 ※ SRQ割り込みを使っている場合、この使用をオフするよう 命令を送らないでCloseしたら、OS的にクラッシュする 場合があるので、これにも注意が必要。
● 全てに言えることは、GP-IB機器には、アドレス設定があ り、その機器のアドレスに向けて命令を送信することに なります。全てにブロードキャストする命令をドライバー が持っている場合もありますが、基本、アドレスに向け て送信・・・です。
また機器によっては、アドレスのビット構成に、機器の 性能や制限がある場合がありますので、マニュアルをよ く読んで、正しくアドレス設定しましょう!
よくやるミスに・・・ GP-IBボード自体もアドレスがありますので、機器同様 に・・・『ゼロ』が指定できない場合もあります。 ゼロが使えても正常に動作するものもありますが、突然 異常動作を起こす場合もありますので、注意して下さい。
● GP-IBのケーブリングについて マニュアル通りにコネクタ・ケーブルの取り回しを行う よう心がけて下さい。 いい加減につなぐと、経年した場合、機器側レスポンス の遅延で、GP-IB通信自体に異常が発生して正常動作し なくなる傾向にあります。 (オカマ掘る・・・とか、耳が遠いとか言います) GP-IBボードより、機器側GP-IBインターフェースの方が 耐久性が低いので、ケーブリングの都合で負荷がかかり より壊れやすくなります。
※ 高価な機器(スペアナ)を使うので、そんなことで故障 したら、修理費もバカになりませんので・・・
以上。参考まで・・・
|