このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
モデルのコールバックは、モデルを読み込んだ後や保存した後など、指定したアクション ポイントで実行されます。
同じコールバックのほとんどをライブラリに対して設定できます。ライブラリに設定できるのはライブラリに対して実行できるコールバックだけです。たとえば、ライブラリはシミュレーションできないため、シミュレーションの一部として呼び出される InitFcn
コールバックはライブラリに対しては設定できません。
Simulink® エディターで、プロパティ インスペクターを開きます。[モデル化] タブの [設計] で [プロパティ インスペクター] をクリックします。
モデルの最上位階層で何も選択せずに、[プロパティ] タブの [コールバック] セクションに設定するコールバックを選択します。
ボックス内に、コールバックで実行する関数を入力します。
プログラムによりモデルのコールバックを作成するには、関数 set_param
を使用して、MATLAB® コードをモデル コールバック パラメーターに割り当てます。モデルのコールバック パラメーターを参照してください。
モデルの階層構造では、コールバックの実行は、最上位モデルとその参照モデルでそれぞれのコールバックが実行される順序が反映されます。たとえば、以下を仮定します。
モデル A:
アクセラレータ モードでモデル B を参照する。
MATLAB ワークスペース内に変数を作成する PostLoadFcn
コールバックが設定されている。
[Rebuild
] コンフィギュレーション パラメーターが [Always
]、[If changes detected
] または [If
any changes in known dependencies detected
] に設定されている。
モデル B:
MATLAB ワークスペースをクリアする CloseFcn
コールバックが設定されている。
ビルドされていない、または期限が切れている。
モデル A のシミュレーションによって、参照モデル B のリビルドがトリガーされます。Simulink がモデル B をリビルドするときに、モデル B を開閉して、モデル B の CloseFcn
コールバックを呼び出します。モデル A OpenFcn
コールバックによって作成された変数を含む、MATLAB ワークスペースを CloseFcn
がクリアします。
モデル B の CloseFcn
コールバックを使用する代わりに、モデル A の StopFcn
コールバックを使用して、モデルによって使用される変数を MATLAB ワークスペースからクリアすることも可能です。または、データのデータ ディクショナリを使用して、ベース ワークスペース内に変数を含める必要性をなくすことができます。
同じモデルの複数のインスタンスをノーマル モードで参照している場合、各インスタンスでコールバックが実行されます。
アクセラレータ モードで参照されるモデルについては、Simulink は一部のコールバックを実行しません。すべてが最新の状態で、[リビルド] コンフィギュレーション パラメーターが [既知の依存関係で任意の変更が検出された場合]
に設定されている場合、参照モデルはコンパイルされず、その InitFcn
コールバックは実行されません。アクセラレータ モードの参照モデルは、参照モデルの代わりに開始および停止する S-Function を使用するため、StartFcn
や StopFcn
などのコールバックは実行されません。
メモ
シミュレーション出力は、コマンド ライン シミュレーションの StopFcn
コールバックでは使用できません。