NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

USB通信のポーリング

解決済み
解決策を見る

いつもお世話になっております。

 

現在、USB INSTRクラスを用いてデバイス制御を行っています。

デバイスに初期設定等を行った後、任意のタイミングで発生するデバイスからの

USB通信(トリガー)を読み込むことを求められています。

 

[VISA Read] ではタイムアウトまでタスクを抱え込んでしまう、またタイムアウトエラーが

発生してしまうなどの問題があり、解決策に困っております。

 

お忙しいところ恐縮ですがアドバイスをいただければ幸いです。

 

以上、よろしくお願いいたします。

 

 

 

 

 

0 件の賞賛
メッセージ1/7
1,930件の閲覧回数
解決策
受理者 sinon

実機で試してないのでわかりませんが、以下のようなコードではいかがでしょう。

タイムアウトを小さくし、デバイスからのトリガデータをポーリングします。

エラーなくデータを受信したもしくは設定したソフトウェアタイムアウトが発生した場合、

ループを停止します。

 

エラー処理等不十分ですが、アイデアの一助となればと思います。

 

USB Trigger Polling.png

 

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ2/7
1,898件の閲覧回数

早々のアドバイス、ありがとうございます。

早速、試してみました。

 

[VISA Read] の最初の読み込み動作で添付のようなエラーが出てしまいました。

タイムアウトのエラーなので、発生して当然なのですが出ないようにする方法は

ありますでしょうか?

 

以上、引き続きアドバイス、よろしくお願いいたします。

 

 

 

 

すべてをダウンロード
0 件の賞賛
メッセージ3/7
1,889件の閲覧回数

エラークリア関数を用いて、タイムアウトエラーだけクリアされるとよいかと思います。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ4/7
1,886件の閲覧回数

アドバイス、ありがとうございました。

おかげで期待する動作をさせることができました。

 

また、エラークリア関数の存在も知ることができ、勉強になりました。

 

以上、いろいろとありがとうございました。

 

 

0 件の賞賛
メッセージ5/7
1,883件の閲覧回数

お役に立てたようであれば何よりです。

エラー処理はアプリケーションにおいて非常に重要ですので、エラークリア関数でクリアをしすぎないよう、

クリアの範囲を明確にされることをお勧めします。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ6/7
1,876件の閲覧回数

いつもお世話になっております。

重ね重ね、アドバイス、ありがとうございます。

 

実はデフォルトのままで使用しておりましたので、

タイムアウトのみに限定するよう変更致しました。

 

 

以上、ありがとうございました。

0 件の賞賛
メッセージ7/7
1,841件の閲覧回数