GPIBトラブルシューティングリソース
対話式制御(IBIC)の紹介
IBICとは、Interface Bus Interactive Controlプログラムを意味します、このユーティリティを使うことで、GPIBと通信するためのNI-488とNI-488.2の機能とルーチンのサブセットを利用することができます。キーボードで様々なコマンドを入力することによって、GPIB機器との通信方法、トラブルの解決方法、GPIBアプリケーションを作成するために必要な構文とイベントの順序を知ることができます。ほとんどの488コマンドはIBICでも有効です。
初期トラブルシューティング
初期トラブルシューティングを行うためには、IBICを起動して以下のコマンドを入力してください。
|
: ibfind gpib0 |
GPIBボードとボードレベルでの通信を開始します。
|
|
gpib0: ibpad 0 |
ボードの初期アドレスが0であることを確認します。GPIBボードを複数使用していない場合、これが全GPIBボードの初期アドレス値となります。
|
|
gpib0: ibrsc 1 |
ボードがシステムコントローラであることを確認します。
|
|
gpib0: ibsic |
「インタフェースクリア」を送信して、過去のエラーを削除し、ボードがコントローラインチャージ(CIC) であることをアサートします。これによりバスがリセットされます。
|
|
gpib0: ibsre 1 |
デバイス(すなわち、計測器)をリモートプログラムモードに設定します。全てのデバイスで必要とは限りませんが、これにより悪影響を及ぼすことはありません。
|
|
gpib0: ibln PAD SAD |
一次アドレスPADと二次アドレスSADにおいて、デバイスがプレゼントであるか、リスニングであるかを決定します。PADは1から30の整数、SADは通常0(None)です。デバイスが検出されない場合は、デバイスの電源オン、バスへの接続、一次アドレス設定を確認してください。
|
|
gpib0: ibdev 0 PAD 0 13 1 0 |
一次アドレスPADで計測器とのデバイスレベルの通信を開始します。このコマンドにより、プロンプトがgpib0:からud0:に変わります。(このコマンドを使用するたびに、プロンプトがud新たな番号になります。udは「unit descriptor」を表しています。)
|
|
ud0: ibwrt "*idn?" |
このコマンドは、ud0と識別されるデバイスへデータメッセージを書き込みます。この*idn?は、SCPIコマンドセット(488.2コマンドセットの拡張版)をサポートするデバイスによって認識される識別クエリです。ただしすべてのデバイスがSCPIをサポートするわけではありません。機器が*idn?メッセージを認識する場合、識別文字を返します。
各書き込みコマンドは[0100]を返します。これはGPIBステータスワード(16進2バイト)です。ステータスワードが[8000]より小さい場合は正常実行、それ以外はエラーを表しています。
また、書き込みコマンドはcount: #を返します。これはメッセージの送信済バイト長です。この場合のカウント値は5です。
|
|
ud0: ibrd 100 |
このコマンドはデバイスからのデータメッセージを認識します。100は最長受信バイト数です(あらゆる整数値を設定可能)。ただし実際にデバイスから受信するバイト数は送信したメッセージによって異なります。
読み込みコマンドを終了するには、3通りの方法があります。(1)EOIラインはデバイスがデータの送信を終了したことを宣言します(これがデフォルトです)。(2)デバイスからEOS文字を送信可能です。このEOS文字はibdevコマンドで指定されたものです(ここでのibdevコールではEOS文字は含まれていません)。(3)受信バイト数に達した時(これは「カウント」方法と呼ばれています)。いずれの方法でもデータ転送を終了することができます。さらに詳しい情報をGPIBリファレンスマニュアルでご覧になることができます。
|
これはデバイスの識別情報を返します。プログラムが待ち状態の時は、デバイスからの応答を待ち、10秒後にタイムアウトで終了します。デバイスがタイムアウトになる原因としては、デバイスのバッファに情報が無いか、書き込みコマンドを認識できないか、ボード、デバイス、またはケーブルに問題があることなどが考えられます。
注
ibonlコマンドは、ユニットディスクリプタを使用した後、それを終了するために利用します。ibdevかibfindを呼び出すたびに、そのアプリケーション終了時にibonlを呼び出してください。以下のように使用します。
リスナの検索
ibicはリスナの検索にも利用できます。これは488.2コマンドであり、NI-488.2コマンドをサポートするボード(1990以降)が必要です。
: set 488.2 0 (488.2コマンドの起動、0はボード指標)
488.2 (0): SendIFC (インタフェースのクリア、gpib0をコントローラインチャージ(CIC)とする)
488.2 (0): FindLstn
アドレスリストの入力: 0,1,2,3,4,5 (設定可能なデバイスのアドレス、コンマで区切られた0から30の数)
リミット数の入力: 3 (ibicが検索するデバイスの最大数)
[0130] ( cmpl cic atn ) (トランザクション終了、ボードはコントローラインチャージ、アテンション宣言)
count: 2
カウント(count)は検索したリスナ数
listeners: 0 (コントローラのアドレス)
2(デバイスのアドレス)
リスニング中のデバイスの有無とそのアドレスを特定することができます。ここで、ibfindかibdevを使用して通常のコマンドに戻ることができます。
IBICの終了
その他のトラブルシューティングヒント
IBICがうまく行かない場合は、別のケーブルや計測器を使用してください。接続不良やコマンドを誤って使用している可能性があります。
[an error occurred while processing this directive]