このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
再利用のための Stateflow 関数のエクスポート
Stateflow® チャートの関数をエクスポートすることにより、そのチャートレベルの関数のスコープを Simulink® モデルの他のブロックに拡大できます。以下をエクスポートできます。
グラフィカル関数
MATLAB® 関数
Simulink 関数
真理値表
チャート レベルの関数をエクスポートすると、他の Stateflow チャートおよび Simulink Caller ブロックでそれらを呼び出すことができます。
などの修飾表記を使用して呼び出すことが可能なチャートレベルの関数をエクスポートするには、Stateflow チャートのプロパティの指定の説明に従って、チャートの [チャート レベルの関数をエクスポート] プロパティを選択します。chartName
.functionName
修飾表記を使用せずに呼び出すことが可能なチャートレベルの関数をエクスポートするには、[チャート レベルの関数をエクスポート] を選択してから [エクスポートされた関数をグローバルに可視として扱う] を選択します。複数の関数を同じ名前でエクスポートすることはできません。
詳細については、モデルからの Simulink 関数の呼び出し (Simulink)を参照してください。
Stateflow チャート間での関数の共有
この例では、Simulink モデル内の他のチャートからエクスポートされた関数を呼び出す方法を説明します。このモデルには、メインの Stateflow チャート mainChart
と、2 つの補助ライブラリ チャート lib1Chart
および lib2Chart
が含まれています。各チャートはチャートレベルのグラフィカル関数を 1 つ含み、チャートの [チャート レベルの関数をエクスポート] プロパティおよび [エクスポートされた関数をグローバルに可視として扱う] プロパティの両方が有効になっています。
メイン チャートには 2 つのデータ オブジェクト x
と y
が含まれており、初期値はそれぞれ 0
と 1
です。モデルをシミュレートすると、このチャートのデフォルト遷移がそれらの値を引数として使用して、関数 lib1_func
を呼び出します。
関数 lib1_func
は、ライブラリ チャート lib1Chart
で定義されています。この関数は入力引数を読み取り、それらを関数 lib2_func
に渡します。
関数 lib2_func
は、ライブラリ チャート lib2Chart
で定義されています。この関数は入力引数を読み取り、それらを関数 main_func
に渡します。
関数 main_func
は、メイン チャートで定義されています。この関数は入力引数を加算して結果を返します。メイン チャートは、この結果を出力データ x
として保存します。シミュレーションの各タイム ステップで、一連の関数呼び出しが繰り返されます。シミュレーション中に、増加する x
の値が Scope ブロックに表示されます。
チャートレベルの関数のエクスポートに関するガイドライン
サポートされていない入出力を含むチャートレベルの関数はエクスポートしない
入力または出力が以下のいずれかのプロパティをもつ場合、チャートレベルの関数はエクスポートできません。
32 ビット以上の語長をもつ固定小数点データ型
可変サイズ
モデル参照の境界を越えて関数をエクスポートしない
参照モデルから関数をエクスポートして、親モデルから関数を呼び出すことはできません。
コード生成時に出力を組み合わせて関数を更新する
エクスポートされたチャートレベルの関数を使用するモデルのコードを生成する場合は、モデル コンフィギュレーション パラメーター [1 つの出力/更新関数] (Simulink Coder) を有効にして、シミュレーションとコード生成の間で確実に動作を一致させます。