メインコンテンツ

Callback Button

ボタンを使用した MATLAB コードの実行

  • Callback Button block

ライブラリ:
Simulink / Dashboard

説明

Callback Button ブロックは、クリック (ポインターをすぐに解放) または押下 (ポインターを遅れて解放) に応答して MATLAB® コードを実行します。クリックと押下で異なるコードを指定できます。ボタンを押すと、指定した時間範囲の後か指定した時間間隔でコードが実行されます。Callback Button ブロックの外観を、実際のシステムにおけるボタンのようにカスタマイズできます。Callback Button ブロックを他の Dashboard ブロックと共に使用して、モデルを制御する対話型のダッシュボードを作成します。

Callback Button ブロックが "アクティブ" なときは、ブロックが表すガジェットを操作できます。アクティブな Callback Button ブロックをクリックすると、バーチャル ボタンが押されます。ポインターを押している間、ボタンが押されます。ポインターを離すと、ボタンが解除されます。Callback Button ブロックは、シミュレーションを実行しているときはアクティブになります。また、独自のウィンドウで開いたパネルかドックされてロックが解除されているパネルにある場合、あるいはクリックまたは押下によってトリガーされるコールバックの少なくとも 1 つに空でない値がある場合もアクティブになります。ボタンを押すことなくアクティブな Callback Button ブロックを選択するには、Shift キーを押してからブロックをクリックします。アクティブな Callback Button ブロックの [ブロック パラメーター] ダイアログ ボックスを開くには、Shift キーを押してからブロックをダブルクリックします。

ブロックが非アクティブなときは、ブロックの操作のみが可能で、ブロックのサイズ変更やドラッグなどのアクションを実行できます。非アクティブな Callback Button ブロックを一時的にアクティブにするには、ブロックをクリックします。Callback Button ブロックを選択解除すると、ブロックは再び非アクティブになります。

コールバック関数を使ってボタンを押したときの動作を指定します。

  • 関数 PressFcn は、ボタンが押されている間実行されます。ボタンが押されている間に関数 PressFcn を 1 回だけ実行するようにボタンを構成するか、繰り返し間隔を指定できます。関数を 1 回だけ実行するには、繰り返し間隔 0 を指定します。

  • 関数 ClickFcn は、ボタンを離すと実行されます。

ポインターを離したときにボタンが押されたままになるように構成するには、[ボタン タイプ][ラッチ] に設定します。ラッチ ボタン タイプを選択すると、次のようになります。

  • ボタンをラッチするには、ボタンをクリックします。

  • ボタンのラッチを解除するには、ボタンをもう一度クリックします。

関数 PressFcn は、ボタンがラッチされている間実行されます。関数 ClickFcn は、ボタンをラッチすると 1 回実行され、ボタンのラッチを解除すると 1 回実行されます。

状態を使用して、ボタンの操作時に Callback Button ブロックの外観がどのように変化するかを指定できます。

  • ボタンを押している間、ブロックは [押下] 状態になります。

  • ボタンがラッチされているときにボタンを押さないと、ブロックは [ラッチ] 状態になります。

  • ボタンがラッチされているときにボタンを押すと、ブロックは [ラッチかつ押下] 状態になります。

  • これら 3 つのどの状態でもない場合、ブロックは [既定] 状態になります。

状態により、ポインター アクションが以下と組み合わされます。

  • 状態ラベル

  • 状態アイコン

  • 状態イメージ

Callback Button ブロックのカスタマイズ

Callback Button ブロックをモデルに追加すると、既定の設計でブロックが事前構成されます。ブロックを既定の設計で使用することも、ブロックの外観をカスタマイズすることもできます。

ブロックの外観をカスタマイズするには、設計モードを使用します。ブロックを選択してから、次の 3 つのいずれかの方法で設計モードを開始できます。

  • Simulink® ツールストリップのブロック固有のタブにある [設計][編集] をクリックする。

  • プロパティ インスペクターの [設計] タブで、[編集] をクリックする。

  • ブロックをポイントすると表示される省略記号で [カスタム ブロックの編集] ボタン をクリックする。

Callback Button block in design mode with the toolbar and the Design tab in the Property Inspector visible.

