Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Function Caller

Simulink またはエクスポートされた Stateflow 関数の呼び出し

  • Function Caller block

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

説明

Function Caller ブロックは、Simulink Function ブロックで定義された関数またはエクスポートされた Stateflow® 関数を呼び出して実行します。Function Caller ブロックを使用して、モデルまたはチャート階層の任意の場所から関数を呼び出すことができます。

Simulink Function ブロックまたは Function Caller ブロックを選択して、関連するブロックを強調表示できます。1 つ以上の関連するブロックがサブシステムまたは参照モデルに含まれている場合、関連するブロックに加え、その関連ブロックを含む Subsystem ブロックまたは Model ブロックも強調表示されます。

開いているブロック線図または新しいタブに関連するブロックを表示するには、Simulink Function ブロックまたは Function Caller ブロックの選択後に表示される省略記号をポイントします。その後、操作バーから [関連するブロック] Related Blocks button を選択します。選択したブロックに複数のブロックが対応している場合は、関連するブロックのリストが開きます。リストはテキスト ボックスに検索語を入力してフィルター処理できます。関連するブロックをリストから選択すると、関連するブロックが表示された開いているブロック線図または新しいタブにウィンドウのフォーカスが移ります。

制限

Function Caller ブロックを使用して Simulink® またはエクスポートされた Stateflow 関数を非同期で呼び出して実行するモデルのコードを生成するには、モデル コンフィギュレーション パラメーター [システム ターゲット ファイル]autosar_adapative.tlc に設定する必要があります。それ以外のシステム ターゲット ファイル設定については、Function Caller のブロック パラメーター [関数呼び出しを非同期で実行] をオフにします。

端子

入力

すべて展開する

関数に送信される入力引数のための入力信号。

関数プロトタイプにより、Function Caller ブロックに表示される入力端子の数と名前が決まります。信号線を入力端子に接続し、関数入力引数を通してデータを関数に送信します。

たとえば y = myfunction(u) は Function Caller ブロックに 1 つの入力端子 (u) を作成します。

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

出力

すべて展開する

関数から返される出力引数のための出力信号。

関数プロトタイプにより、Function Caller ブロックに表示される出力端子の数と名前が決まります。信号またはメッセージの線を出力端子に接続し、関数出力引数を通してデータを関数から受信します。Function Caller ブロックでは、[関数呼び出しを非同期で実行] チェック ボックスがオンの場合はメッセージを出力します。

たとえば y = myfunction(u)Function Caller ブロックに 1 つの出力端子 (y) を作成します。

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

パラメーター

すべて展開する

Function Caller ブロックと Simulink 関数との間の関数インターフェイスを指定します。Simulink 関数は、Simulink Function ブロック、エクスポートされた Stateflow グラフィカル関数、エクスポートされた Stateflow MATLAB® 関数にすることができます。Simulink Function ブロックの呼び出しの場合、次が適用されます。

  • 関数呼び出しの引数名は関数の引数と一致しなければならない。

  • 関数名、入力引数、出力引数は有効な MATLAB 識別子でなければならない。

プログラムでの使用

ブロック パラメーター: FunctionPrototype
型: 文字ベクトル
: 'y=f(u)' | '<function prototype>'
既定の設定: 'y=f(u)'

各入力引数のデータ型、次元、実数/複素数 (実数または虚数) の指定を組み合わせた MATLAB 式をコンマ区切りリストで指定します。例については、Simulink Function ブロックの引数の指定を参照してください。

この指定は、Argument Inport ブロックの [データ型] パラメーターで指定された Simulink Function ブロック データ型と一致しなければなりません。

プログラムでの使用

ブロック パラメーター: InputArgumentSpecifications
型: 文字ベクトル
: '' | '<MATLAB expression>'
既定の設定: ''

各出力引数のデータ型、次元、実数/複素数 (実数または虚数) の指定を組み合わせた MATLAB 式をコンマ区切りリストで指定します。例については、Simulink Function ブロックの引数の指定を参照してください。

この指定は、Argument Outport ブロックの [データ型] パラメーターで指定された Simulink Function ブロック データ型と一致しなければなりません。

プログラムでの使用

ブロック パラメーター: OutputArgumentSpecifications
型: 文字ベクトル
: '' | '<MATLAB expression>'
既定の設定: ''

Function Caller ブロックが指定された Simulink 関数を呼び出す時間間隔を指定します。

既定の設定では、ブロックはモデル内の前後関係に基づいてサンプル時間を継承します。

他のサンプル時間を設定するには、サンプル時間の指定の表にあるサンプル時間形式を使用して値を入力します。

Function Caller ブロックに入力がある場合、それは非ソース ブロックであり、サンプル時間を -1 に設定しなければなりません。

プログラムでの使用

ブロック パラメーター: SampleTime
: 文字ベクトル
: '-1' | sample time
既定の設定: '-1'

この Function Caller ブロックに関連付けられた Simulink Function ブロックに対して関数呼び出しを非同期で実行するかどうかを指定します。

  • 呼び出し元 (クライアント) が関数 (サーバー) を呼び出す要求を行う "非同期実行" をモデル化するには、このチェック ボックスをオンにします。関数は、スケジュール エディターで定義されている順序に基づいて実行され、出力引数を呼び出し元に返します。ブロックは、それらの引数をメッセージ出力端子を使用して出力します。

    • 関数出力引数が 1 つの場合、その出力引数がメッセージ ペイロードになります。

    • 関数出力引数が複数の場合、Function Caller ブロックは出力引数を構造体としてまとめ、その構造体がメッセージ ペイロードになります。

    メッセージ出力端子は、即時モードで Message Triggered Subsystem ブロックに接続します。Message Triggered Subsystem ブロックが関数のコールバックとして機能します。

  • 呼び出し元が関数を呼び出し、関数が直ちに実行されて出力引数を呼び出し元に返す "同期実行" をモデル化するには、このチェック ボックスをオフにします。

プログラムでの使用

ブロック パラメーター: AsynchronousCaller
: 文字ベクトル
: 'on' | 'off'
既定の設定: 'off'

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | integer | single

直達

はい

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

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

バージョン履歴

R2014b で導入

すべて展開する