タイミングループおよびフレーム付きタイミングループを構成する(Real-Time、Windows)



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ
LabVIEW 2020ヘルプ

タイミングループの実行方法は、タイミングループを構成ダイアログボックスまたはフレーム付きタイミングループを構成ダイアログボックスを使用して構成します。これらのダイアログボックスを表示するには、入力ノードをダブルクリックするかノードを右クリックして、ショートカットメニューから入力ノードを構成を選択します。これらのダイアログボックスを使用して、タイミングソースを指定周期の設定、そして上級オプションを構成することができます。

入力ノードにデータを配線してタイミングループのオプションを設定することもできます。デフォルトでは、タイミングループの入力ノードは、使用できるすべての入力端子を表示しません。入力ノードのサイズを変更するか、ノードを右クリックしてショートカットメニューを使用し、非表示の端子を表示することができます。

タイミングループを使用する上でのヒントとテクニック

以下の表は、タイミングループの使用についての詳細を記載しています。

  • タイミングループは、Whileループと異なり、条件端子を配線する必要がありません。
  • また、値を右データノードに配線して、次のループ反復のオプションを動的に構成することもできます。
  • タイミングループにシフトレジスタを追加することにより、現在の反復から次の反復にデータを渡すことができます。
  • 予期しないタイミング動作を回避するため、タイムクリティカルな優先度で実行するように構成されたVIとタイミングループを同じブロックダイアグラムに配置しないでください。

フレーム付きタイミングループを使用する上でのヒントとテクニック

以下の表は、フレーム付きタイミングループの使用についての詳細を記載しています。

  • 入力ノードにデータを配線することによりフレーム付きタイミングループを構成できます。もしくは、入力ノードを右クリックしてショートカットメニューから入力ノードを構成を選択し、表示されたフレーム付きタイミングループを構成ダイアログボックスでオプションの値を入力できます。
  • ストラクチャの枠を右クリックして、フレームの追加削除、および結合を行います。
  • 各フレームを一回のみ実行する場合、タイミングループストラクチャ枠を右クリックして、ショートカットメニューからタイミングシーケンスと置換を選択します。

タイミングループを使用するサンプルについては、labview\examples\Structures\Timed Loop\Timed Loop.lvprojを参照してください。

次のフレームを構成する

次のフレームタイミングを構成ダイアログボックスを表示するには、現在のフレームの右データノードをダブルクリックするか、ノードを右クリックしてショートカットメニューから入力ノードを構成を選択します。このダイアログボックスを使用して、次のフレームの開始時間、優先度期限、およびタイムアウトを設定できます。

開始時間は、次のフレームを実行する時間を指定します。このとき、前のフレームの開始に相対する開始時間の値を、フレームタイミングソースの絶対単位で指定する必要があります。開始テキストボックスに値を入力して、開始時間を指定します。

また、フレームの右データノードの入力端子を使用して、タイミングループの次の反復のオプションを動的に構成、もしくは次のフレームのオプションを動的に構成することができます。デフォルトでは、タイミングループの右データノードは、使用できるすべての入力端子を表示しません。右データノードのサイズを変更するか、ノードを右クリックしてショートカットメニューを使用し、非表示の端子を表示することができます。

タイミングループの周期を設定する

周期は、ストラクチャのタイミングソースの絶対単位で指定されたタイミングループの反復間の時間の長さです。

以下のブロックダイアグラムのタイミングループは、デフォルトの1kHzタイミングソースを使用します。ループAの周期(dt)は1000ミリ秒、ループBは2000ミリ秒です。つまり、ループAは1秒に1回、ループBは2秒に1回実行します。両方のタイミングループは、6回の反復の後で実行を停止します。ループAは6秒後に実行を停止し、ループBは12秒後に実行を停止します。

タイミングループのサブダイアグラムまたはフレーム付きタイミングループのサブダイアグラムは、各反復に指定された周期より前に実行を完了する必要があります。1つまたは複数のサブダイアグラムが指定の周期よりも前に実行を完了しない場合、タイミングループはTRUEを出力ノードの遅れて終了? [i-1]出力、または次の反復の最初のフレームの左データノードの遅れて終了? [i-1]出力に返します。

タイミングループのサブダイアグラム、もしくはフレーム付きタイミングループのサブダイアグラムが、ループの周期より前に実行を完了しない場合は、タイミングループはスリープ状態になり、他のコードまたはストラクチャがブロックダイアグラムで実行されることを許可します。

メモ  タイミングループの周期を0に設定しないでください。タイミングループの周期を0に設定すると、アプリケーションは予期しない動作をするため、ナショナルインスツルメンツはそのようなアプリケーションをサポートしません。タイミングループの優先実行機能と組み合わせて、できるだけ高速に実行されるループが必要な場合は、タイミングシーケンスストラクチャの中でWhileループを使用してください。

