タイミングループ
- 更新日2025-07-30
- 18分で読める
指定する周期で、1つまたは複数のサブダイアグラム、フレーム、またはループの各反復を連続的に実行します。マルチレートタイミング機能、正確なタイミング、ループ実行時のフィードバック、ダイナミックに変化するタイミング特性、または複数のレベルの実行優先度を含むVIを開発する場合、タイミングループを使用します。ストラクチャの枠線を右クリックして、フレームの追加、削除、挿入および結合を行います。

タイミングループの構成要素
反復 (i) 端子は、最初の反復がゼロである現在のループ反復カウントを提供します。反復カウントが2,147,483,647または231-1を超える場合、それ以降のすべての反復では、反復端子は2,147,483,647の状態のまま残ります。2,147,483,647よりも大きいカウントを維持する必要がある場合、より大きい整数を含むシフトレジスタを使用できます。
タイミングループには、上記の図に示すように、各フレームの (1) 入力ノード、(4) 出力ノード、(2) 左データノード、(3) 右データノードがあります。デフォルトでは、タイミングループのノードは、すべての入出力端子を表示しません。ノードのサイズを変更するか、ノードを右クリックしてショートカットメニューを使用し、ノード端子を表示できます。各ノードを表示するには、タイミングループの境界を右クリックしてショートカットメニューから左データノードを表示または右データノードを表示を選択します。
入力ノードをダブルクリックするか、ストラクチャを右クリックして、タイミングループを構成を選択してタイミングループを構成を表示し、タイミングループを構成できます。タイミングループを構成ダイアログボックスに入力する値は、入力ノードの入力端子の横に表示されます。
以下の表は、タイミングループのノード端子を示します。タイミングループには、タイミングソースの開始に関連する値を使用するノードが多く含まれています。同期を指定しない場合、タイミングソースの開始時間は、そのタイミングソースを使用する最初のループの開始時間です。複数のループが同期される場合、タイミングソースの開始時間は、最後のループが実行開始となる時間です。
(1) 入力ノード
![]() | 期限 | タイミングループが反復を完了しなければならない時間を指定します。期限の値は、タイミングソースの開始に相対しており、タイミングソースの単位で指定されます。-1の値は、期限なしを意味します。この入力に値を指定しないと、ストラクチャは期限値として周期の値を使用します。 |
![]() | エラー | ストラクチャを介してエラーを伝達します。エラーがエラー条件を受け取ると、タイミングループは実行されません。 |
![]() | モード | タイミングループが遅れた実行をどのように処理するかを指定します。No change、Process missed periods maintaining original phase、Process missed periods ignoring original phase、Discard missed periods maintaining original phase、およびDiscard missed periods ignoring original phaseの5つのモードが使用できます。 |
![]() | ストラクチャ名 | タイミングループの名前を指定します。 |
![]() | オフセット | 実行開始までタイミングループが待機する時間を指定します。オフセット値は、タイミングソースの開始に相対しており、タイミングソースの単位で指定されます。 |
![]() | 周期 | ソース名で指定したタイミングソースと同じ単位でタイミングループの周期を指定します。 メモ タイミングループの周期を0に設定しないでください。タイミングループの周期を0に設定すると、アプリケーションは予期しない動作をするため、NIはそのようなアプリケーションをサポートしません。タイミングループの優先実行機能と組み合わせて、できるだけ高速に実行されるループが必要な場合は、タイミングシーケンスストラクチャの中でWhileループを使用してください。 |
![]() | 優先度 | タイミングループの実行の優先度を指定します。タイミングストラクチャの優先度は、ブロックダイアグラムの他のオブジェクトと比較して、ストラクチャがブロックダイアグラムで実行するタイミングを指定します。タイミングストラクチャの優先度が高いほど、他のタイミングストラクチャと比べて早くストラクチャが実行されます。優先度入力の値は、1~65,535の正の整数である必要があります。 |
![]() | Processor | 実行を処理するプロセッサを指定します。デフォルトは-2で、プロセッサが自動的に割り当てられます。プロセッサを手動で割り当てるには、0~255の間の数値を入力します。0は最初のプロセッサを示します。プロセッサの数を超える数値を入力すると、ランタイムエラーが発生し、タイミングストラクチャが実行されません。 |
![]() | ソース名 | ストラクチャの制御に使用するタイミングソースの名前を指定します。タイミングソースは「タイミングソースを作成」VIまたはタイミングループを構成ダイアログボックスをからの選択肢を使用して、ブロックダイアグラムで作成する必要があります。 |
![]() | タイムアウト | 実行開始までタイミングループが待機する最大時間を指定します。デフォルトは-1で、次のフレームに対してタイムアウトは指定されません。タイムアウト値は、タイミングソースの開始または前の反復の終了に相対しており、フレームタイミングソースの単位で指定されます。 |
(2) 左データノード
| 実際の終了[f-1] (単一フレームのタイミングループでは無効) | 前回のフレーム (f-1) の実際の終了時間を返します。実際の終了値は、タイミングソースの開始時間に相対しており、タイミングソースの単位で指定されます。 |
| 実際の終了[i-1] (最初のフレームのみ) | 前回の反復 (i-1) の実際の終了時間を返します。実際の終了値は、タイミングソースの開始時間に相対しており、タイミングソースの単位で指定されます。 |
| 実際の開始[f-1] (単一フレームのタイミングループでは無効) | 現在のフレーム (f) の実際の開始時間を返します。実際の開始値は、タイミングソースの開始時間に相対しており、フレームタイミングソースの単位で指定されます。 |
| 実際の開始[i] (最初のフレームのみ) | 現在の反復 (i) の実際の開始時間を返します。実際の開始値は、タイミングソースの開始時間に相対しており、タイミングソースの単位で指定されます。 |
| 期限 | 現在のフレームの期限の値を返します。 |
| エラー | ストラクチャを介してエラーを伝達します。 |
| 終了予定[f-1] (単一フレームのタイミングループでは無効) | 前回のフレーム (f-1) の終了予定時間を返します。終了予定値は、タイミングソースの開始時間に相対しており、タイミングソースの単位で指定されます。終了予定(f-1)は、次の周期の開始と同じです。 |
| 終了予定[i-1] (最初のフレームのみ) | 前回の反復 (i-1) の終了予定時間を返します。終了予定値は、タイミングソースの開始時間に相対しており、タイミングソースの単位で指定されます。 |
| 開始予定[f] | 現在のフレーム (f) の開始予定時間を返します。開始予定値は、タイミングソースの開始時間に相対しており、フレームタイミングソースの単位で指定されます。 |
| 開始予定[i] (最初のフレームのみ) | 現在の反復 (i) の開始予定時間を返します。開始予定値は、タイミングソースの開始時間に相対しており、タイミングソースの単位で指定されます。 |
| 遅れて終了?[f-1] | 指定された期限内にタイミングループが前の反復を完了しない場合にTRUEを返します。 |
| 遅れて終了?[i-1] (最初のフレームのみ) | 指定された期限内に、タイミングループが前の反復を完了しない場合はTRUEを返します。 |
| フレーム継続時間 (単一フレームのタイミングループでは無効) | 前回のフレームの継続時間を返します。フレーム持続時間はフレームの開始に関連していて、フレームタイミングソースの単位で指定されます。 |
| グローバル終了時間 | 前回の反復またはフレームの終了時間をナノ秒単位で返します。タイミングループが絶対タイミングソースを使用する場合、グローバル終了時間はタイムスタンプを返します。そうしない場合、グローバル終了時間は、64ビット整数を返します。タイミングループがRTターゲットで実行される場合、グローバル終了時間はターゲットのシステム時刻を基準とし、外部クロックと同期させることができます。タイミングループがWindowsで実行される場合、グローバル終了時間はWindowsのシステム時間を基準とします。 |
| グローバル開始時間 | 現在の反復またはフレームの開始時間をナノ秒単位で返します。タイミングループが絶対タイミングソースを使用する場合、グローバル開始時間はタイムスタンプを返します。そうしない場合、グローバル開始時間は、64ビット整数を返します。タイミングループがRTターゲットで実行される場合、グローバル開始時間はターゲットのシステム時刻を基準とし、外部クロックと同期させることができます。タイミングループがWindowsで実行される場合、グローバル開始時間はWindowsのシステム時間を基準とします。 |
| 反復継続時間 (最初のフレームのみ) | ナノ秒単位で前回の反復継続時間のタイムスタンプを返します。反復継続時間の値は反復の開始に関連していて、タイミングソースの単位で指定されます。 |
| モード (最初のフレームのみ) | 現在の反復のモードの値を返します。 |
| オフセット (最初のフレームのみ) | 現在の反復開始のオフセット値を返します。 |
| 周期 (最初のフレームのみ) | 現在のフレームの周期の値を返します。 |
| 優先度 | 現在のフレームの優先度の値を返します。 |
| Processor | プロセッサを割り当てるように設定している場合、実行処理に割り当てられたプロセッサを指定します。それ以外の場合、-2です。これはLabVIEWが自動的にプロセッサを割り当てることを示します。 |
| 開始 (最初のフレームでは無効) | 現在のフレームの開始の値を返します。 |
| タイムアウト | 現在のフレームのタイムアウトの値を返します。 |
| 起動理由 | 現在の反復の実行開始に関する理由を持つ列挙体を返します。有効な値は、0: Normal、1: Aborted、2: Asynchronous wakeup、3: Timing source error、4: Timed loop error、5: Timeoutです。 |
(3) 右データノード
![]() | 期限 | タイミングループが次のフレームを完了する必要がある場合にその時間を指定します。期限の値は次のフレーム開始に関連していて、タイミングソースの単位で指定されます。デフォルト値は-1 (変更なし) です。 |
![]() | エラー | タイミングループのサブダイアグラムからエラーまたは警告を伝達します。エラーが、エラー状態を受け取ると、タイミングループはタイミングを無視して次のフレームを実行します。エラーが最後のフレームでエラー条件を受け取ると、ストラクチャはタイミングを無視した現在の反復の実行を終了し、ループを出て、出力ノードのエラー状態を返します。 |
![]() | モード (最後のフレームのみ) | タイミングループの次の反復のモードを指定します。No change、Process missed periods maintaining original phase、Process missed periods ignoring original phase、Discard missed periods maintaining original phase、およびDiscard missed periods ignoring original phaseの5つのモードが使用できます。 |
![]() | オフセット (最後のフレームのみ) | 実行開始まで次の反復が待機する時間を指定します。期限の値は次の反復開始に関連していて、タイミングソースの単位で指定されます。デフォルト値は-1 (変更なし) です。オフセットを次の反復に設定する場合は、新規のモード値を設定する必要があります。 |
![]() | 周期 (最後のフレームのみ) | タイミングソースの単位でタイミングループの次の反復の周期を指定します。デフォルト値は-1 (変更なし) です。 メモ タイミングループの周期を0に設定しないでください。タイミングループの周期を0に設定すると、アプリケーションは予期しない動作をするため、NIはそのようなアプリケーションをサポートしません。タイミングループの優先実行機能と組み合わせて、できるだけ高速に実行されるループが必要な場合は、タイミングシーケンスストラクチャの中でWhileループを使用してください。 |
![]() | 優先度 | タイミングループの次の反復の優先度を指定します。優先度は、ブロックダイアグラムの他のオブジェクトに対して、ブロックダイアグラムで次の反復を実行するタイミングを指定します。タイミングストラクチャの優先度が高いほど、他のタイミングストラクチャと比べて早くストラクチャが実行されます。優先度入力の値は、1~65,535の正の整数である必要があります。 |
![]() | Processor | 実行を処理するプロセッサを指定します。デフォルトは、-1です。これは、LabVIEWが入力ノードで指定したプロセッサを同じプロセッサを割り当てることを示します。プロセッサを割り当てるには-2を入力します。プロセッサを手動で割り当てるには、0~255の間の数値を入力してください。0は使用可能な最初のプロセッサです。プロセッサの数を超える数値を入力すると、ランタイムエラーが発生し、タイミングストラクチャが実行されません。 |
![]() | 開始 (最後のフレームでは無効) | 実行開始まで次のフレームが待機する時間を指定します。開始値は、現在のフレームの冒頭に相対し、タイミングソースの単位で指定されます。 |
![]() | タイムアウト | 実行開始まで次の反復が待機する最大時間を指定します。デフォルトは-1で、次の反復に対してタイムアウトは指定されません。タイムアウトの値は前回の反復終了に関連していて、フレームタイミングソースの単位で指定されます。 |
(4) 出力ノード
| 実際の終了[f-1] (単一フレームのタイミングループでは無効) | 前回のフレーム (f-1) の実際の終了時間を返します。実際の終了値は、タイミングソースの開始時間に相対しており、タイミングソースの単位で指定されます。 |
| 実際の終了[i-1] | 前回の反復 (i-1) の実際の終了時間を返します。実際の終了値は、タイミングソースの開始時間に相対しており、タイミングソースの単位で指定されます。 |
| エラー | タイミングループで受け取ったエラーを伝達し、サブダイアグラムからエラーを返します。 |
| 終了予定[f-1] (単一フレームのタイミングループでは無効) | 前回のフレーム (f-1) の終了予定時間を返します。フレームタイミングソースが反復の最初にリセットされない場合、終了予定値はタイミングソースに相対します。終了予定の値はタイミングソースの単位で指定されます。終了予定(f-1)は、次の周期の開始と同じです。 |
| 終了予定[i-1] | 前回の反復 (i-1) の終了予定時間を返します。フレームタイミングソースが反復の最初にリセットされない場合、終了予定値はタイミングソースに相対します。終了予定の値はタイミングソースの単位で指定されます。 |
| 遅れて終了?[f-1] (単一フレームのタイミングループでは無効) | 指定された期限内にタイミングループが前の反復を完了しない場合にTRUEを返します。 |
| 遅れて終了[i-1] | 指定された期限内に、タイミングループが前の反復を完了しない場合はTRUEを返します。 |
| フレーム継続時間 (単一フレームのタイミングループでは無効) | 前回のフレームの継続時間を返します。フレーム持続時間はフレームの開始に関連していて、フレームタイミングソースの単位で指定されます。 |
| グローバル終了時間 | 前回の反復またはフレームの終了時間をナノ秒単位で返します。タイミングループが絶対タイミングソースを使用する場合、グローバル終了時間はタイムスタンプを返します。そうしない場合、グローバル終了時間は、64ビット整数を返します。タイミングループがRTターゲットで実行される場合、グローバル終了時間はターゲットのシステム時刻を基準とし、外部クロックと同期させることができます。タイミングループがWindowsで実行される場合、グローバル終了時間はWindowsのシステム時間を基準とします。 |
| 反復持続時間 | 前回の反復実行時間のタイムスタンプを返します。反復持続時間は反復の開始に関連していて、タイミングソースの単位で指定されます。 |
| Processor | プロセッサを割り当てるように設定している場合、実行処理に割り当てられたプロセッサを指定します。それ以外の場合、-2です。これはLabVIEWが自動的にプロセッサを割り当てることを示します。 |
タイミングループの使用および構成の詳細については、「タイミングループを構成する」トピックを参照してください。
タイミングループをWhileループに変換するには、タイミングループを右クリックして、ショートカットメニューからWhileループと置換を選択します。タイミングループをタイミングシーケンスストラクチャに変換するには、タイミングループを右クリックして、ショートカットメニューからタイミングシーケンスと置換を選択します。
Whileループと異なり、タイミングループは停止端子に接続する必要はありません。停止端子に何も接続しないと、ループは果てしなく実行されます。
FPGA VIでタイミングループを使用、構成する詳細については、タイミングループ (FPGAモジュール) トピックを参照してください。
サンプルプログラム
LabVIEWに含まれている以下のサンプルファイルを参照してください。
- labview\examples\Structures\Timed Loop\Timed Loop Offset.vi
- labview\examples\Structures\Timed Loop\Timed Loop Resettable Source Type.vi










