NI製品ディスカッション

cancel
Showing results for 
Search instead for 
Did you mean: 

USB通信のポーリング

Solved!
Go to solution

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

 

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

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

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

 

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

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

 

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

 

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

 

 

 

 

 

0 Kudos
Message 1 of 7
(1,931 Views)
Solution
Accepted by sinon

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

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

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

ループを停止します。

 

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

 

USB Trigger Polling.png

 

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

GCentral
0 Kudos
Message 2 of 7
(1,899 Views)

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

早速、試してみました。

 

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

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

ありますでしょうか?

 

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

 

 

 

 

Download All
0 Kudos
Message 3 of 7
(1,890 Views)

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

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

GCentral
0 Kudos
Message 4 of 7
(1,887 Views)

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

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

 

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

 

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

 

 

0 Kudos
Message 5 of 7
(1,884 Views)

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

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

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

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

GCentral
0 Kudos
Message 6 of 7
(1,877 Views)

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

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

 

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

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

 

 

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

0 Kudos
Message 7 of 7
(1,842 Views)