タイミングループのモードを設定する

タイミングループの反復は、指定した時間の後で実行されることが時々あります。ループがこの遅れた実行をどのように処理するかは、タイミングループのモードによって決まります。タイミングループを構成またはフレーム付きタイミングループを構成ダイアログボックスのループが遅れた場合の処理セクションのオプションを使用して、タイミングループがループが遅れた場合の処理に使用するモードを指定します。入力ノードのモード入力を使用してタイミングループのモードを指定することもできます。

タイミングループの遅れた実行は、以下のように処理することができます。

  • LabVIEWを使用すると、確立した元のスケジュールでの実行に調整することができます。
  • LabVIEWは、現在の時間から開始される新しいスケジュールを定義することができます。
  • タイミングループは実行し損なったループを処理することができます。
  • タイミングループは実行し損なった反復を飛ばすことができます。

たとえば、タイミングループの周期を100ミリ秒、オフセットを30ミリ秒に設定すると、ループの最初の反復は、最初のタイミングソースが実行を開始した後30ミリ秒後に実行し、その後は100ミリ秒間隔の130ミリ秒、230ミリ秒、330ミリ秒で実行されます。ところが、タイミングループの最初の実行は240ミリ秒経過してから行われる場合があります。他のタイミングループまたはハードウェアデバイスが指定したスケジュールで既に実行している可能性があるため、遅れたタイミングループを既に実行しているグローバルスケジュールに合わせて調整できます。つまり、タイミングループは指定したスケジュールにできるだけ早く合わせることが必要です。この場合、次のタイミングループの反復は330ミリ秒で実行され、その後100ミリ秒間隔430ミリ秒、530ミリ秒...で実行が継続されます。タイミングループを他のタイミングループやハードウェアデバイスに調整することが重要でない場合は、タイミングループは即座に実行でき、また、現在の時刻を実際のオフセットとして使用できます。この場合、その後に続くループの反復は240ミリ秒、340ミリ秒、440ミリ秒で実行されます。

タイミングループが遅れると、他のタイミングループやハードウェアデバイスが生成するデータを逸する可能性があります。たとえば、タイミングループが2回の反復を実行し損ない、現在の周期からのデータを逸した場合、バッファが実行し損ねた反復からのデータを保持できます。指定したスケジュールに合わせる前に、逸したデータを処理するようにタイミングループを構成できます。ただし、タイミングループが逸した反復を処理することによってジッタが生じます。ジッタとは、ループサイクル時間と指定時間との時間差のことです。逸したデータを処理しない場合には、タイミングループは、ループの反復で受け取らなかったバッファにある古いデータを無視し、次の周期および後続の反復で使用可能なデータなどの最新のデータのみを処理することができます。

構成ダイアログボックスを使用してモードを構成する

デフォルトでは、タイミングループは、実行されなかった反復の間に生成されたデータをすべて破棄し、元のスケジュールを保持します。このモード設定の表示には、入力ノードのモード入力のアイコンは、Discard(破棄)のD、およびMaintain(保持)のMの文字が付いて表示されます。逸した、または遅れたループの反復によって生成されたデータを処理するには、タイミングループを構成またはフレーム付きタイミングループを構成ダイアログボックスの間に合わなかった周期を無視チェックボックスからチェックマークを外します。このモード設定の表示には、入力モードのモード入力のアイコンは、Process(処理)のPの文字が付いて表示されます。タイミングループの最初の反復に基いた新しいスケジュールで実行するようにタイミングループを構成するには、タイミングループを構成またはフレーム付きタイミングループを構成ダイアログボックスの元の位相を保持チェックボックスからチェックマークを外します。

入力ノードを使用してモードを構成する

入力ノードのモード入力を使用して、タイミングループのモードを構成します。モード入力を右クリックし、ショートカットメニューから作成→定数を選択するか、作成→制御器を選択し、列挙定数または制御器を作成します。この定数または制御器で、モードを選択できます。

プログラム的にタイミングループのモードを変更する、またはタイミングループを構成ダイアログボックスでモードの構成を保持するには、入力ノードのモード入力を使用します。列挙定数または制御器で変更なしを選択して、現在のモード構成を保持するか、タイミングループの遅れた反復または実行し損なった反復を処理するオプションを選択します。

タイミングループのモードを設定するサンプルについては、labview\examples\Structures\Timed LoopディレクトリにあるTimed Loop Mode VIを参照してください。



「タイミングストラクチャ」ホーム



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

役に立たなかった