IBICでibwrt *idn?コマンドをおこなうとEABOタイムアウトエラーが発生する



使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A
ハードウェア:

問題:
GPIBデバイスを構成して診断テストも合格しています。『対話式制御(IBIC)の紹介』ページにあるサンプルを参照して通信しましたが、ibwrtコマンドをおこなうと<ERR TIMO CMPL EABO>が発生します。入力したコマンドは以下のとおりです。
    ibfind gpib0
    ibsic
    ibsre 1
    ibdev 0 PAD 0 12 1 0 (PADは計測器のプライマリアドレス)
    ibwrt "*idn?"
ここでEABOエラーが発生します。


解決策:
TIMOはタイムアウトエラーで、EABOはエラーにより操作が終了したことを示しています。このエラーが発生する理由はいくつかあります。

  • DMAに関する問題
    IBICでは、ibdevコマンドの直前にibdma 0コマンドを実行します。これにより、GPIBデバイスはデータ転送時にDMAを使用しなくなります。これで動作する場合、使用しているGPIBデバイスは現在DMAを使用することはできません。

    PCI-GPIBデバイスを使用している場合、BIOSでPCIバスマスタリングのオプションが有効になっていることを確認してください。AT-GPIB/TNTのようなISAデバイスを使用している場合、DMAチャンネルを変更するか、DMAを無効にする必要があります。


  • 不適切な終端文字設定
    多くの計測器は、最後の文字(EOS: End Of String)として知られるメッセージの最後であることを示す特定の終端文字を使用します。GPIBデバイスで使用されているデフォルトの終端設定は、送信されたメッセージの最後の文字でEnd Or Identify(EOI)ラインをアサートすることです。 計測器のマニュアルで想定するもしくは使用する終端文字を変更する必要かあるかどうかを確認します。計測器へ不適切な終端文字とともにコマンドを書き込むと、計測器はコマンドを無視し、読み取りコマンドがバス上で待機しつづけてタイムアウトとなります。


  • 誤解釈されたメッセージ
    計測器は、受け取ったメッセージを適切に解釈されない可能性があります。"*idn?"IEEE 488.2に準拠する計測器のみが解釈できるコマンドです。IEEE 488.1のみに準拠する古い計測器の場合、計測器のマニュアルに記載されているコマンドを確認する必要があります。


  • 不正なハンドシェイク
    GPIB書き込みもタイムアウトを発生することが可能です。GPIBコントローラは他のGPIBデバイスに書き込んでいる際に3線式ハンドシェイクでおこなっているため、他のデバイスが誤動作して488.1仕様に従ったハンドシェイクの完了が失敗する可能性があります。これは、ケーブル内のハンドシェイクラインが接続されていない場合でも発生することがあります。

    一方で、TIMOエラーの発生はENOLエラーとは異なります。ENOLは、コマンドに対して計測器が応答しないことを示すのに対して、TIMOはデバイスが受信するためのアドレス指定には成功したがハンドシェイクに失敗したことを示しています。このケースを確認する最善策は、PCI-GPIB+のようなGPIBアナライザ機能のあるデバイスを使用してハンドシェイクに問題はないかを調べる方法で、特に独自に作成した計測器に対して有効です。


関連リンク:

添付:





報告日時: 11/30/2000
最終更新日: 04/14/2016
ドキュメントID: 1C4F71X4