アカデミック 会社 イベント NI Developer Zone サポート ソリューション 製品とサービス お問い合わせ MyNI
This Document is not yet Rated  Rate this Document

VISAタイムアウトの値を1000秒以上に設定出来ません

使用ソフトウェア: Driver Software>>NI-VISA
使用ソフトウェア・バージョン: 4.4
使用ソフトウェア・バージョンに特化:
二次のソフトウェア:

問題:  VISA書き込み関数によってコマンドを与えられてから1000秒以上経ったのちにデータが返ってくる計測器を使用しています。
 余裕をもってプロパティノードでタイムアウト値を2000秒に設定しましたが、1000秒でタイムアウトエラーが起こってしまいます。
 999秒までであれば、正常にタイムアウトしているようなのですが、1000秒以上の値にすると、1000秒でタイムアウトしてしまいます。
 なぜこのような動作になってしまうのでしょうか。また、1000秒以上の値にタイムアウトを設定するにはどのようにすればよいのでしょう。

解決策:

 この動作は不具合などではなく、タイムアウト設定の仕様によるものです。
 タイムアウト設定の最大値は1000秒となっており、1000秒以上の値をタイムアウト値として使用したい場合には、プログラム上での工夫が必要となってきます。

 一つの方法は、VISA書き込みの関数と読み取りの関数の間に待機関数を配置し、VISA読み取り関数が呼び出されるのを遅らせることです。
 ただし、この方法を用いた場合には、待機関数によって遅延している間は、計測器の応答を待っている状態ではなく、不感時間となっているため、計測器が応答を返してくるまでに必ず要する最短時間の分だけを待機関数で遅らせ、それ以上の値には、タイムアウトの値を使用します。
 従って、計測器がデータを返してくるまでに要する時間が1000秒以上の幅を持つ場合には使用出来ません。

 もう一つの方法は、VISA読み取り関数がタイムアウトした場合、エラーを無視させ、再度VISA読み取り関数を呼び出す、というものです。
 これにより、設定したタイムアウト値の2倍の時間だけ、計測器からの応答を待機することが出来ます。
 同様にして読み取り関数の個数を増やすと、タイムアウト値と個数の積だけ、実質のタイムアウト時間を得ることができます。



関連リンク:

添付:





報告日時: 03/23/2009
最終更新日: 03/23/2009
ドキュメントID: 4VMJCC71

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
  1 2 3 4 5
Please Contact NI for all product and support inquiries.submit