このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
PackNGoを使用したSimulinkでのCAN 通信
この例では、PackNGo 機能を使用して、CAN 通信 Simulink ® モデルから生成されたコードを含む ZIP ファイルを作成する方法を示します。
特定のアプリケーションとハードウェア要件に応じて、パラメータとブロックを調整します。
Vehicle Network Toolbox ™ は、Controller Area Network (CAN) 形式を使用して、ネットワーク経由で Simulink モデルを介してライブ メッセージを送受信するための Simulink ブロックを提供します。この例では、CAN Configuration、CAN Pack、CAN Transmit、CAN Receive、および CAN Unpack ブロックを使用して、CAN バスを介してデータ転送を実行します。例 Simulink での CAN 通信入門 を参照してください。
CAN メッセージの送受信の Simulink モデルを開きます
モデルを開いて、正弦波データ信号を伝送する CAN メッセージを送受信します。このモデルは、タイムステップごとに 1 つのメッセージを送信するように設計されています。DBC ファイルは、モデルで使用されるメッセージと信号を定義します。
open_system("CANCommunicationPackNGo")
CAN Receive ブロックは、特定のステップで新しいメッセージを受信すると、関数呼び出しトリガーを生成します。これは、モデル内の他のブロックに、メッセージがデコード アクティビティに使用できることを示します。信号のデコードと処理は Function-Call Subsystem (Simulink) 内で実行されます。

モデルを実行すると、TransmitData.mat ファイルと ReceiveData.mat ファイルが作成され、データが出力されます。これらのファイルには、それぞれソース データと CAN メッセージから復号化された信号が含まれます。
transmitData = load("TransmitData.mat"); receiveData = load("ReceiveData.mat");
送信前と送信後の正弦波の値をプロットします。X 軸はシミュレーションのタイムステップに対応し、Y 軸は信号の値に対応します。2 つのグラフ間の位相シフトは、信号がネットワーク上を移動する際の伝播遅延を表します。
plot(transmitData.ans(1,:), transmitData.ans(2,:)) hold on plot(receiveData.ans(1,:), receiveData.ans(2,:)) legend('transmit', 'receive'); xlabel('time'); ylabel('SignalValue');

コード生成用のモデルを構成する
コード生成ペインから PackNGo ZIP ファイルのパッケージ化を構成します。コード ジェネレーターは、ビルド プロセス中に packNGo を使用して ZIP ファイルを出力します。
Modeling > Model Configuration Parameters へ進みます。
この例では、Code Generation ノードを選択し、システム ターゲット ファイルをリアルタイム ターゲットの grt.tlc に設定します。

生成されたコードと必要な成果物を 1 つのフラットな ZIP ファイルにパックします。
set_param('CANCommunicationPackNGo', 'PostCodeGenCommand', 'packNGo(buildInfo)');
PackNGo のセットアップが完了したら、Build Model ボタン (Ctrl+B) をクリックしてモデルを Build します。

コード ジェネレーターは、ビルド プロセスの最後に ZIP ファイルを出力します。ZIP ファイル内のフォルダー構造はフラットです。
出力データの検証
生成されたコードを確認するには、次の手順に従います。
圧縮ファイルを解凍します。
実行可能ファイル (
CANCommunicationPackNGo.exe) を解凍したフォルダーに移動します。実行可能ファイルを実行します。
作成された
TransmitData.matとReceiveData.matを確認してプロットします。
パッケージ化されたコード (CANCommunicationPackNGo.zip) をターゲット ハードウェアまたはシミュレーション環境に転送することで、パッケージを展開できるようになりました。