06-28-2011 09:35 PM
RTアプリケーションを開発していますが、タイミングループが設定どおりに回らずに困っています。
タイミングループの周期を1000msに設定し、ループの中にRT FIFO読み取りをタイムアウト900msで置くと、タイミングループはほぼ900msで回ります。ループの中の律速はRT FIFOのタイムアウトで、タイムアウトになると1000msを待たずに次のループに行ってしまいます。
これはバグでしょうか?
06-30-2011 03:23 AM
iShun さん
こういうことですよね??ループレート確認すると、RT FIFO読み取り900msecなら
1000msecおきにループ回ってますけどねぇ・・・ 作成したプログラムってこんな感じですよね?
ちなみに、ハードウェアはPXI-8106RTで、ソフトはLabVIEW2010RTです。
Lonestar
06-30-2011 03:59 AM
Lonestarさま
ありがとうございます。
原因をもう少し詰めてから投稿すればよかったと反省しています。
私も同様なプログラムで確かめてみましたが、そのプログラムでは問題なく動きました。
開発しているプログラムでは、条件によって次のループの周期を変えるようになっています。
あと、「間に合わなかった周期を無視」のチェックを外しています。
条件によってRT FIFOのタイムアウトを-1に設定して、データが書き込まれたときだけ回るようにしたいからです。
つまり、ループ内部のRT FIFOのタイムアウトによって、タイミングループの周期で回すか、RT FIFOの読み取りタイミングで回すかを制御したい訳です。
他の要素もあるかもしれませんが、そのようなことをするとタイミングループが思った通りの周期で動かなくなります。もちろん、タイミングループの実際に設定されている周期とRT FIFOのタイムアウトをタイミングループの左側の出力からモニターしていますが、それらの値から想定される周期では動いていません。
ちなみに、「間に合わなかった周期を無視」のチェックを入れると、タイミングループは設定した周期で回り、設定した周期より早く回るということは起きません。