GPIBアプリケーションでエラー -1が発生する



使用ソフトウェア: Driver Software>>NI-488.2
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A
ハードウェア: GPIB

問題:
GPIBアプリケーションで時々エラー -1が発生します。このエラーは何を意味していますか?また、このエラーが発生した場合はどのように解決すれば良いですか?


解決策:
エラー -1は、通常GPIBのユニット(もしくはデバイス)ディスクリプタの数が足りないことを示しています。ibfindまたはibdev関数を呼び出すたびにGPIBデバイスや計測器へのリファレンスを開きます。このとき、これらのコマンドはユニット(もしくはデバイス)ディスクリプタを生成します。GPIBドライバは、デバイスや計測器でこのディスクリプタに関連しています。すべてのユニットディスクリプタは、メモリのテーブル内に保存されます。

GPIBアプリケーションでこれらの関数のどちらか一方がループ実行する場合、新しいユニットディスクリプタがループごとに生成され続けます。ユニットディスクリプタの範囲は、値が0から1023までの合計1024であるため、利用可能なユニットディスクリプタ数を越えてしまう可能性があります。ユニットディスクリプタが範囲外となると、エラー -1が発生します。

この状況を回避するには、そのデバイスを参照するためのプログラム全体にわたり、各デバイスもしくは計測器に対して一度のみibfindもしくはibdev関数を呼び出し、関数によって返されるユニットディスクリプタを保存する必要があります。

別の方法として、コードはそのままにループの最後でibonlコマンドを使用することです。これは、デバイスをオフラインにしてユニットディスクリプタのテーブルで任意のポインタの参照を外します。しかし、このアプローチはコードの構造次第では干渉する可能性があります。


関連リンク:
技術サポートデータベース 3EECCI7T: IBDEV と IBFIND の違いは何ですか?

添付:





報告日時: 06/06/1996
最終更新日: 04/27/2016
ドキュメントID: 0M5GB052