Callback Button ブロックの設計時に、考えられる状態それぞれについてブロックの外観を構成します。[ブロック タイプ][モーメンタリ] に設定する場合、ブロックがもつ状態は 2 つです。[ブロック タイプ][ラッチ] に設定する場合、ブロックがもつ状態は 4 つです。

ブロックの上にあるツール バーを使用して、状態を切り替えることができます。各状態について、以下を行うことができます。

  • 状態イメージをアップロードする。

  • 状態アイコンをアップロードし、状態ラベルを基準としたアイコンの位置を指定する。

  • 状態ラベルのテキスト、色、不透明度、および位置を指定する。

前景または背景イメージをアップロードするか、塗りつぶしの背景色を設定することもできます。前景と背景はすべての状態に適用されます。

ブロックの上にあるツール バーを使用して、イメージ、アイコン、状態ラベルの色と不透明度を構成します。

ブロックの設計を詳細に制御するには、プロパティ インスペクターの [設計] タブを使用します。設計の設定の正確な値を入力することができます。

[設計] タブは次の目的に使用します。

  • 状態ラベルのテキストと位置を指定する。

  • アイコンの位置を指定する。

  • 前景イメージをアップロードする。

  • 背景イメージをアップロードする。

  • 塗りつぶしの背景色を設定する。

設計の編集が完了し、設計モードを終了するには、キャンバスの右上にある [X] をクリックします。

すべて展開する

Callback Button ブロックを使用して、シミュレーション前またはシミュレーション中にパラメーター値を制御できます。たとえば、モデル callbackGain には、Gain ブロックの [ゲイン] パラメーターの値を 510、または 15 に設定するように構成された 3 つの Callback Button ブロックがあります。

Block Parameters dialog box for the Callback Button block labeled k = 5.

モデルのシミュレーションを実行します。ゲイン値を変更するには、Callback Button ブロックをクリックします。

Animation showing the callbackGain model during simulation.

拡張例

パラメーター

すべて展開する

プロパティ インスペクターと [ブロック パラメーター] ダイアログ ボックスを使用してブロック パラメーターの値を指定します。Dashboard ブロックのコア パラメーターを設定するには、[ブロック パラメーター] ダイアログ ボックスまたはプロパティ インスペクターの [パラメーター] タブを使用します。ブロックをカスタマイズするには、プロパティ インスペクターの [設計] タブを使用します。ブロックの [ブロック パラメーター] ダイアログ ボックスを開くには、ブロックをダブルクリックします。プロパティ インスペクターを開くには、[モデル化] タブの [設計][プロパティ インスペクター] を選択します。

パラメーター

Dashboard ブロックのコア パラメーターを設定するには、プロパティ インスペクターを開き、[パラメーター] タブをクリックします。

メイン

クリックに対するブロックの応答を指定します。

  • モーメンタリ — ボタンを押している間のみ状態が変化します。クリックを離すと、ボタンはその既定の状態に戻ります。

  • ラッチ — ボタンをクリックしたときに状態の変更がラッチされます。もう一度クリックするまで、ボタンは押下状態のままになります。

[ボタン タイプ][モーメンタリ] に設定する場合、ブロックがもつ状態は次のとおりです。

  • 既定 — ブロックが押されていないときの既定の状態

  • 押下 — ブロックが押されているときのブロックの状態

[ボタン タイプ][ラッチ] に設定する場合、ブロックがもつ状態は次のとおりです。

  • 既定 — ブロックが押されていないときの既定の状態。

  • 押下[既定] 状態の間にボタンを押したときの移行状態。クリックを離すと、ブロックは [ラッチ] 状態に遷移します。

  • ラッチ — ブロックが押されていないときのラッチ状態。

  • ラッチかつ押下[ラッチ] 状態の間にボタンを押したときの移行状態。クリックを離すと、ブロックは [既定] 状態に遷移します。

プログラムでの使用

ブロック パラメーター: ButtonType
型: string または文字配列
値: 'Momentary' | 'Latch'

ボタン ラベルのテキストを指定します。ラベルは、[設計] タブの [状態] コンポーネントの [状態の選択] セクションで選択されている状態のボタンに適用されます。

プログラムでの使用

ブロックの ButtonText パラメーターを string または文字ベクトルとして指定します。

ブロック パラメーター: ButtonText
: 文字ベクトル | string

