ループタイマ Express VI

1つ上のパレット: タイミングVI

インストールパッケージ: FPGAモジュール

ループ反復間でカウントで指定された値だけ待機します。 この関数をループ内で呼び出して、ループの実行レートを制御できます。 ループ内の論理実行が指定の間隔より長くかかった場合など、実行インスタンスがスキップされると、「ループタイマ」Express VIはすぐに値を返し、後続の呼び出し用に新しいリファレンスタイムスタンプを確立します。 「ループタイマ」Express VIで実行レートを管理するには、「ループタイマ」Express VIをフラットシーケンスストラクチャまたはスタックシーケンスストラクチャの最初のフレームに配置して、コードの残りを後に続くフレームに入れます。

「ループタイマ」Express VIは「次のミリ秒倍数まで待機」関数 (ミリ秒倍数に配線された値の倍数で起動する) とは異なります。

実行中に、「サンプルレートからループ時間に変換」VIを使用して、クロックレートおよびサンプルレートを「ループタイマ」Express VIに適切なカウントに変換できます。

詳細  

ダイアログボックスオプション
ブロックダイアグラム入力
ブロックダイアグラム出力

ダイアログボックスオプション

パラメータ説明
カウンタ単位VIがカウンタに使用する時間の単位。
  • ティック―カウンタ単位を単一クロックサイクルに設定します。その長さはVIがコンパイルされているクロックレートによって決まります。
  • µ秒ーカウンタ単位をマイクロ秒に設定します。
  • m秒―カウンタ単位をミリ秒に設定します。
内部カウンタのサイズタイマが記録可能な最大時間を指定します。 FPGAで領域を節約するには、FPGA VIで可能な最小の内部カウンタのサイズを使用します。

ブロックダイアグラム入力

パラメータ説明
カウントループの反復間の時間を指定します。

ブロックダイアグラム出力

パラメータ説明
ティックカウントVIの起動時に、自走カウンタの値を返します。 自走カウンタは、構成ダイアログボックスで指定した内部カウンタのサイズの最大値に達するとゼロに戻ります。

ループタイマの詳細

ループ内では「ループタイマ」Express VIが最初に実行され、現在の時間を記録します。 「ループタイマ」Express VIの次の実行時には、初回実行で記録した時間にカウントを加算し、初回の記録時間からカウントで指定された時間が経過するまで待機します。 「ループタイマ」Express VIは、内部クロックの整数値全体のアップデートのみでカウントが経過したかどうかを確認します。 そのため、この関数がループの実行時間を長くする可能性があります。 この問題を解決するには、カウンタ単位ティックに設定します。 この変更は、内部クロックアップデートの周波数を高めることで、実行時間を短縮に役立つ場合があります。

「ループタイマ」Express VIは、FPGA VIで最初に呼び出されたときは実行を待機しません。 「ループタイマ」Express VIをループ内に配置してループ開始時にすぐ実行されるようにすると、ループ内でループタイマと並行するコードは初回の時間からカウントの時間が経過するまでに2回実行されてしまいます。 カウント時間の経過前にコードが2回実行されないようにするには、フラットシーケンスストラクチャまたはスタックシーケンスストラクチャを使用し、最初のフレームに「ループタイマ」Express VIを配置し、残りのコードを後続のフレームに配置します。これにより、初回実行とその後の反復でコードが適切なタイミングで実行されます。

「ループタイマ」Express VIをネストされたストラクチャや連続実行モードによって繰り返し呼び出す場合、タイミングは各実行でリセットされません。 「ループタイマ」Express VIは、時間を初回呼び出しから累積して記録します。

ヒント 「ループタイマ」Express VIでループを使用する代わりに、シングルサイクルタイミングループを使用することも考慮します。


この記事は役に立ちましたか。

役に立たなかった