TimerAccuracy.vi

Wait Until Next ms Multiple関数と,Wait(ms)関数の動作を調べるVIです。タイマの時間を設定し,どちらかの関数を選択してからRunさせてください。

(1)Wait Until Next ms Multiple関数

(1-1) 最初の1ループの時間が短くなります。
(1-2) タイマ時間を変えて何回も繰り返すとわかりますが,必ずしも指定した周期では回らず,長くなったり短くなったりすることがあります。長くなるのはOSのオーバーヘッドか何かでしょう。
(1-3) 途中で短くなるのは,その直前回の処理時間が長かった場合であり,短かった回の処理は,周期的には正しいことになります。
(1-4) ですから,周波数分析などで,この関数の周期精度を完全に信用したVIを作成すると誤動作します。
(1-5) この関数を含むループ内部では,単にIndex増加器として使う場合が多いので,ループ内部だけの処理に限っていえば,周期性が保たれていなくても,結果的に正常に処理できる場合もあります。

(2)Wait(ms)関数

(2-1) 単に時間待ちの関数なので,本来周期設定には使いませんが,このVIではループ内に他の処理がほとんど無いため,ほぼ,指定したタイマ周期で動作します。
(2-2) タイマ時間を変えて何回も繰り返すとわかりますが,必ずしも指定した時間待ちではなく,長くなることがあります。これはOSのオーバーヘッドか何かでしょう。
(2-3) しかし,Wait Until Next ms Multipleと異なり,その次の待ち時間には影響しません。


フロントパネル

TimerAccuracy.vi


制御器と表示器

ci32

タイマ時間(ms)

cブール

関数選択

i1du32

ループ処理 周期(ms)

iu32

iブール

周期乱れ (初回を除く)

ブロックダイアグラム

TimerAccuracy.vi

TimerAccuracy.vi

TimerAccuracy.vi

TimerAccuracy.vi


制御器/関数のヒントに戻る