並列で実行している2つのループ間でデータを転送する
- 更新日2025-08-27
- 4分で読める
チャンネルワイヤは、各ループが読み書きを行うRefnumまたは変数と似た働きをします。データ通信は、Refnumまたは変数を使用する代わりに、ワイヤとして視覚的に表現されます。チャンネルワイヤは、並列した2つのコードセクションを実行順序を強制せずに接続する非同期ワイヤです。このため、2つのコードセクションの間にデータ依存性を発生させません。
以下の図は、並列で実行している2つのループ間における、チャンネルワイヤを使用したデータ転送を示したものです。書き込みループ内の書き込みエンドポイントは、チャンネルに反復端子の値を連続的に書き込みます。読み取りループ内の読み取りエンドポイントは、チャンネルからデータを連続的に読み取ります。読み取りループは、書き込みループの完了を待機せずに実行開始できます。代わりに、2つのループは並列に実行します。ユーザが書き込みループの書き込みを停止ボタンをクリックすると、書き込みエンドポイントはチャンネルへのデータ書き込みを即時に停止しますが、読み取りエンドポイントはチャンネル内の残りのデータをすべて読み取った後に停止します。
以下のリストには、前のダイアグラムについての重要な情報が記載されています。
メモ チャンネルのデータタイプが異なるために強制ドットが表示された場合やワイヤが壊れた場合は、ショートカットメニューから要素タイプに適合またはチャンネルタイプに適合を選択してデータタイプの問題を解決します。
注意とアドバイス
チャンネルワイヤをデバッグする際の注意点およびアドバイスを以下に示します。
- チャンネルワイヤをプローブする場合、デバッグウィンドウは、そのチャンネルをプローブすることを示すフラッグとしてのみ使用します。VIを実行開始すると、チャンネルプローブ用の別のウィンドウが開きます。異なるエンドポイントがデータを読み書きする間、チャンネルプローブウィンドウにチャンネルの現在の状態が表示されます。
- デバッグウィンドウでワイヤプローブが新規チャンネルで有効になったときにチャンネルを一時停止するオプションを選択すると、チャンネルプローブウィンドウが開くとすぐにチャンネルプローブが一時停止します。プログラム全体の実行の早い段階でこのオプションを選択すると、エンドポイントが実行する前にチャンネル自体を一時停止できます。チャンネル自体を一時停止すると、チャンネルにおける動作を細かく監視できます。
- チャンネルプローブウィンドウでは、一時停止、条件的一時停止、およびシングルステップなどのデバッグ機能を使用できます。デバッグのオプションは、綿密なデバッグを実現するために各チャンネルテンプレートごとにカスタマイズされています。
- 高速ストリームチャンネルではデバッグ機能を使用できません。発呼者VIでデバッグ機能が有効になっていても、高速ストリームチャンネルをプローブすることはできません。これは、高速ストリームチャンネルで高速および高効率なデータ転送を可能にするためです。ただし、デバッグ機能がチャンネルや大半の発呼者VIのパフォーマンスに与える影響は微々たるものであるため、他のテンプレートチャンネルの使用を避ける必要はありません。