ループタイマ
- 更新日2025-01-28
- 4分で読める
ループ反復間でカウントで指定された値だけ待機します。この関数をループ内で呼び出して、ループの実行レートを制御できます。ループ内の論理実行が指定の間隔より長くかかった場合など、実行インスタンスがスキップされると、「ループタイマ」Express VIはすぐに値を返し、後続の呼び出し用に新しいリファレンスタイムスタンプを確立します。「ループタイマ」Express VIで実行レートを管理するには、「ループタイマ」Express VIをフラットシーケンスストラクチャまたはスタックシーケンスストラクチャの最初のフレームに配置して、コードの残りを後に続くフレームに入れます。
「ループタイマ」Express VIは、「次のミリ秒倍数まで待機」関数 (ミリ秒倍数に配線された値の倍数で起動する) とは異なります。
実行中に、「サンプリングレートからループ時間に変換」VIを使用して、クロックレートおよびサンプリングレートを「ループタイマ」Express VIに適切なカウントに変換できます。

ダイアログボックスオプション
| オプション | 説明 |
|---|---|
| カウンタ単位 | VIがカウンタに使用する時間の単位。 |
| 内部カウンタのサイズ | タイマが記録可能な最大時間を指定します。FPGAで領域を節約するには、FPGA VIで可能な最小の内部カウンタのサイズを使用します。 |
入力/出力
カウント (ティック)
—
ループの反復間の時間を指定します。
ティックカウント (ティック)
—
VIの起動時に、自走カウンタの値を返します。自走カウンタは、構成ダイアログボックスで指定した内部カウンタのサイズの最大値に達するとゼロに戻ります。 |
ループ内では「ループタイマ」Express VIが最初に実行され、現在の時間を記録します。「ループタイマ」Express VIの次の実行時には、初回実行で記録した時間にカウントを加算し、初回の記録時間からカウントで指定された時間が経過するまで待機します。「ループタイマ」Express VIは、内部クロックの整数値全体のアップデートのみでカウントが経過したかどうかを確認します。そのため、この関数がループの実行時間を長くする可能性があります。この問題を解決するには、カウンタ単位をティックに設定します。この変更は、内部クロックアップデートの周波数を高めることで、実行時間を短縮できる場合があります。
「ループタイマ」Express VIは、FPGA VIで最初に呼び出されたときは実行を待機しません。「ループタイマ」Express VIをループ内に配置してループ開始時にすぐ実行されるようにすると、ループ内でループタイマと並行するコードは初回の時間からカウントの時間が経過するまでに2回実行されてしまいます。カウント時間の経過前にコードが2回実行されないようにするには、フラットシーケンスストラクチャまたはスタックシーケンスストラクチャを使用し、最初のフレームに「ループタイマ」Express VIを配置し、残りのコードを後続のフレームに配置します。これにより、初回実行とその後の反復でコードが適切なタイミングで実行されます。
「ループタイマ」Express VIをネストされたストラクチャや連続実行モードによって繰り返し呼び出す場合、タイミングは各実行でリセットされません。「ループタイマ」Express VIは、時間を初回呼び出しから累積して記録します。
カウント (ティック)
—
ティックカウント (ティック)
—