NI-XNETでCANフレーム送信時間をハードウェアタイミングで制御する

更新しました Apr 26, 2023

使用製品

ドライバ

  • NI-XNET

プログラミング言語

  • LabVIEW G

問題

  • NI-XNETでハードウェアタイミングによる送信を制御するにはどのようなオプションがありますか?
  • 周期的CANフレーム以外で、ハードウェアタイミングでフレームを送信できますか?

解決策

周期的フレームを使用する


最も基本的なハードウェアタイミング制御による送信は、XNET Writeによって更新されたペイロードに関係なく、ハードウェアタイミングでCANフレームを送信する周期的フレームを使用することです。周期的フレームはXNETデータベースファイルで定義され、XNETセッションが開始するとすぐにフレームの送信を開始します。


複数の周期的フレーム間の開始時間にオフセットする場合は、Frame:CAN:Start Time Offsetプロパティノードを使用できます。ただし、利用可能な精度は500マイクロ秒(NI-XNET 18.0以降)であるため、500マイクロ秒未満に設定されたタイムオフセットは500マイクロ秒の最も近い倍数に丸められます。

 

ReplayモードによるFrame Output Stream セッションを使用する


Replayモードでは、NI-XNETはCANフレームに関連付けられたタイムスタンプに基づいて、CANフレームの送信タイミングを維持しようとします。
 

  • Replay Exclusive: ハードウェアは、XNET Write.viで指定されたフレームを送信します(リストは不要)。
  • Replay Inclusive: ハードウェアは、Interface:Output Stream Listによって供給されたフレームを送信します。


Replayモードでは、ハードウェアタイミング周期とは無関係に送信時間を完全に制御できます。ログされたCANデータを再生してECUをエミュレートまたはテストする場合、この方法は特に便利です。
ただし、周期的フレームを利用することはできないため、送信中はフレームを書き続ける必要があります。


以下は、Replayモードの使用例です。

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


下図は、NI-XNETバスモニタでキャプチャしたCANフレームです。

追加情報

Replayモードに関する詳細については、Interface:Output Stream Timingを参照してください。