個々のモジュールでスキャンインタフェースを使用する
- 更新日2025-10-09
- 7分で読める
メモ 本コンテンツの日本語版は、便宜を図るために自動翻訳で提供されています。正確な最新情報については、英語版をご覧ください。
シャーシがFPGAインタフェースプログラミングモードである場合やスキャンインタフェースプログラミングモードをサポートしていない場合でも、サポートされている個々のモジュールについてはスキャンインタフェースを使用できる場合があります。まず、シャーシのモジュールを検出して、コンパイル済みビットファイルをシャーシにダウンロードする必要があります。NI 951xなどの高速インタフェースが必要なモジュールを使用する場合も、コンパイル済みビットファイルのダウンロードが必要となる可能性があります。FPGAのビットファイルをコンパイルするにはLabVIEW FPGAモジュールがインストールされている必要があります。
プロジェクトの設定、モジュールの検出、シャーシへのビットファイルのダウンロードが完了したら、FPGAインタフェースプログラミングモードではFPGAターゲット配下のモジュールを使用し、スキャンインタフェースプログラミングモードではReal-Timeスキャンリソース項目配下のモジュールを使用します。
LabVIEW Real-TimeモジュールおよびLabVIEW FPGAモジュールの両方がインストールされている場合、ユーザ定義I/O変数を作成して、FPGA VIとRT VI間でカスタムI/Oデータを転送できます。また、FPGA VIとRT VIのコード実行を同期することも可能です。
メモ シャーシがFPGAインタフェースプログラミングモードの場合は、Real-Timeスキャンリソース項目の下にあるモジュールを使用する前に、必ず「FPGA VIリファレンスを開く」関数を使用して、コンパイル済みビットファイルをFPGAにダウンロードする必要があります。それらのモジュールにアクセスするには、このビットファイルがFPGAで実行されていなければなりません。
ヒント 「FPGA VIリファレンスを開く」関数の実行完了から、Real-Timeスキャンリソース項目下のユーザ定義変数やモジュールが有効なデータを返すまでには、短時間の遅延が生じます。VIにユーザ定義変数がある場合、「FPGA VIリファレンスを開く」関数を実行して、エラーが返らなくなるまでループで変数を読み取ります。
メモ シャーシがFPGAインタフェースプログラミングモードの場合、スキャンインタフェースを使用すると2つのDMA FIFOが予約されてFPGA領域の一部が占有されるため、スキャンインタフェースプログラミングモードのモジュールが存在しない場合と比べてコンパイル時間が長くなります。
メモ モジュールがReal-Timeスキャンリソース項目の下にある場合は、FPGAターゲットのスリープチャネルに書き込むことはできません。
LabVIEWプロジェクトを作成する
メモ 本コンテンツの日本語版は、便宜を図るために自動翻訳で提供されています。正確な最新情報については、英語版をご覧ください。
以下の手順に従ってLabVIEWプロジェクトを設定します。
- システムを構成します。
- スキャンインタフェースモードで実行するCシリーズモジュールをReal-Timeスキャンリソース項目の下にドラッグアンドドロップします。FPGAのコードで使用するモジュールはFPGAターゲットの下に残しておきます。
LabVIEWプロジェクトエクスプローラウィンドウは、以下の図のようになります。
- スキャンインタフェースプログラミングモードのモジュール
- FPGAインタフェースプログラミングモードのモジュール
ビットファイルをダウンロードする
メモ 本コンテンツの日本語版は、便宜を図るために自動翻訳で提供されています。正確な最新情報については、英語版をご覧ください。
以下の手順に従って、ビットファイルをコンパイルしてシャーシにダウンロードします。
- FPGAターゲットの下に新規VIを作成し、プロジェクトファイルと一緒に保存します。RT VIからこのFPGA VIを使用して、モジュールのビットファイルをシャーシにダウンロードします。
- FPGA VIを右クリックして、ショートカットメニューからビルド仕様を作成を選択します。ビルド仕様の下でサンプルFPGA VIの新規ビルド仕様を右クリックし、ビルドを選択して、ビルドが完了するまで待機します。
- RTターゲットの下に新規VIを作成し、プロジェクトファイルと一緒に保存します。
- 新規RT VIのブロックダイアグラムに「FPGA VIリファレンスを開く」関数を追加します。
- 「FPGA VIリファレンスを開く」関数を右クリックし、ショートカットメニューから「FPGA VIリファレンスを開く」を構成を選択して、「FPGA VIリファレンスを開く」を構成ダイアログボックスを開きます。
- 手順1で作成したFPGA VIを選択し、FPGA VIを実行チェックボックスがオンになっていることを確認し、OKをクリックしてダイアログボックスを閉じます。
- RT VTで実行するコードを「FPGA VIリファレンスを開く」関数の右側のブロックダイアグラム上に配置します。タイミングループまたはWhileループなどのストラクチャでコードを囲みます。
- コードを囲んでいるストラクチャの右側のブロックダイアグラムに「FPGA VIリファレンスを閉じる」関数を追加します。
- コードを囲んでいるストラクチャを通じて、「FPGA VIリファレンスを開く」関数を「FPGA VIリファレンスを閉じる」関数に接続します。
- RT VIを実行します。
LabVIEWプロジェクトエクスプローラウィンドウは、以下の図のようになります。
- スキャンインタフェースモードのモジュール
- FPGAインタフェースモードのモジュール
- ビットファイルをダウンロードするFPGA VI
- ビットファイルをダウンロードするRT VI
メモ このサンプルプログラムの手順にあるFPGA VIは、FPGAの符号を装備していません。このFPGA VIは、モジュールのビットファイルをシャーシへダウンロードすることのみを目的としています。モジュールのビットファイルは、シャーシ内のすべてのモジュールのタイプとスロット位置を指定します。アプリケーションで実行するLabVIEW FPGAのコードがある場合、それをFPGA VIに追加します。RT VIのコンパイルおよび実行時に、モジュールのビットファイルとすべてのFPGAのコードがシャーシにダウンロードされます。
関連コンテンツ
- FPGA VIとNI スキャンエンジンを同期する (FPGAインタフェース)
- プロジェクトを構成する
接続されたハードウェアまたはオフラインハードウェアを使用してLabVIEWプロジェクトを構成します。