LabVIEWの"次のミリ秒倍数まで待機(Wait for next multiple)"関数が、最初のループでは設定した値で待機しないことがある



使用ソフトウェア:
使用ソフトウェア・バージョン: 7.0
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア:

問題: "次のミリ秒倍数まで待機(Wait for next multiple)"関数を使用してWhileループの動作タイミングを指定しています。LabVIEW Real-Time でよく起こる状況ですが、同様にWindows 環境のLabVIEWでも見られます。たとえば、この関数をWhileループの中に配置し、5,000ミリ秒の定数を「ミリ秒」パラメータに配線します。最初の反復での実際の待機時間は0ミリから5,000ミリの間のランダムな値となってしまいます。なぜ、こういった現象が起こるのでしょうか?また、修復可能でしょうか?

解決策: "次のミリ秒倍数まで待機(Wait for next multiple)"関数は、タイムスタンプをユーザーのコンピューターの内部クロックから取得しています。この関数はタイムスタンプの値を指定した値で割りきれる(余りが0)まで待ちます。したがって、プログラムが最初に実行された場合のこの関数の待機時間は使用しているコンピューターの絶対時間に依存してしまいます(例 ループが始めて実行されたときの内部クロックが1072005であった場合、最初の反復は内部クロックが1075000のときに起こります、この場合実際の待機時間は2995ミリ秒ということになります)。ループの反復は一度目で調整されますので、それ以降の反復は設定した時間を待機することになります。

関連リンク: 2g27ANEW http://digital.ni.com/public.nsf/websearch/927A0B5E48D3C37E86256B17004EAF63?OpenDocument

添付:





報告日時: 12/12/2003
最終更新日: 01/12/2004
ドキュメントID: 34B2NDO0