このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ブロックのコールバック
ブロックが読み込まれるとき、開かれるとき、編集されるときなどにブロック イベントの MATLAB® コードを実行するブロック コールバックを指定できます。
[モデル化] タブの [設計] で、[プロパティ インスペクター] をクリックします。
コールバックを指定するブロックを選択します。
プロパティ インスペクターの [プロパティ] タブの [コールバック] セクションで、定義するコールバックを選択します。
ボックス内に、コールバックで実行する関数を入力します。
プログラムによりブロックのコールバックを指定するには、set_param
を使用して、MATLAB コードをブロックのコールバック パラメーターに割り当てます。
モデリング アクションが起こる前か起こった後にブロックのコールバックが実行される場合、そのコールバックはモデリング アクションの直前または直後に発生します。
ブロックを開くコールバック パラメーター
ブロックのコールバック パラメーター | いつ実行されるか |
---|---|
| ブロックを開くとき。 一般に、このパラメーターは Subsystem ブロックで使用します。 コールバックが実行されるのは、ブロックをダブルクリックしたときか、ブロックを引数として
|
| ブロック線図が読み込まれた後。 Subsystem ブロックの場合は、 |
ブロックを編集するコールバック パラメーター
ブロックのコールバック パラメーター | いつ実行されるか |
---|---|
| ブロックが移動またはサイズが変更されたとき。 |
| ブロックの名前やパスが変更された後。 Subsystem ブロックのパスが変更された場合、Subsystem ブロックは子孫のブロックの |
PreCopyFcn | ブロックがコピーされる前。
ブロック |
| ブロックがコピーされた後。コールバックは、
|
| ブロックがシステム クリップボードにコピーまたは切り取られたとき。 |
PreDeleteFcn | ブロックがグラフィカルに削除される前 (たとえば、ユーザーがブロックをグラフィカルに削除するときやブロックで
|
| ブロックをグラフィカルに削除した後 (たとえば、ブロックをグラフィカルに削除したとき、ブロックで
Subsystem ブロックの場合は、 |
| ブロックがメモリから削除されたとき (たとえば、ブロックまたはブロックを含むサブシステムで ブロックをまだグラフィカルに削除していない場合は、 |
| ブロックの削除が元に戻されたとき。 |
ブロックのコンパイルおよびシミュレーションのコールバック パラメーター
ブロックのコールバック パラメーター | いつ実行されるか |
---|---|
| ブロック線図がコンパイルされる前とブロック パラメーターが評価される前。 |
| ブロック線図がコンパイルされた後とシミュレーションを開始する前。 S-Function ブロックの場合は、 |
| シミュレーションを継続する前。 |
| シミュレーションの一時停止時。 |
| シミュレーションの終了時。 S-Function ブロックの場合、 |
ブロックを保存するまたは閉じるコールバック パラメーター
ブロックのコールバック パラメーター | いつ実行されるか |
---|---|
| ブロック線図を閉じる前。 Subsystem ブロックの場合は、 |
| ブロック線図を読み込んだ後。 Subsystem ブロックの場合は、 |
| ブロックが
たとえば、開いている MATLAB ウィンドウをすべて閉じるには、以下のようなコマンドを使用します。 set_param('my_model','CloseFcn','close all') |
| ブロック線図を閉じる前。 モデルを閉じると、ブロックの Subsystem ブロックの場合は、 |
Subsystem ブロック コールバック パラメーター
他のブロックのコールバック パラメーターを Subsystem ブロックで使用できますが、次の表のコールバック パラメーターは Subsystem ブロックに固有のものです。
メモ
マスク サブシステムに対するコールバックは、マスク サブシステムのパラメーターを直接参照することができません (ブロック マスクの作成を参照)。Simulink® は MATLAB ベース ワークスペースにあるブロック コールバックを評価しますが、一方マスク パラメーターはマスク サブシステムのプライベート ワークスペースに存在します。ただし、ブロック コールバックは get_param
を使用してマスク パラメーターの値を取得することができます。たとえば、ここで、gain
は現在のブロックにおけるマスク パラメーターの名前です。
get_param(gcb, 'gain')
ブロックのコールバック パラメーター | いつ実行されるか |
---|---|
| ブロックまたはラインがサブシステムで削除された後。 ブロックに |
| エラーがサブシステム内で発生したとき。
newException = errorHandler(subsys, ... errorType, originalException) ここで、
元の例外を発行する場合は、サブシステムやエラー タイプの指定は不要です。 次のコマンドは、 set_param(subsys,'ErrorFcn','errorHandler') set_param の呼び出しでは、コールバック コードの入力引数を含めないでください。Simulink は、コールバックによって返されるエラー メッセージを表示します。 |
| ブロックを含むサブシステムを閉じる前または以下を使用してブロックを新しいサブシステムの一部にする際
モデルを閉じたときに、Simulink がルート モデル レベルでブロックの |