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と異なり,その次の待ち時間には影響しません。 |

|
|
タイマ時間(ms) |
|
|
関数選択 |
|
|
ループ処理 周期(ms) |
|
|
|
|
周期乱れ (初回を除く) |



