Main Content

Callback Button

外観をカスタマイズできるボタンを使用して MATLAB コードを実行する

R2021b 以降

  • Callback Button block

ライブラリ:
Simulink / Dashboard / Customizable Blocks

説明

Callback Button ブロックは、クリックまたはボタンの押下に応答して MATLAB® コードを実行します。ボタンを押すと、指定した時間範囲の経過後に、または指定した時間間隔でコードが実行されます。クリックと押下とで異なるコードを実行するようにブロックを構成できます。Customizable Blocks ライブラリの Callback Button ブロックを使用すると、実際のシステムにおけるボタンのようにブロックの外観をカスタマイズすることもできます。

バーチャル ボタンを押すには、Callback Button ブロックをクリックします。ポインターを押している間、ボタンが押されます。ポインターを離すと、ボタンが離されます。

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 状態ラベル

  • 状態アイコン

  • 状態イメージ

メモ

Callback Button ブロックをダブルクリックしても、シミュレーション中やブロックが選択されているときは、そのダイアログ ボックスは開きません。ブロック パラメーターを編集する場合は、[プロパティ インスペクター] を使用するか、次のようにブロック ダイアログ ボックスを開くことができます。

  • ブロックが選択されておらず、モデルのシミュレーションが行われていないときに、ブロックをダブルクリックする

  • ブロックを右クリックし、コンテキスト メニューから [ブロック パラメーター] を選択する

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

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

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

  • ブロック固有のタブの [設計] で、[編集] をクリックする。

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

  • ブロックの上で一時停止すると表示される省略記号で、[カスタム ブロックの編集] ボタンをクリックする。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

パラメーター

すべて展開する

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

パラメーター

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

メイン

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

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

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

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

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

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

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

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

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

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

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

プログラムでの使用

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

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

プログラムでの使用

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

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

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

ヒント

  • 縦横比がロックされている場合、新しい背景イメージを追加すると、背景イメージの縦横比に適合するようにブロックの縦横比が変更されます。

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

コールバック

ボタンのクリックに応答して実行される 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 キャンバスでブロックのサイズを変更するときに縦横比を維持する場合はこのパラメーターを選択します。

ヒント

  • 縦横比がロックされている場合、新しい背景イメージを追加すると、背景イメージの縦横比に適合するようにブロックの縦横比が変更されます。

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

状態

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

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

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

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

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

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

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

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

メモ

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

例: Pressed

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

プログラムでの使用

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

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

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

ボタンのテキストの配置を設定します。

  • Center:ブロックの左端と右端の中間

  • Left:ブロックの左端

  • Right:ブロックの右端

ボタンのテキストの配置を設定します。

  • Center:ブロックの上端と下端の中間

  • Bottom:ブロックの下端

  • Top:ブロックの上端

選択した [水平方向の配置] 設定における既定の位置からボタン テキストの中心までの水平方向のオフセットをブロックの幅の比率として指定します。オフセットが 0 のときのテキストの位置を基準に、負の値のオフセットではテキストが左に移動し、正の値のオフセットではテキストが右に移動します。

選択した [垂直方向の配置] 設定における既定の位置からボタン テキストの中心までの垂直方向のオフセットをブロックの高さの比率として指定します。オフセットが 0 のときのテキストの位置を基準に、負の値のオフセットではテキストが上に移動し、正の値のオフセットではテキストが下に移動します。

ボタンのテキストを基準としたアイコンの配置を指定します。

メモ

アイコンの配置を変更するとボタンのテキストも移動しますが、テキストの指定した [X オフセット][Y オフセット][水平方向の配置]、または [垂直方向の配置] は変更されません。

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

例: 0.5

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

例: 0.5

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

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

例: 1

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

例: 1

背景イメージ

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

メモ

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

  • 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 ブロックを使用します。

拡張機能

バージョン履歴

R2021b で導入

すべて展開する