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
(160 Views)
Solution
Accepted by topic author sinon

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

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

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

ループを停止します。

 

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

 

USB Trigger Polling.png

 

Emboar
Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
0 Kudos
Message 2 of 7
(128 Views)
Highlighted

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

早速、試してみました。

 

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

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

ありますでしょうか?

 

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

 

 

 

 

0 Kudos
Message 3 of 7
(119 Views)

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

Emboar
Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
0 Kudos
Message 4 of 7
(116 Views)

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

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

 

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

 

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

 

 

0 Kudos
Message 5 of 7
(113 Views)

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

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

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

Emboar
Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
0 Kudos
Message 6 of 7
(106 Views)

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

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

 

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

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

 

 

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

0 Kudos
Message 7 of 7
(71 Views)