CompactRIOまたはCompactDAQ用のReal-Timeスタートアップ実行ファイルでNI-XNETを使用する

更新しました Apr 24, 2023

使用製品

ハードウェア

  • NI-9852
  • NI-9853
  • NI-9861
  • NI-9862
  • NI-9866
  • NI-9860
  • CompactRIO Chassis
  • CompactDAQ Chassis

ドライバ

  • NI-XNET

問題

リアルタイムCompactDAQ(cDAQ)またはCompactRIO(cRIO)のスタートアップアプリケーションでNI-XNET APIを使用したいです。開発環境から問題なくコードが実行されますが、スタートアップ実行ファイルにデプロイすると、XNETセッションを作成時にインターフェイスが見つかりませんというエラーが表示されます。
 

Real-Timeスタートアップ実行ファイルでXNETセッションを作成するにはどうすればよいですか?

解決策

この問題を回避する1つの方法は、システム構成ライブラリを使用して、XNETハードウェアが利用可能になることを待機してからXNETセッションを作成することです。下図は、その実装例です。
 

メモ: この画像は、プロジェクトで再利用できるLabVIEWコードを含むLabVIEWスニペットです。スニペットを使用するには、画像を右クリックしてコンピュータに保存し、ファイルをLabVIEWダイアグラムにドラッグします。



cRIOシステムの場合、ハードウェアを検索する前にNI-XNETをロードするために必要なアクションを実行したことを確認します。NI-XNETのロードに関する詳細については、XNETヘルプのGetting Started with CompactRIOを参照してください。

追加情報

cRIOまたはcDAQシャーシが起動してから適切なドライバがロードされ、XNETハードウェアの検出およびモジュールが識別されるまでにわずかな遅延が発生します。その結果、Real-Timeスタートアップ実行ファイルの先頭で新しいXNETセッションを作成しようとすると、ハードウェアがまだ完全にロードされていない可能性があります。 これにより、インターフェイスでエラーが検出されません。
 

FPGAでアプリケーションの一部を実行している場合、FPGA VIの実行後に上記で推奨した遅延を追加することが重要です。これは、データがFPGAを通過し、RTがモジュールを認識する前に初期化する必要があるためです。