CompactRIOでスキャンエンジンとFPGAモードを同時に使用する(ハイブリッドモードにする)には?

更新しました Apr 29, 2024

環境

ハードウェア

  • CompactRIO Controller
  • CompactRIO Chassis

ソフトウェア

  • LabVIEW Real-Time Module
  • LabVIEW

いくつかのCシリーズモジュールをLabVIEW FPGAインタフェース、そして別のモジュールをスキャンインタフェースとして使用したいです。これをシャーシのプロパティでおこなうには、明示的なオプションがありません。両方のモードで実行するにはどうしたらよいですか?

CompactRIOターゲット上でスキャンインタフェースとLabVIEW FPGAインタフェースを同時に使用する方法は、ハイブリッドモードと呼ばれています。これにより、いくつかのモジュールがFPGAを使用している間に、他のモジュールはI/O変数を使用するスキャンインタフェースを利用することができます。また、いくつかのCシリーズモジュールはスキャンインタフェースに対応しないため、ハイブリッドモードを併用できることは最終的なアプリケーションのプログラミング量削減に貢献できる可能性があります。

メモ: 特定のモジュールは、スキャンインタフェースまたはFPGAモードでのみ使用することが可能で、両方は使用できません。

ハイブリッドモードでプログラミングする前に考慮すべき点が2つあります。
  • コンパイル時間が、大幅に増加します。理由は、デフォルトのRIOスキャンインタフェースのロジックとFPGAコードを1つのビットファイルに結合する必要があるためです。
  • FPGAコードで使用できるDMA FIFOの数が減ります。これはスキャンインタフェースが、2つのDMA FIFOを使用するためです。ターゲットで利用できるDMA FIFOの数を確認するには、FPGAターゲットにはDMAチャンネルがいくつありますか?を参照してください。


ハイブリッドモードでCompactRIOをセットアップするには、以下の手順をおこないます。

 

  1. 新しいLabVIEWプロジェクトを作成して、プロジェクトエクスプローラウィンドウにあるトップレベルのプロジェクトアイテムを右クリックします。新規>>ターゲットとデバイスを選択して、ターゲットとデバイスを追加ダイアログボックスを表示します。



     
  2. ハードウェアを接続している場合は、既存ターゲットまたはデバイスが選択されていることを確認して、Real-Time CompactRIOを展開し、お使いのCompactRIOコントローラを選択します。OKをクリックします。




     
  3. ハードウェアを接続していない場合は、新規ターゲットまたはデバイスが選択されていることを確認して、Real-Time CompactRIOを展開し、使用する予定のCompactRIOコントローラを選択します。OKをクリックします。統合コントローラおよびシャーシがない場合、ターゲットを右クリックして新規>>ターゲットとデバイスを選択します。新しいターゲットまたはデバイスを選択してCompactRIO Chassisを展開し、使用する予定のシャーシを選択します。OKをクリックします。
     
  4. プログラミングモードを選択ダイアログボックスが表示されたら、スキャンインタフェースを選択します。継続を選択します。



     
  5. .Cシリーズモジュールを検出?ダイアログボックスが表示されたら、検出をクリックします。これでプロジェクトにあるシャーシの下にCシリーズモジュールを追加します。



     
  6. FPGAターゲットを追加するには、シャーシを右クリックして新規>>FPGAターゲットを選択します。



     
  7. CompactRIOシャーシ設定をデプロイ?ダイアログボックスが表示されたら、後でデプロイを選択します。プロジェクトのセットアップ後にシャーシをLabVIEW FPGAインタフェースモードに変更します。



     
  8. FPGAターゲット下でLabVIEW FPGAインタフェースモードとして使用したいモジュールをドラッグします。モジュールI/Oは、FPGAターゲットの下のフォルダに表示され、シャーシには存在しなくなります。



     
  9. スキャンインタフェースに対応していないモジュールがある場合、FPGAターゲットにそれらを追加するにはFPGAターゲットを右クリックして新規>>Cシリーズモジュールを選択します。プロジェクトに既存モジュールを追加、または手動でモジュールを追加します。




    メモ: NI-RIOドライバ17.0以降、「RSI Resources」または「Real-Time Scan Resources」と呼ばれるシャーシ項目のプロジェクトツリーに新しいフォルダが追加されます。この項目には、スキャンインターフェイスモードでプログラムするために選択したすべてのモジュールが含まれています。スキャンインターフェイスモードでCシリーズモジュールをプロジェクトに追加するには、リアルタイムスキャンリソースを右クリックし、新規>>Cシリーズモジュールを選択します。これは、前述のFPGAインタフェースモードでFPGAターゲットにモジュールを追加するのと同じプロセスです。



     
  10. ターゲットを接続している場合、プロジェクトでシャーシを右クリックしてデプロイを選択します。ターゲットを接続していない場合、アプリケーションを実行する前にハードウェアを接続してから一度LabVIEW FPGAインタフェースモードでシャーシをデプロイします。



     
  11. FPGAターゲットで右クリックして新規>>VIを選択し、FPGAターゲット下に新しいVIを作成します。 LabVIEW FPGAインタフェースモードが使用されているモジュールに対して、FPGA I/Oノードを使用してFPGAコードを実装します。

     
  12. VIをコンパイルします。これでRIOスキャンインタフェースのロジックがFPGAコードに追加されて、アプリケーションでスキャンエンジンとFPGAを同時に使用できるようになります。

アプリケーションを実行した際に下記のエラーが発生する場合には、シャーシがLabVIEW FPGAインタフェースモードであるかどうかを確認します。


エラー -61141:
LabVIEW FPGA: LabVIEW FPGA: FPGAがビジー状態であるため、操作ができませんでした。この操作を行う前に、FPGAのすべてのアクティビティを停止してください。ターゲットがスキャンインタフェースモードである場合、FPGAインタフェースモードに変更してください。




 
  1. プロジェクトにあるシャーシを右クリックして、プロパティを選択します。


     
  2. LabVIEW FPGAインタフェースが選択されていることを確認します。OKをクリックします。




     
  3. シャーシを右クリックして、デプロイを選択します。



     

メモ: cRIO-904xコントローラは、DAQmxプログラミングもサポートしています。リアルタイムCPUモード(NI-DAQmxプログラミング用)でCシリーズモジュールをプロジェクトに追加するには、リアルタイムリソースを右クリックし、新規>>Cシリーズモジュールを選択します。これは、前述のように、他のプログラミングモード用にプロジェクトにモジュールを追加する方法と同じプロセスです。
 

Additional Information

ハイブリッドモードを使用すると、RTターゲットの下にCシリーズモジュールがいくつかあり、LabVIEWプロジェクトでFPGAターゲットの下にCシリーズモジュールが表示されます。