Main Content

C Caller

Simulink で C コードを統合

  • C Caller block

ライブラリ:
Simulink / User-Defined Functions

説明

C Caller ブロックは、外部 C コードを Simulink® に統合します。このブロックによって外部 C コードに含まれる関数がインポートされてリストされ、Simulink モデルで統合する関連付けられた C 関数を選択することができます。C Caller ブロックはスタンドアロンでコード生成をサポートします。より複雑なモデルのコード生成は Simulink モデルの機能に依存します。

C Caller ブロックを使用するには、[コンフィギュレーション パラメーター][シミュレーション ターゲット] を使用してソース コードとサポート ファイルを定義します。次に、[ライブラリ ブラウザー][Simulink][User Defined Functions] を使用して、C Caller ブロックを Simulink キャンバスに配置します。定義済みのソース コード ファイルやその依存関係を変更するには、ブロック ダイアログで をクリックして [コンフィギュレーション パラメーター][シミュレーション ターゲット] タブに移動します。ソース コードやその依存関係を変更したら、ブロック ダイアログで をクリックして関数のリストを更新します。ソース コードの関数の定義を参照するには、 アイコンを使用してソース ファイルにアクセスします。

端子

入力

すべて展開する

入力端子の数と名前は、外部 C コードの選択した関数から推定されます。C Caller ブロックにデータを提供するには、入力信号を入力端子に接続します。

入力ラベルは、[ブロック ダイアログ][端子仕様][ラベル] 列を編集して変更しない限り、入力端子と同じ名前になります。ラベルの名前を入力端子に変更すると、C Caller ブロックで端子の名前が変更されます。

入力変数については、[スコープ] 列を使用して、入力スコープをパラメーターまたは定数に変更できます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

出力

すべて展開する

出力端子の数と名前は、外部 C コードの選択した関数から推定されます。C Caller ブロックからデータを送信するには、ブロックを C Caller ブロックの出力端子に接続します。

出力端子ラベルは、[ブロック ダイアログ][端子仕様][ラベル] 列を編集して変更しない限り、出力端子と同じ名前になります。ラベルの名前を入力端子に変更すると、C Caller ブロックで端子の名前が変更されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | enumerated | bus

パラメーター

すべて展開する

C Caller ブロックで解析される関数の名前。文字ベクトルまたは string スカラーとして指定します。使用可能な関数の一覧については、使用可能な関数を参照してください。

調整可能: Yes

プログラムでの使用

ブロック パラメーター: FunctionName
型: 文字ベクトルまたは string スカラー

myFunctionName = get_param(gcb,"FunctionName")
myFunctionName =

    'mean_filter'

端子のプロパティ。table として指定します。table は、ブロックのそれぞれの入力要素と出力要素の属性を示します。スコープが入力の場合、その変数はパラメーターまたは定数に変更することができます。これらのプロパティには以下が含まれます。

名前 — ソース コードから推定された変数名を示します。

太字の引数名は、端子またはパラメーターがグローバル引数であることを示します。

スコープ — ソース コードでの変数の役割を示します。変数が C Caller ブロックのソース コード内の入力引数である場合、スコープ タイプを定数またはパラメーターに変更できます。変数がソース コード内の出力引数である場合は、スコープ タイプを変更することはできません。

ラベル — Simulink モデルの入力変数または出力変数にラベルを付けます。この表を使用してラベルを変更することができます。スコープがパラメーターの場合は、このフィールドにパラメーター名を入力します。スコープが定数の場合は、定数値を入力します。

タイプ — 端子からのデータ型を示します。

サイズ — 入力データまたは出力データのサイズを示します。

名前、スコープ、型、サイズは、ソース コードから推定されます。

プログラムでの使用

ブロック パラメーター: FunctionPortSpecification
タイプ: FunctionPortSpecification オブジェクト

C Caller ブロックにマッピングできる使用可能なすべての関数のリスト。cell 配列として指定します。

モデル内の C Caller ブロックで外部ソース コードに含まれるすべての関数がインポートされ、それらの関数の名前がブロック ダイアログの関数名の横に表示されます。関数を選択してブロックで使用するには、関数名が [使用可能な関数] テーブルに表示されていることを確認します。表示されない関数がある場合は、ブロック ダイアログで をクリックしてソース コードを再度読み込みます。関数の名前を変更するには、ソース コードを変更し、[更新] ボタンをクリックして再度読み込みます。

プログラムでの使用

ブロック パラメーター: AvailableFunctions
型: cell 配列

allAvailableFunctions = get_param(gcb, "AvailableFunctions")
allAvailableFunctions =

  1×1 cell array

    {'add'}

サンプル周期。秒単位で指定します。サンプル時間のタイプおよびサンプル時間の指定を参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
: string スカラーまたは文字ベクトル
既定の設定: "-1"

ブロックの特性

データ型

Booleana | busa | doublea | enumerateda | fixed pointa | integera | singlea

直達

いいえ

多次元信号

はいa

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

a 実際のデータ型または機能のサポートは、ブロックの実装に依存します。

拡張機能

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2018b で導入