Using Simulink | ![]() ![]() |
コールバックルーチンの使用法
ブロック線図またはブロックを、特定の方法で動作させた場合に実行されるMATLAB表現を定義することができます。コールバックルーチン と呼ばれるこれらの表現は、ブロックまたはモデルパラメータに関連付けられます。たとえば、ブロックの OpenFcn
パラメータに関連付けられたコールバックは、そのブロック名をダブルクリックするかパスを変更したときに実行されます。
コールバックルーチンを定義し、それらをパラメータに関連付けるためには、set_param
コマンドを使用します (set_param
をご参照ください)。
たとえば、つぎのコマンドは、ユーザが mymodel
のTestブロックをダブルクリックすると、変数 testvar
を評価します。
set_param('mymodel/Test', 'OpenFcn', testvar)
多くのモデルコールバックと関連したルーチンに対して、clutch
システム(clutch.mdl
)を調べてみることができます。
つぎの表は、コールバックルーチンを定義することができるパラメータの一覧を示し、それらのコールバックルーチンがいつ実行されるかを示します。動作が起こる前か後に実行されるルーチンは、それぞれ、動作の直前か直後に発生します。
パラメータ |
実行時 |
CloseFcn |
close_system コマンドを使用してブロックを閉じるとき |
CopyFcn |
ブロックをコピーした後。コールバックは、Subsystemブロックに対して再帰的です(つまり、CopyFcn パラメータが定義されているブロックを含むSubsystemブロックをコピーすると、そのルーチンも実行されます)。ルーチンは、add_block コマンドを用いてブロックをコピーする場合も実行されます。 |
DeleteFcn |
ブロックを削除する前。このコールバックは、Subsystemブロックに対して再帰的です。 |
DestroyFcn |
ブロックが削除される時 |
InitFcn |
ブロック線図がコンパイルされる前とブロックパラメータが評価される前。. |
LoadFcn |
ブロック線図がロードされた後。このコールバックは、Subsystemブロックに対して再帰的です。 |
ModelCloseFcn |
ブロック線図を閉じる前。このコールバックはSubsystemブロックに対して再帰的です。 |
MoveFcn |
ブロックが移動またはサイズが変更されたとき。 |
NameChangeFcn |
ブロック名またはパスを変更した後。Subsystemブロックのパスを変更すると、それ自身の NameChangeFcn ルーチンを呼び出した後、それが含むすべてのブロックに対してこの関数を再帰的に呼び出します。 |
OpenFcn |
ブロックを開くとき。このパラメータは、一般にSubsystemブロックで使用します。ルーチンはブロックをダブルクリックするか、ブロックを引数として open_system コマンドを呼び出すと実行されます。OpenFcn パラメータは、ブロックのオープンと関連した通常の挙動、すなわちブロックのダイアログボックスを表示するかサブシステムをオープンする動作を変更します。 |
ParentCloseFcn |
ブロックを含むサブシステムを閉じる前、またはCreate Subsystemコマンドによりブロックを新しいサブシステムの一部とするとき。(new_system を参照)。 |
PreSaveFcn |
ブロック線図の保存前。このコールバックは、Subsystemブロックに対して再帰的です。 |
PostSaveFcn |
ブロック線図の保存後。このコールバックは、Subsystemブロックに対して再帰的です。 |
StartFcn |
ブロック線図がコンパイルされた後とシミュレーションを開始する前。S-Functionブロックの場合は、 StartFcn は、ブロックの mdlProcessParameters 関数の最初の実行のすぐ前に実行されます。詳細は、Writing S-Functions の第3章の"Overview of the C MEX S-Function Routines"を参照してください。 |
StopFcn |
シミュレーションの終了時。S-Function ブロックの場合、StopFcn はブロックの mdlTerminate 関数の実行後に実行されます。詳細は、Writing S-Functions の第3章の"Overview of the C MEX S-Function Routines"を参照してください。 |
UndoDeleteFcn |
ブロックの削除が元に戻されたとき。 |
![]() | サブシステム端子のラベリング | モデル作成のヒント | ![]() |