メインコンテンツ

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

CAN Receive

指定されたCANデバイスからCANメッセージを受信する

  • CAN Receive block

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

説明

CAN Receive ブロックは CAN ネットワークからメッセージを受信し、それを Simulink® モデルに配信します。ブロック パラメータに応じて、各タイム ステップで 1 つのメッセージまたはすべてのメッセージを出力します。

メモ

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

CAN Receive ブロックは、CAN メッセージを先入れ先出し (FIFO) バッファに格納します。FIFO バッファは、タイムステップごとにキューの順序でメッセージをモデルに配信します。

メモ

同じ PEAK-System デバイス チャネルを使用するモデルでは、複数の CAN Receive ブロックを持つことはできません。

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

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

CAN Receive ブロックは、必要なソース コードと依存する共有ライブラリをグループ化するために、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 Msg 出力ポートには、特定のタイムステップで受信された 1 つ以上のパックされた CAN メッセージが含まれており、信号バスまたは CAN_MESSAGE として出力されます。出力には、各タイムステップで受信したメッセージ数 の設定に応じて、そのタイムステップの 1 つまたはすべてのメッセージが含まれます。

データ型: CAN_MESSAGE | bus

f() 出力ポートは、Function-Call Subsystem へのトリガーです。ブロックが新しいメッセージを受信すると、このポートから関数呼び出しがトリガーされます。その後、Function-Call Subsystem (Simulink) に接続してメッセージをアンパックし、処理することができます。

データ型: function-call event

パラメーター

すべて展開する

ヒント

CAN Receive block パラメータを設定する前に、CAN Configuration ブロックを設定してください。

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

プログラムでの使用

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

標準 ID のフィルターを選択します。選択肢は、以下のとおりです。

  • Allow all (デフォルト):すべての標準 ID がフィルターを通過できるようにします。

  • Allow only:テキスト フィールドで指定された ID または ID の範囲のみを、単一の ID または ID の配列として許可します。カンマで区切られた、分離した ID や配列を指定することもできます。たとえば、ID 400 ~ 500、および 600 ~ 650 を許可するには、「[[400:500],[600:650]]」と入力します。標準 ID は 0 から 2047 までの正の整数である必要があります。hex2dec 関数を使用して 16 進数値を指定することもできます。

  • Block all:すべての標準 ID がフィルターを通過するのをブロックします。

プログラムでの使用

ブロック パラメーター: StdIDsCombo
型: 文字ベクトル、string
値: 'Allow all' | 'Allow only' | 'Block all'
既定の設定: 'Allow all'

'Allow only' を使用する場合は、次のようにフィルター値を設定します。

ブロック パラメーター: StandardIDs
型: 文字ベクトル、string
値: 整数スカラーまたは行ベクトル

拡張 ID については、このブロックのフィルターを選択します。選択肢は、以下のとおりです。

  • Allow all (デフォルト):すべての拡張 ID がフィルターを通過できるようにします。

  • Allow only:テキスト フィールドで指定された ID のみを許可します。テキスト フィールドで指定された ID または ID の範囲のみを、単一の ID または ID の配列として許可します。カンマで区切られた、分離した ID や配列を指定することもできます。たとえば、ID 3000 ~ 3500、および 3600 ~ 3620 を受け入れるには、「[[3000:3500],[3600:3620]]」と入力します。拡張 ID は 0 から 536870911 までの正の整数である必要があります。hex2dec 関数を使用して 16 進数値を指定することもできます。

  • Block all:すべての拡張 ID がフィルターを通過するのをブロックします。

プログラムでの使用

ブロック パラメーター: ExtIDsCombo
型: 文字ベクトル、string
値: 'Allow all' | 'Allow only' | 'Block all'
既定の設定: 'Allow all'
ブロック パラメーター: ExtendedIDs
型: 文字ベクトル、string
値: 整数スカラーまたは行ベクトル

シミュレーション中のブロックのサンプル時間を指定します。これは、シミュレーション中にブロックが実行される速度です。デフォルト値は 0.01 シミュレーション秒です。詳細については、ハードウェアインターフェースモデルのタイミングを参照してください。

プログラムでの使用

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

指定されたタイムステップごとにブロックが受信するメッセージの数を選択します。有効な選択肢は次のとおりです。

  • all (デフォルト):CAN Receive ブロックは、特定のタイムステップ中に FIFO バッファー内のすべての利用可能なメッセージをモデルに配信します。ブロックは配信されるメッセージごとに 1 つの関数呼び出しを生成します。出力ポートには常に 1 度に 1 つの CAN メッセージが含まれます。

  • 1:CAN Receive ブロックは、FIFO バッファからモデルにタイムステップごとに 1 つのメッセージを配信します。

ブロックが次のタイムステップの前にメッセージを受信しない場合は、最後に受信したメッセージを出力します。

プログラムでの使用

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

ネイティブ Simulink バス信号を出力します。Simulink バス オブジェクトの詳細については、「合成インターフェイス (Simulink)」を参照してください。

プログラムでの使用

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

拡張機能

すべて展開する

バージョン履歴

R2009a で導入