C Caller
Simulink で C コードを統合
ライブラリ:
Simulink /
User-Defined Functions
説明
C Caller ブロックは、外部 C コードを Simulink® に統合します。このブロックによって外部 C コードに含まれる関数がインポートされてリストされ、Simulink モデルで統合する関連付けられた C 関数を選択できます。
[ライブラリ ブラウザー] 、 [Simulink] 、 [ユーザー定義関数] を使用して、C Caller ブロックを Simulink キャンバスに取得します。
次に、ブロック ダイアログ ボックスの
アイコンをクリックします。これにより、[コンフィギュレーション パラメーター] ダイアログ ボックスが開きます。[コンフィギュレーション パラメーター] ダイアログ ボックス内で [シミュレーション ターゲット] ペインに移動し、[コード情報] タブのパラメーターを使用してソース コードとサポート ファイルを定義します。ソース コードの関数の定義を参照するには、
アイコンを使用します。ソース コードとサポート ファイルの定義の詳細については、Specify and Configure Custom C/C++ Codeを参照してください。
ソース コードとサポート ファイルを変更するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [シミュレーション ターゲット] ペインにある [コード情報] タブの同じパラメーターを使用します。ソース コードとサポート ファイルを変更したら、ブロック ダイアログ ボックスで
ボタンをクリックして関数のリストを更新します。
例
制限
カスタム コード設定の初期化/終了 — カスタム コードにメモリを割り当てたり割り当て解除したりする必要がある場合は、カスタム コード設定の [初期化関数] および [終了関数] フィールドに割り当ておよび割り当て解除を挿入するか、C Function ブロックを使用します。
複素数データのサポート — ブロックは Simulink の複素数データ型をサポートしません。
可変引数 — C の可変引数はサポートされません (たとえば、
int sprintf(char *str, const char *format, ...))。C++ 構文 — ブロックはネイティブの C++ 構文を直接サポートしません。C++ コードとインターフェイスする C 関数ラッパーを記述する必要があります。
Simulink Test™ オブザーバーのサポート — R2026a 以降では、Observer Port ブロックと Observer Reference ブロックを使用して、C Caller ブロック内のエクスポートされたグローバル変数を確認できます。これらのブロックを使用して、静的グローバル変数または n 次元行列のグローバル変数を確認することはできません。
端子
入力
出力
パラメーター
ブロックの特性
詳細
ヒント
C Caller ブロックを含むモデルをテストする場合は、Test Integrated C Code (Simulink Test)を参照してください。
モデルにカスタム コードが含まれる場合、モデルが更新または実行されると、読み込まれたカスタム コードのシミュレーション実行可能ファイルが原因で
slprjフォルダーがロックされる場合があります。ロックされているフォルダーは削除できません。実行可能ファイルをアンロードして、slprjフォルダーのロックを解除するには、clear mexコマンドを使用します。clearを参照してください。
拡張機能
バージョン履歴
R2018b で導入参考
ブロック
- C Function | MATLAB Function | MATLAB System | S-Function | S-Function Builder | Observer Reference (Simulink Test) | Observer Port (Simulink Test)








