Home
Support
LabVIEWの「次のミリ秒倍数まで待機(Wait Until Next ms Multiple)」関数が、最初のループでは設定した値で待機しないことがある
LabVIEWの「次のミリ秒倍数まで待機(Wait Until Next ms Multiple)」関数が、最初のループでは設定した値で待機しないことがある
使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A
問題: 「次のミリ秒倍数まで待機(Wait Until Next ms Multiple)」関数を使用してWhileループの動作タイミングを指定しています。LabVIEW Real-Time でよく起きるのですが、Windows 環境のLabVIEWでも同様なことが起きます。たとえば、この関数をWhileループの中に配置し、5,000ミリ秒の定数を「ミリ秒」パラメータに配線します。最初の反復での実際の待機時間は0ミリから5,000ミリの間のランダムな値となってしまいます。なぜ、こういった現象が起こるのでしょうか?また、どのように対応したらいいでしょうか?
解決策: 「次のミリ秒倍数まで待機(Wait Until Next ms Multiple)」関数は、タイムスタンプをユーザーのコンピューターの内部クロックから取得し,タイムスタンプの値が指定した値で割りきれる値(余りが0)になるまで待ちます。したがって、この関数が最初に呼び出されたときの待機時間は、使用しているコンピューターの絶対時間に依存してしまいます。
例えば、ループが始めて実行されたときの内部クロックが1072005であった場合、最初の反復は内部クロックが1075000のときに起こります、この場合実際の待機時間は2995ミリ秒ということになります。
ループの反復は一度目で調整されますので、それ以降の反復は設定した時間だけ待機することになります。したがって、はじめのループをダミーループにすることで、それ以降の全てのループのタイミングを同じにすることができます。
関連リンク: 技術データベース 2G27ANEW:
"Wait Until Next ms Multiple"関数は一番最初のループの待ち時間を正確に刻むことができません
添付:
報告日時: 12/12/2003
最終更新日: 09/23/2005
ドキュメントID: 34B2NDO0
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.