Simulink キャンバスでブロックのサイズを変更するときに縦横比を維持する場合はこのパラメーターを選択します。

縦横比がロックされている場合、新しい背景イメージを追加すると、背景イメージの縦横比に適合するようにブロックの縦横比が変更されます。縦横比がロックされていない場合、新しい背景イメージを追加してもブロックの縦横比は変更されませんが、代わりにブロックのサイズに適合するように背景イメージの縦横比が変更されます。

縦横比がロックされている場合、ブロックのサイズ変更中に Shift キーを押している間は縦横比のロックが一時的に解除されます。Shift キーを放すと縦横比がロックされます。縦横比がロックされていない場合、ブロックのサイズ変更中に Shift キーを押している間は縦横比が一時的にロックされます。Shift キーを放すと縦横比のロックが解除されます。

コールバック

ボタンのクリックに応答して実行される MATLAB コード。

ボタンをクリックするたびに、クリックを離した時点で [ClickFcn] のコードが 1 回実行されます。

[ClickFcn] のコードを指定するには、ドロップダウン メニューから [ClickFcn] を選択します。メニューの下にあるテキスト ボックスにコードを入力します。

プログラムでの使用

ブロックの ClickFcn パラメーターを string または文字ベクトルとして書式設定された MATLAB コードとして指定します。

ブロック パラメーター: ClickFcn
: 文字ベクトル | string
値: MATLAB コード

ボタンの押下に応答して実行される MATLAB コード。

ボタンが押された状態の間、[押下遅延] の時間の経過時、および [繰り返し間隔] ごとに定期的に [PressFcn] のコードが 1 回実行されます。

[PressFcn] のコードを指定するには、ドロップダウン メニューから [PressFcn] を選択します。メニューの下にあるテキスト ボックスにコードを入力します。

ボタンをどのように押すと [PressFcn] のコードが実行されるかは、[ボタン タイプ] によって決まります。

  • [ボタン タイプ][モーメンタリ] の場合は、ボタンを押す時間にわたってクリックしたままにします。

  • [ボタン タイプ][ラッチ] の場合は、ボタンをクリックして押しますが、クリックしたままにしません。もう一度クリックするまで、ボタンは押されたままになります。

メモ

ボタンをクリックするたびに、ボタンを押すプロセスの一環としてクリックした場合でも、クリックを離した時点で [ClickFcn] のコードが 1 回実行されます。

プログラムでの使用

ブロックの PressFcn パラメーターを string または文字ベクトルとして書式設定された MATLAB コードとして指定します。

ブロック パラメーター: PressFcn
: 文字ベクトル | string
値: MATLAB コード

[PressFcn] コードを実行させるために必要な時間。

依存関係

[押下遅延 (ms)][PressFcn] がコールバックとして選択されている場合にのみ表示されます。

プログラムでの使用

ブロックの PressDelay パラメーターを正のスカラー値として指定します。

ブロック パラメーター: PressDelay
型: スカラー

Callback Button ブロックがまだ押されている場合に、[PressFcn] コードを再び実行した後の時間間隔。

依存関係

[繰り返し間隔 (ms)][PressFcn] がコールバックとして選択されている場合にのみ表示されます。

プログラムでの使用

ブロックの RepeatInterval パラメーターを正のスカラー値として指定します。

ブロック パラメーター: RepeatInterval
型: スカラー

設計

Dashboard ブロックをカスタマイズするには、プロパティ インスペクターを開き、[設計] タブで [編集] をクリックします。

ボタン

Simulink キャンバスでブロックのサイズを変更するときに縦横比を維持する場合はこのパラメーターを選択します。

縦横比がロックされている場合、新しい背景イメージを追加すると、背景イメージの縦横比に適合するようにブロックの縦横比が変更されます。縦横比がロックされていない場合、新しい背景イメージを追加してもブロックの比率は変更されませんが、代わりにブロックのサイズに適合するように背景イメージが引き伸ばされたりスケーリングされたりします。

縦横比がロックされている場合、ブロックのサイズ変更中に Shift キーを押している間は縦横比のロックが解除されます。Shift キーを放すと縦横比がロックされます。縦横比がロックされていない場合、ブロックのサイズ変更中に Shift キーを押している間は縦横比がロックされます。Shift キーを放すと縦横比のロックが解除されます。

