メインコンテンツ

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

CAN FD Transmit

選択したCAN FDデバイスにCAN FDメッセージを送信する

  • CAN FD Transmit block

ライブラリ:
Vehicle Network Toolbox / CAN FD Communication

説明

CAN FD Transmit ブロックは、指定された CAN デバイスを使用して CAN ネットワークにメッセージを送信します。CAN FD Transmit ブロックは、指定されたタイムステップ中に単一のメッセージまたはメッセージの配列を送信できます。信号バスからメッセージの配列を送信するには、Bus Creator (Simulink) または Vector Concatenate, Matrix Concatenate (Simulink) ブロックを使用します。

メモ

このブロックを使用するには、Vehicle Network Toolbox™ と Simulink® ソフトウェアの両方のライセンスが必要です。

CAN FD Transmit ブロックには 1 つの入力ポートがあります。このポートは、CAN FD Pack ブロックを使用してパックされた CAN メッセージを受け入れます。出力ポートはありません。

CAN はピアツーピア ネットワークであるため、物理バス上でメッセージを送信する場合、メッセージを適切に確認するには少なくとも 1 つの他のノードが存在する必要があります。別のノードがない場合、送信はエラー フレームとして失敗し、デバイスは継続的に送信を再試行します。

その他のサポートされている機能

CAN FD Transmit ブロックは、Simulink アクセラレータ モードの使用をサポートします。この機能を使用すると、Simulink モデルの実行を高速化できます。詳細については、高速化 (Simulink)を参照してください。

CAN FD Transmit ブロックは、必要なソース コードと依存する共有ライブラリをグループ化するために、packNGo 関数とともにコード生成の使用をサポートします。

コード生成

Vehicle Network Toolbox Simulink ブロックを使用するとコードを生成でき、これらのブロックを含むモデルをアクセラレータ モード、ラピッド アクセラレータ モード、外部モード、およびデプロイ モードで実行できるようになります。

Simulink Coder を使用したコード生成

Vehicle Network Toolbox、Simulink Coder™、および Embedded Coder® ソフトウェアを一緒に使用して、モデルの実装に使用できるコードをホスト側で生成できます。コード生成の詳細については、生成されたコードのコンパイル (Simulink Coder) を参照してください。

共有ライブラリの依存関係

ブロックは移植性が制限されたコードを生成します。ブロックは、DLL などの事前コンパイルされた共有ライブラリを使用して、特定の種類のデバイスの I/O をサポートします。このブロックを使用すると、Simulink Coder でサポートされている packNGo 関数を使用して、モデルのビルド情報を設定および管理できます。packNGo (Simulink Coder) 関数を使用すると、モデル コードと依存する共有ライブラリを zip ファイルにパッケージ化して展開できます。ターゲット システムに MATLAB® がインストールされている必要はありませんが、ターゲット システムは MATLAB でサポートされている必要があります。

packNGo を設定するには:

set_param(gcs,'PostCodeGenCommand','packNGo(buildInfo)');

この例では、gcs は現在構築するモデルです。モデルをビルドすると、モデル名と同じ名前の zip ファイルが作成されます。この zip ファイルを別のマシンに移動し、そこで zip ファイル内のソース コードをビルドして、MATLAB および Simulink から独立して実行できる実行可能ファイルを作成できます。生成されたコードは C コンパイラと C++ コンパイラの両方でコンパイルされます。詳細については、コード コンパイルのカスタマイズ (Simulink Coder)を参照してください。

メモ

Linux® プラットフォームでは、ライブラリを解凍するフォルダーを環境変数 LD_LIBRARY_PATH に追加する必要があります。

端子

入力

すべて展開する

CAN FD Pack ブロックでパックされた、送信する CAN FD メッセージは、タイプ CAN_FD_MESSAGE_BUS の Simulink 信号バスとして入力されます。

データ型: CAN_FD_MESSAGE_BUS

パラメーター

すべて展開する

ヒント

CAN FD Transmit ブロック パラメータを設定する前に、モデル内の CAN FD Configuration ブロックを設定します。

CAN FD メッセージをネットワークに送信するための CAN デバイスとチャネルを選択します。このリストには、システムにインストールされているすべてのデバイスが表示されます。ベンダー名、デバイス名、チャネル ID が表示されます。デフォルトは、システムで使用可能な最初のデバイスです。

メモ: PEAK-System デバイスを使用する場合、複数の有効なサブシステム内の CAN FD Transmit ブロックは一部のメッセージをスキップする可能性があります。可能であれば、有効なサブシステムを、if-action、switch-case-action、または Triggered Subsystem などの異なるタイプの条件付きサブシステムに置き換えるか、すべての CAN FD Transmit ブロックが単一の有効なサブシステム内に含まれるようにモデルを再設計してください。

プログラムでの使用

ブロック パラメーター: Device
型: 文字ベクトル、string

次のパラメータは送信オプションを定義します。

イベントベースの送信が有効になっている場合、メッセージ データの変更が検出された時間ステップでのみメッセージが送信されます。入力データが特定のメッセージ ID の最新の送信と一致する場合、メッセージは再送信されません。

イベント送信と定期送信の両方を同時に有効にして連携させることができます。どちらも選択されていない場合は、デフォルトの動作として、各タイム ステップで現在の入力が送信されます。

プログラムでの使用

ブロック パラメーター: EnableEventTransmit
型: 文字ベクトル、string
値: 'off' | 'on'
既定の設定: 'off'

指定されたメッセージ周期で構成されたチャネル上でメッセージを定期的に送信できるようにするには、このオプションを選択します。期間は、Simulink モデルの時間ステップ サイズ (基本サンプル時間) またはブロック実行サンプル時間に関係なく、実時間を参照します。これは MATLAB 関数 transmitPeriodic と同等です。

定期的な送信はバッファなしの操作です。時間間隔が発生すると、CAN FD Transmit ブロックの入力に存在する最後の CAN メッセージまたはメッセージ セットのみが送信されます。

プログラムでの使用

ブロック パラメーター: EnablePerioicTransmit
型: 文字ベクトル、string
値: 'off' | 'on'
既定の設定: 'off'

期間を秒単位で指定します。この値は指定された期間内にメッセージを送信するために使用されます。デフォルトではこの値は 1.000 秒です。

プログラムでの使用

ブロック パラメーター: MessagePeriod
型: 文字ベクトル、string
値: double
既定の設定: '1.000'

拡張機能

すべて展開する

バージョン履歴

R2018a で導入