フィードバックノード:ループ反復間でデータを保存する
- 更新日2025-08-27
- 3分で読める
以下に示すとおり、フィードバックノードは、ループ内のシフトレジスタに似た操作です。
フィードバックノードは、シフトレジスタと同様、ループの反復が完了するとデータを保存し、次のループ反復にそのデータを渡します。次の反復はデータを読み取り、新規値をデータに書き込み、そのデータをループを介して再び送信します。この処理はループの実行が完了するまで継続されます。
フィードバックノードが最初の実行後に再初期化を行う場合は、1つの実行から別の実行の間で各ループ反復の値は変更されません。この場合は、次のブロックダイアグラムにあるように、初期化端子をフィードバックノードに配線します。
| 1番目の実行 | 2番目の実行 | ||
|---|---|---|---|
| 反復 | 終了値 | 反復 | 終了値 |
| 0 | 3 | 0 | 3 |
| 1 | 4 | 1 | 4 |
| 2 | 5 | 2 | 5 |
| 3 | 6 | 3 | 6 |
以下に示すとおり、初期化端子に対する初期値を配線しない場合、フィードバックノードの動作は異なります。
| 1番目の実行 | 2番目の実行 | ||
|---|---|---|---|
| 反復 | 終了値 | 反復 | 終了値 |
| 0 | 1 | 0 | 5 |
| 1 | 2 | 1 | 6 |
| 2 | 3 | 2 | 7 |
| 3 | 4 | 3 | 8 |
上記のブロックダイアグラムでは、初期化端子は、最初の実行で、初期値としてデータタイプのデフォルト値0を使用し、次に続く実行ではフィードバックノードは再初期化を行いません。
ループおよびネストループで、ノードと初期化端子を分けることができますが、ノードを含む一連のネストストラクチャの外側に初期化端子を移動することはできません。また、サブVIを作成する場合、ノードと初期化端子を分けることはできません。ノードまたは初期化端子のいずれかが含まれる (ただし両方は含まれていない) ブロックダイアグラムのセクションから、サブVIの作成を試行する場合、エラーが返されます。