メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

Simulinkにおける定期的なCANメッセージ送信動作

この例では、MathWorks ® 仮想 CAN チャネルを使用して、Simulink ® で CAN メッセージの定期的な送受信を設定する方法を示します。仮想チャネルはループバック構成で接続されます。

Vehicle Network Toolbox ™ は、Controller Area Network (CAN) を介して Simulink モデルを介してライブ メッセージを送受信するための Simulink ブロックを提供します。この例では、CAN ConfigurationCAN PackCAN TransmitCAN Receive、および CAN Unpack ブロックを使用して、CAN バスを介してデータ転送を実行します。

CAN メッセージの送受信

異なる期間に 2 つのメッセージを送信し、指定されたメッセージのみを受信し、指定された ID のメッセージをアンパックするモデルを作成します。

  • CAN Transmit ブロックを使用して、ID 250 の CAN メッセージを送信し、1 秒ごとにメッセージを送信します。

  • 別の CAN Transmit ブロックを使用して、ID 500 の CAN メッセージを送信し、0.5 秒ごとにメッセージを送信します。

  • 両方の CAN Pack ブロックに、制限値が 50 の自動増分カウンターに信号を入力します。

  • 両方の CAN Transmit ブロックは MathWorks 仮想チャネル 1 に接続されています。

CAN Receive ブロックを使用して、MathWorks 仮想チャネル 2 から CAN メッセージを受信します。ブロックを次のように設定します。

  • ID 250 および 500 のメッセージのみを受信します。

  • Receive ブロックは、特定のタイムステップで新しいメッセージを受信すると、関数呼び出しトリガーを生成します。

CAN Unpack ブロックは Function-Call Subsystem (Simulink) 内にあります。サブシステムは、特定のタイムステップで CAN Receive ブロックによって新しいメッセージが受信された場合にのみ実行されます。

異なるタイムスタンプのメッセージを可視化する

結果をプロットして、アンパックされた各メッセージのカウンター値とタイムスタンプを確認します。プロットの X 軸はシミュレーションのタイムステップに対応します。タイムスタンプ プロットは、メッセージが指定された時刻に送信されたことを示します。また、指定された周期レートが異なるため、ID 250 で送信されるメッセージの数は、ID 500 で送信されるメッセージの数の半分になっていることもわかります。

例を拡張する

この例では、MathWorks 仮想 CAN チャネルが使用されました。ただし、モデルを他のサポートされているハードウェアに接続することはできます。また、モデルを変更して、異なるレートで送信したり、定期的なメッセージと非定期的なメッセージの組み合わせを送信したりすることもできます。

この例では CAN ブロックを使用していますが、ここで説明する概念は Simulink の CAN FD ブロックにも適用されます。

参考

トピック