状態

[状態] コンポーネントの [状態の選択] セクションのドロップダウン メニューから、設定する状態を選択します。[ボタン タイプ][モーメンタリ] の場合は、以下の状態を選択できます。

  • 既定 — ブロックが押されていないときの既定の状態

  • 押下 — ブロックが押されているときのブロックの状態

[ボタン タイプ][ラッチ] の場合は、以下の状態を選択できます。

  • 既定 — ブロックが押されていないときの既定の状態。

  • 押下[既定] 状態の間にボタンを押したときの移行状態。クリックを離すと、ブロックは [ラッチ] 状態に遷移します。

  • ラッチ — ブロックが押されていないときのラッチ状態。

  • ラッチかつ押下[ラッチ] 状態の間にボタンを押したときの移行状態。クリックを離すと、ブロックは [既定] 状態に遷移します。

メモ

状態については、[設計] タブの [状態] コンポーネントですべてのパラメーターを構成できます。たとえば、その状態のときにボタンに表示されるアイコンを選択できます。[状態] コンポーネントでいずれかのパラメーターを構成すると、変更内容は、[状態] コンポーネントの [状態の選択] セクションで選択されている状態に適用されます。

例: Pressed

ボタン ラベルのテキストを指定します。ラベルは、[設計] タブの [状態] コンポーネントの [状態の選択] セクションで選択されている状態のボタンに適用されます。

プログラムでの使用

ブロックの ButtonText パラメーターを string または文字ベクトルとして指定します。

ブロック パラメーター: ButtonText
: 文字ベクトル | string

ラベル テキストのフォントの色を標準色のパレットから選択するか、カスタムの色を指定します。色は、[設計] タブの [状態] コンポーネントの [状態の選択] セクションで選択されている状態のラベル テキストに適用されます。

水平方向におけるラベルとアイコンのペアの配置を設定します。次の表に、[X オフセット] が 0 の場合におけるラベルとアイコンのペアの水平方向の位置を示します。[X オフセット] が非ゼロの場合、ラベルとアイコンのペアは表に示されている位置から移動します。

配置ラベルとアイコンのペアの位置
Leftラベルとアイコンのペアの左端がブロックの左端になります。
Centerラベルとアイコンのペアの水平方向中央がブロックの水平方向中央になります。
Rightラベルとアイコンのペアの右端がブロックの右端になります。

垂直方向におけるラベルとアイコンのペアの配置を設定します。次の表に、[Y オフセット] が 0 の場合におけるラベルとアイコンのペアの垂直方向の位置を示します。[Y オフセット] が非ゼロの場合、ラベルとアイコンのペアは表に示されている位置から移動します。

配置ラベルとアイコンのペアの位置
Topラベルとアイコンのペアの上端がブロックの上端になります。
Centerラベルとアイコンのペアの垂直方向中央がブロックの垂直方向中央になります。
Bottomラベルとアイコンのペアの下端がブロックの下端になります。

[X オフセット] の測定方法は [水平方向の配置] の値によって異なります。次の表に、オフセットの測定方法を [水平方向の配置] の値ごとに示します。オフセットが 0 のときの位置を基準に、負の値のオフセットではテキストが左に移動し、正の値のオフセットではテキストが右に移動します。

水平方向の配置オフセット
Leftブロックの左端からラベルとアイコンのペアの左端までの水平方向のオフセットをブロックの幅の比率として指定します。
Centerブロックの水平方向中央からラベルとアイコンのペアの水平方向中央までの水平方向のオフセットをブロックの幅の比率として指定します。
Rightブロックの右端からラベルとアイコンのペアの右端までの水平方向のオフセットをブロックの幅の比率として指定します。

[Y オフセット] の測定方法は [垂直方向の配置] の値によって異なります。次の表に、オフセットの測定方法を [垂直方向の配置] の値ごとに示します。オフセットが 0 のときのテキストの位置を基準に、負の値のオフセットではテキストが上に移動し、正の値のオフセットではテキストが下に移動します。

