NI製品ディスカッション

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

Daqmx読み取りの停止処理について.

解決済み
解決策を見る

お世話になっております.

 

Daqmx読み取りで,デジタルトリガの立ち上がり待ち中に,停止ボタンを押された場合,

Daqmx読み取りを停止したいのですが,どのようにしたらよろしいのでしょうか.

 

 

Daqボード:DAQcard-6936E

Labview:Labview 7.0

 

よろしくお願いいたします.

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

こんにちは。

 

トリガ待ちの状態になったら、トリガが来るまで読み取りの関数で待機する状態になってしまうので止めることはできません。

 

トリガが来るタイミングが不定期で、なおかつ長時間待つ必要があるのであれば、タイムアウトの時間を短めに設定して、

タスクの停止/開始を繰り返す方法になるかとおもいます

0 件の賞賛
メッセージ2/7
4,311件の閲覧回数

解答ありがとうございます.

 

daqmxのタイムアウト設定を短くし,それを繰り返す処理で解決することができました

ありがとうございました.

0 件の賞賛
メッセージ3/7
4,302件の閲覧回数

kin777 さま

 

タイムアウト設定にしてしまうと、タイムアウト時にトリガが来ていた場合、

ちゃんと検知できるのか疑問に思います。

 

私は添付のように

有効なサンプルが0より大きければトリガが入ったと判断し、次の動作へ移行、

停止ボタンが押されていたら、停止処理するようにしています。

 

ご参考になれば。

メッセージ4/7
4,295件の閲覧回数

確かにそちらの方がより正確に対応できますね。勉強になりました

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

hoshiken 様

 

解答ありがとうございます.

 

 

私の今の認識としては,

doradorachan 様のアドバイスでも問題ないと考えているのですが,いかがでしょうか?

 

以下に示すように,測定値をバッファに格納する処理とバッファから読み取る処理が独立しているため,トリガを認識できない時間はないと考えます.

 

1,デジタルトリガの立ち上がりによって,測定を開始し,その測定値をバッファに格納する.

2,「Daqmx読み取り」でバッファに格納した値を読み取る.(画像中 赤枠)

  ただし,○秒でタイムアウトし,そのとき停止スイッチが押されていなければ,再度「Daqmx読み取り」を行う.

 

よろしくお願いいたします.

0 件の賞賛
メッセージ6/7
4,272件の閲覧回数

kin777 さま

 

前の投稿に、

>タスクの停止/開始を繰り返す

とありましたので、もしタスクが停止している間にトリガがきたら、

トリガ検知できなくなってしまうのではと思い、投稿させて頂きましたが、

kin777 さまのおっしゃるように

タスクを停止させるのではなく、ループの中で読み取りのタイムアウトを発生させて、

停止フラグを監視しているのであれば、トリガの検知漏れはないかと思います。

 

その場合、タイムアウトエラーが発生するのではないかと思いますが、

例えばUSBデバイスを使用しているとして、配線が抜けてしまった場合などでも

読取り関数のところでエラーが発生しますが、エラー内容を判断して、

継続して読取りを行うのか、エラー停止処理に移行するのかの判断が必要になるかと思います。

 

以上です。

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