NI-XNETを使用したCAN通信により、ホストPCのLANバス上で通信の停止や通信ラッシュが発生する

更新しました Aug 26, 2024

使用製品

ドライバ

  • NI-XNET

問題

LabVIEWでCANおよびNI-XNETを使用してデバイスと通信しようとしていますが、NI-XNETプログラムを実行するたびに、ホストコンピュータのLANバス上の通信が時折完全に停止し、続いてCAN通信とホストコンピュータで発生する他の通信の両方からフレームが大量に発生することに気付きました。 NI-XNET通信を実行していない場合、この動作は発生しません。この通信の問題に対処するにはどうすればよいですか?

解決策

この問題は通常、NI-XNETドライバのインストールが正しくないか破損しているか、コンピュータまたはネットワーク上のウイルス対策およびファイアウォールが受信ネットワーク通信の分析に時間がかかりすぎてボトルネックが発生していることが原因で発生します。問題を特定して解決するには、次の手順を試してください。
  1. NI-XNETドライバを再インストール し、可能であれば最新バージョンにアップグレードします。これにより、NI-XNET のインストール時に存在する潜在的な問題が解決されます。
  2. 可能であれば、問題が発生するコンピュータのウイルス対策とファイアウォールを無効にして、問題が解決するかどうかを確認してください。ファイアウォールとウイルス対策ソフトウェアを無効にした後に問題が解決した場合は、NI および NI-XNET に関連するどのプロセスまたはプロセスの組み合わせがボトルネックになっているかを絞り込み、ウイルス対策ソフトウェアでこれらのプロセスに対して例外/除外を許可してください。これを行うプロセスはウイルス対策ソフトウェアによって異なりますが、 Windows セキュリティで除外を許可する方法はこの資料 が参考になる場合があります。また、ファイアウォールを再度有効にした後、NI ソフトウェアおよびハードウェアが使用するポートでの通信を許可するようにファイアウォールを設定 してください。

追加情報

WireSharkで往復通信時間を追跡することで、この動作がアプリケーションに影響していることを確認できます。動作のトレースを収集した後、WireShark でトレースを開き、WireShark ツールバーのStatistics >> Conversationsに移動して、ホストとスレーブ デバイス間のパケット通信にアクセスします。 NI-XNETポート(この場合はポート31415)とやりとりしている通信を選択し、右下隅にあるGraphボタンをクリックします。

表示されるグラフで、左下隅のTypeRound Trip Timeに設定し、グラフを確認します。デフォルトのゼロ ストリームに動作が存在しない場合は、右下隅のStreamコントロールを使用して通信ストリームを循環できます。

上のグラフは、NI-XNET通信時間が停止中に安定速度よりもはるかに速く急増し、大量の通信(ラッシュ)中にはゼロになることを示しています。通信グラフが上記のグラフと同様のパターンを示している場合は、この記事で説明されている停止/ラッシュの問題が発生している可能性があり、解決策の手順を使用して問題を解決できる可能性があります。