垂直方向の配置オフセット
Topブロックの上端からラベルとアイコンのペアの上端までの垂直方向のオフセットをブロックの幅の比率として指定します。
Centerブロックの垂直方向中央からラベルとアイコンのペアの垂直方向中央までの垂直方向のオフセットをブロックの幅の比率として指定します。
Bottomブロックの下端からラベルとアイコンのペアの下端までの垂直方向のオフセットをブロックの幅の比率として指定します。

ラベルを基準としたアイコンの配置を指定します。

メモ

アイコンの配置を変更するとラベルが移動しますが、ラベルのオフセットまたは配置は変更されません。

アイコンの幅をラベル テキストのフォント高さの比率として指定します。

例: 0.5

アイコンの高さをラベル テキストのフォント高さの比率として指定します。

例: 0.5

プロパティ インスペクターを使用してイメージのサイズを変更するときに縦横比を維持する場合はこのオプションを有効にします。

ブロックの左端からイメージの左端までの水平方向のオフセットをブロックの幅の比率として指定します。オフセットが 0 のときのイメージの位置を基準に、負の値のオフセットではイメージが左に移動し、正の値のオフセットではイメージが右に移動します。

例: 1

ブロックの上端からイメージの上端までの垂直方向のオフセットをブロックの高さの比率として指定します。オフセットが 0 のときのイメージの位置を基準に、負の値のオフセットではイメージが上に移動し、正の値ではイメージが下に移動します。

例: 1

イメージの幅をブロックの幅の比率として指定します。

例: 0.5

イメージの高さをブロックの高さの比率として指定します。

例: 0.5

背景イメージ

ブロックの背景イメージを提供するか、ボタンの塗りつぶしの背景色を選択できます。ボタンの塗りつぶしの背景色を選択するには、このパラメーターを選択します。ブロックの背景イメージを提供するには、このパラメーターをクリアします。

メモ

  • ボタンの塗りつぶしの背景色を設定した場合、状態イメージは表示されません。状態イメージを表示するには、[背景色の使用] をオフにします。

  • Simulink ツールストリップの [書式設定] タブを使用して背景色を変更すると、背景イメージが削除され、[背景色の使用] パラメーターがオンになります。

例: on

ボタンの塗りつぶしの背景色を選択するには、[背景色の使用] パラメーターを有効にします。次に、背景色を標準色のパレットから選択するか、カスタムの色を指定します。

メモ

塗りつぶしの背景色を設定した場合、状態イメージは表示されません。状態イメージを表示するには、プロパティ インスペクターの [設計] タブの [背景イメージ] コンポーネントで、[背景色の使用] をオフにします。

ヒント

Simulink ツールストリップの [書式設定] タブで [背景色] を指定することもできます。

ブロックのテキストの色を指定するには、[フォントの色] パラメーターを使用します。

プログラムでの使用

ブロックの BackgroundColor パラメーターを値が 0 から 1 の間の string または文字ベクトルとして書式設定された 13 列の [r g b] ベクトルとして指定します。

ブロック パラメーター: BackgroundColor
: 文字ベクトル | string
値: [r g b] ベクトル

塗りつぶしの背景色の不透明度を 0 ~ 1 のスカラー値として指定します。

例: 0.5

塗りつぶしの背景色でカバーされる領域の角の半径を指定します。

例: 0.25

前景イメージ

ブロックの左端からイメージの左端までの水平方向のオフセットをブロックの幅の比率として指定します。オフセットが 0 のときのイメージの位置を基準に、負の値のオフセットではイメージが左に移動し、正の値のオフセットではイメージが右に移動します。

例: 1

ブロックの上端からイメージの上端までの垂直方向のオフセットをブロックの高さの比率として指定します。オフセットが 0 のときのイメージの位置を基準に、負の値のオフセットではイメージが上に移動し、正の値ではイメージが下に移動します。

例: 1

前景イメージの幅をブロックの幅の比率として指定します。

例: 0.5

前景イメージの高さをブロックの高さの比率として指定します。

例: 0.5

プロパティ インスペクターを使用してイメージのサイズを変更するときに縦横比を維持する場合はこのパラメーターを選択します。

ブロックの特性

データ型

直達

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

ヒント

モデル内の変数またはパラメーターの値を変更するボタンを設計するには、Push Button ブロックを使用します。

拡張機能

すべて展開する

バージョン履歴

R2017b で導入

すべて展開する