タイミングストラクチャの設定を構成する (Real-Time、Windows)
- 更新日2025-08-27
- 11分で読める
タイミングストラクチャの構成ダイアログボックスを使用して、タイミングストラクチャの期限、タイムアウト、セカンダリタイミングソースなどの、上級設定を構成することができます。タイミングループを構成、タイミングシーケンスを構成、フレーム付きタイミングループを構成ダイアログボックスを表示するには、入力ノードをダブルクリックするか、入力ノードを右クリックしてショートカットメニューから入力ノードを構成を選択します。
期限を設定する
期限は、フレームの開始に対して、実行を完了するサブダイアグラムまたはフレームの実行の特定時間を割り当てます。期限は、サブダイアグラムの実行に対して時間制限リファレンスを設定します。フレームが期限より前に完了しない場合、次のフレームの左データノードは遅れて終了?出力にTRUEを返して、実行を継続します。フレームのタイミングソースとして同じ単位で期限値を指定します。
以下の例では、タイミングシーケンスストラクチャの最初のフレームの期限が50に構成されています。期限は、フレームが1kHzクロックの50ティック、または50ミリ秒の前に実行を完了することを指定しています。ただし、フレーム内に60ミリ秒の待機で呼び出すVIがあるため、フレーム内のコードは完了するのに60ミリ秒かかります。2番目のフレームの遅れて終了?出力は、フレームの実行が指定された期限内に終了しなかったため、TRUEを返します。
タイムアウトを設定する
タイムアウトは、フレームが実行を待機することができる最大時間 (ミリ秒) を指定します。タイムアウト値は、反復の開始または前のフレームの終了に相対しています。サブダイアグラムの実行が指定したタイムアウト値よりも前に開始しない場合、タイミングループはそのフレームの左データノードの起動理由出力にタイムアウトを返します。
タイミングストラクチャの制御、タイムアウトの指定には、デジタルエッジカウンタやタスクソースからの信号など、いくつかの種類のNI-DAQmxタイミングソースを使用できます。以下の例では、タイミングシーケンスストラクチャの2番目のフレームは、「DAQmxタイミングソースを作成」VIが外部デバイスからパルスを受け取ったときに実行されます。外部デバイスは、パルスを適切な条件下で50 msごとに送信しますが、パルスタイミングは変化する可能性があります。2番目フレームのタイムアウト値が60ミリ秒であることは、最初のフレームが完了した後に60ミリ秒だけ開始を待機することを意味します。2番目のフレームが60ミリ秒の前に開始しない場合、ストラクチャは残りの反復をタイミングを無視して実行し続け、2番目のフレームは左データノードの起動理由にタイムアウトを返します。
タイムアウトがタイミングストラクチャ内で発生すると、ストラクチャは残りの反復をタイミングを無視して実行します。タイミングストラクチャは、残りのフレームの起動理由出力にタイムアウトを返します。残りのフレームによって提供されたタイミング情報は、タイムアウトが発生したフレームのタイミング情報と等しくなります。タイミングループが他の反復を完了する必要がある場合は、ループはタイムアウトが発生したフレームで停止し、元のタイムアウトイベントを待機します。
タイミングストラクチャの最初のフレームのデフォルトのタイムアウト値は-1で、サブダイアグラムまたはフレームの開始を無限に待機することを示しています。他のフレームのデフォルトのタイムアウト値は0で、前のフレームのタイムアウト値から変更がないことを示します。
オフセットを設定する
オフセットは、タイミングストラクチャの開始、ストラクチャが最初のサブダイアグラムまたはフレームの実行開始を待機する時間の長さに相対する時間の長さです。オフセットは、ストラクチャのタイミングソースの絶対時間単位で定義されます。
また、オフセットを使用して両方のストラクチャに同じタイミングソースを設定し、異なるタイミングストラクチャの位相を調整できます。以下のブロックダイアグラムのタイミングループは、タイミングソースのトリガ後に500ミリ秒待機してから反復を実行するよう、同じ1kHzのタイミングソースを使用し、オフセット (t0) 値は500にしてあります。
タイミングループの最後のフレームで、右データノードを使用して、ループの後続の反復のオフセットを動的に変更します。ただし、後続の反復のオフセットを動的に変更する場合、値を右データノードのモード入力に値を配線することによって、モードを指定する必要があります。
| メモ 右データノードを使用してオフセットを変更する場合は、変更なしをモードに配線することはできません。モード値を選択する必要があります。 |
タイミングループのオフセットを設定するサンプルは、labview\examples\Structures\Timed LoopディレクトリにあるTimed Loop Offset VIを参照してください。
プロセッサを割り当てる
デフォルトでは、タイミングストラクチャの実行処理に使用可能なプロセッサが自動的に割り当てられます。ただし、更なる実行制御に複数のプロセッサを介し、タイミングストラクチャのバランスを手動でロードできます。
タイミングストラクチャを処理するプロセッサを手動で構成するには、タイミングループを構成、フレーム付きタイミングループを構成、タイミングシーケンスを構成、次のフレームタイミングを構成、次の反復を構成のいずれかのダイアログボックスのプロセッサ割り当てセクションで、モードプルダウンメニューから手動を選択します。また、0~255の間の整数を入力する必要があります。ここで、0はシステムで最初に使用可能なプロセッサを示し、プロセッサフィールドでは、実行処理に使用するプロセッサを指定します。指定範囲外の数値を入力しようとすると、その数値は0~255の間に強制されます。プロセッサの数を超える数値を入力すると、ランタイムエラーが発生し、タイミングストラクチャが実行されません。
モードプルダウンメニューから自動を選択する場合、ストラクチャに対してプロセッサが自動的に割り当てられ、プロセッサ値は自動的に-2に設定されます。フレームまたは次に続く反復にモードプルダウンメニューから変更なしを選択する場合、以前のフレームや反復を処理した同じプロセッサが使用され、プロセッサ値は自動的に-1に設定されます。
また、ストラクチャまたはタイミングストラクチャのフレームの入力ノードのプロセッサ入力に値を配線すると、プロセッサの割り当てを構成できます。
手動でプロセッサを割り当ててタイミングストラクチャのパフォーマンスを最適化する方法の詳細については、リアルタイムアプリケーションをマルチCPUシステム用に最適化するを参照してください。
セカンダリタイミングソースを設定する
セカンダリタイミングソースを使用して、ストラクチャ自体とは異なるクロックソースで、タイミングストラクチャのサブダイアグラムまたはフレームを制御することができます。タイミングループを構成、タイミングシーケンスを構成、またはフレーム付きタイミングループを構成ダイアログボックスのフレームタイミングソースセクションを使用して、セカンダリタイミングソースを選択します。
タイミングストラクチャは、以下のセカンダリタイミングソースをサポートしています。
- ループのタイミングソースを使用またはシーケンス―タイミングストラクチャを、同じタイミングソースをフレームのタイミングソースとして使用します。
- 以下の内部ソースを使用―別の内部タイミングソースを、フレームのタイミングソースとして使用します。
- 1kHzクロック<ストラクチャ開始時にリセット>―1kHzクロックに似ているタイミングソースで、タイミングストラクチャの各反復で0にリセットされます。
- 1 MHzクロック<ストラクチャ開始時にリセット>―1 MHzクロックに似ているタイミングソースで、タイミングストラクチャの各反復で0にリセットされます。
タイミングストラクチャでの絶対時間と相対時間
指定タイミングソースはタイミングストラクチャの実行を管理します。ただし、すべてのタイミングストラクチャの構成オプションがタイミングソースの絶対値を参照するわけではありません。フレーム付きタイミングループおよびフレーム付きタイミングシーケンスでは、構成オプションの一部が、以前のフレームや現在のフレームのタイミングと相対します。フレーム実行の開始または終了を参照するオプションは相対時間を使用します。これに対して、タイミングソースを参照するオプションは絶対時間を使用します。
タイミングストラクチャでは、オフセットは絶対時間で管理され、開始予定、終了予定、実際の開始、実際の終了のような出力は、フレームと反復のタイミングについて、絶対時間の単位で計算されます。各フレームの開始時間、期限、タイムアウトは相対時間で管理されています。開始時間とタイムアウトは以前のフレームの実行開始に相対し、期限は現在のフレームの開始に相対します。
以下のブロックダイアグラムでは、1 kHzクロックで管理されるフレーム付きタイミングループには、1000ミリ秒の周期と100ミリ秒のオフセットが設定されています。オフセットは絶対時間で管理されているため、ループの実行が完了するまで、タイミングソースクロックが100ミリ秒、1100ミリ秒、2100ミリ秒、3100ミリ秒などに達するとループの反復が行われます。
| メモ 遅延するタイミングループは、タイミングループのモードによって、絶対時間または相対時間を使用できます。 |
| 1 | オフセット | 絶対時間―ループのタイミングソースを参照 |
| 2 | 期限 | 相対時間―2番目のフレームの開始を参照 |
| 3 | 開始 | 相対時間―最初のフレームの開始を参照 |
| 4 | タイムアウト | 相対時間―最後のフレームの開始を参照 |
タイミングループの2番目のフレームには75ミリ秒の開始時間が設定されています。開始時間は以前のフレームの実行開始に相対するため、フレーム実行は、最初のフレームの実行が開始された後、75ミリ秒よりも早く開始されることはありません。タイミングソースにより管理された絶対時間に従って、2番目のフレーム実行は、タイミングソースクロックで最初のフレームが100ミリで開始された後、75ミリ秒よりも早く開始されることはないため、2番目のフレームの開始時間は最初の反復で175ミリ秒です。
また、このフレームには2000ミリ秒のタイムアウト入力が設定されています。タイムアウトは、以前のフレームの実行開始後、1つのフレームの開始に対する最長待機時間を確立します。2番目のフレームが、最初のフレームの実行開始から2000ミリ秒以内に実行開始されない場合、残りの反復はタイミングを無視して実行され、左データノードの起動理由出力にタイムアウトが返されます。2番目のフレームの実行開始が、タイムアウト経過の2000ミリ秒より前に行われる場合、150ミリ秒の期限には、フレームが実行に費やす時間に制限が設けられます。2番目のフレームが実行開始されるタイミングポイントから、フレームが遅れて終了表示器のTRUE値を出力する前に、150ミリ秒を渡すことができます。