Main Content

Push Button

Change parameter or variable value using button with customizable appearance

Since R2021b

  • Push Button block.

Libraries:
Simulink / Dashboard / Customizable Blocks

Description

Use the Push Button block to change the value of the connected variable or parameter before or during simulation. You can configure the button to change the value only while you press the button or to latch the value change until you click the button again. When you use the Push Button block in the Customizable Blocks library, you can modify the appearance of the block so it looks like a button in your real system. Use the Push Button block with other Dashboard blocks to create an interactive dashboard to control your model.

To push the virtual button during simulation, click the Push Button block. To push the virtual button when the simulation is not running, select the Push Button, and then click the Push Button block. While you press down your pointer for the click, the button is pushed. When you release your pointer, you release the button.

You can use callback functions to specify what you want the button to do:

  • PressFcn functions run while the button is pushed. You can configure the button to run the PressFcn function only once while the button is pushed, or you can specify a repeat interval.

  • ClickFcn functions run when you release the button.

You can configure the button to stay pushed when you release your pointer by setting the Button Type to Latched. When you choose the latched button type:

  • To latch the button, click the button.

  • To unlatch the button, click the button again.

The PressFcn function runs while the button is latched. The ClickFcn function runs once when you latch the button and once when you unlatch the button.

You can use states to specify how the appearance of the Push Button block changes when you interact with the button:

  • While you push the button, the block is in the Pressed state.

  • When the button is latched and you are not pushing it, the block is in the Latched state.

  • When the button is latched and you are pushing it, the block is in the Latched and Pressed state.

  • When the block is not in any of these three states, it is in the Default state.

A state pairs pointer actions with:

  • A state label

  • A state icon

  • A state image

The Pressed, Latched, and Latched and Pressed states also pair pointer actions with the On Value of the Push Button block. When you enter one of these states from the default state, the On Value is assigned to the Simulink® component to which the Push Button block connects and stays assigned until the button returns to the Default state. If you release the button before a full time step elapses, the On Value is assigned to the component for the duration of the subsequent time step.

Note

Double-clicking the Push Button block does not open its dialog box during simulation or when the block is selected. To edit the block parameters, you can use the Property Inspector or open the block dialog box by:

  • Double-clicking the block when the block is not selected and the model is not simulating

  • Right-clicking the block and selecting Block Parameters from the context menu

Customize Push Button Blocks

When you add a Push Button block to your model, the block is preconfigured with a default design. You can use the block with the default design or customize the appearance of the block.

To customize the appearance of the block, use design mode. After selecting the block, you can enter design mode in one of three ways:

  • On the block-specific tab, under Design, click Edit.

  • In the Property Inspector, on the Design tab, click Edit.

  • Pause on the ellipsis that appears over the block and click Edit Custom Block.

In design mode, you can use the toolbar above the block to customize the push button. To access additional customization options or to enter exact values for design settings, use the Design tab in the Property Inspector.

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

When you customize a Push Button block, you configure the block appearance for each state. When you configure the Block Type as Momentary, the block has two states. When you configure the Block Type as Latch, the block has four. To select a state to customize, use the drop-down list in the toolbar. Alternatively, on the Design tab, select the States component and then select from the Select State list.

Design Mode Actions that Customize the Selected State

ActionAvailable in ToolbarAvailable in Design Tab

Specify the On Value for the Pressed, Latched, and Latched and Pressed states.

NoYes

Upload a state image.

YesYes

Upload a state icon.

YesYes

Specify the state label text.

NoYes

Specify the color and opacity of the state label text.

YesYes

Change the size of the state image and state icon.

NoYes

Change the position of the state label, state image, and state icon.

NoYes

In addition to customizing the block design using the toolbar and Design tab, you can also resize and reposition components interactively in the canvas. To resize a component specific to a state, such as the state image, select the state in the toolbar, and then resize or reposition the component.

Design Mode Actions that Apply to All States

ActionAvailable in ToolbarAvailable in Design Tab

Upload a background image.

NoYes

Set a solid background color.

NoYes

Upload a foreground image.

NoYes

When you finish editing the design, to exit design mode, click the X in the upper right of the canvas.

Connect Dashboard Blocks

Dashboard blocks do not use ports to connect to model elements. To connect a dashboard block, use connect mode. To enter connect mode on an unconnected block, pause on the block you want to connect and click the Connect button . To enter connect mode on a connected block, select the block, pause on the ellipsis that appears (…), and in the action menu that expands, click the Connect button.

To connect a control block to a parameter in your model or to change the connection of a control block, enter connect mode. Select the block to whose parameter you want to connect. From the list that appears, select the parameter to which you want to connect. Then, pause on the dashboard block and click the Done Connecting button .

The control block cannot connect to a parameter defined by a variable until you update the model diagram. To connect to a parameter defined by a variable or to modify the value of a variable that defines the value of a connected parameter when the simulation is not running, update the model diagram by pressing Ctrl+D.

You can connect to a parameter with a scalar value or to an element of a matrix or structure. For more information, see Connect Dashboard Blocks to Simulink Model.

You can also connect dashboard blocks to a Stateflow® chart. For more information, see Connect Dashboard Blocks to Stateflow (Stateflow).

This animation shows how to connect the Push block to your model.

An unconnected Push Button block connects to a Constant block.

Parameter Logging

Tunable parameters connected to dashboard blocks are logged to the Simulation Data Inspector, where you can view the parameter values along with logged signal data. You can access logged parameter data in the MATLAB® workspace by exporting the parameter data from the Simulation Data Inspector by using the UI or the Simulink.sdi.exportRun function. For more information about exporting data using the Simulation Data Inspector UI, see Export Data to Workspace or File. The parameter data is stored in a Simulink.SimulationData.Parameter object, accessible as an element in the exported Simulink.SimulationData.Dataset.

Limitations

  • Except for the Dashboard Scope block and the Display block, dashboard blocks can only connect to real scalar signals.

  • You cannot use the Connection table in the block dialog to connect a dashboard block to a block that is commented out. When you connect a dashboard block to a commented block using connect mode, the dashboard block does not display the connected value until the you uncomment the block.

  • Dashboard blocks cannot connect to model elements inside referenced models.

  • When you simulate a model hierarchy, dashboard blocks inside referenced models do not update.

  • Dashboard blocks do not support rapid accelerator simulation.

  • When you connect a dashboard block to a variable or parameter during simulation, the data for that variable or parameter is not logged to the Simulation Data Inspector. To log variable and parameter data to the Simulation Data Inspector, connect the dashboard block to the variable or parameter prior to simulation.

  • When you simulate a model in external mode with the Default parameter behavior set to Inlined, dashboard blocks can appear to change parameter and variable values. However, the change does not propagate to the simulation. For example, Gain blocks display changes made to the Gain parameter using the dashboard blocks, but the Gain value used in the simulation does not change.

Parameters

expand all

Use the Property Inspector and the Block Parameters dialog box to specify the values of the block parameters. To set the core parameters of the dashboard block, use the Block Parameters dialog box or the Parameters tab in the Property Inspector. To customize the block, use the Design tab in the Property Inspector. To open the Block Parameters dialog box for a block, double-click the block. To open the Property Inspector, on the Modeling tab, under Design, select Property Inspector.

Parameters

To set the core parameters of the dashboard block, open the Property Inspector and click the Parameters tab.

Connection

Dashboard blocks do not use ports to connect to model elements. To connect dashboard blocks to parameter values in your model, use connect mode, the Simulink Toolstrip, or the Connection table in the Block Parameters dialog box. You can connect to a parameter with a scalar value, or to an element of a matrix. For information about connect mode and how to connect using the toolstrip, see Connect Dashboard Blocks to Simulink Model.

To connect a control block to a parameter with a scalar value or change the connection of a control block to a parameter with a scalar value using the Connection table:

  1. Select the block.

  2. To connect the block, in the Property Inspector, on the Parameters tab, click Connect. To change the connection of the block, click Change instead.

  3. Select the block to whose parameter value you want to connect.

  4. In the table, select the parameter to which you want to connect.

  5. Click Apply.

The control block cannot connect to a parameter defined by a variable until you update the model diagram. To connect to a parameter defined by a variable or to modify the value of a variable that defines the value of a connected parameter when the simulation is not running, update the model diagram by pressing Ctrl+D.

You can also connect dashboard blocks to a Stateflow chart. For more information, see Connect Dashboard Blocks to Stateflow (Stateflow).

Programmatic Use

To programmatically connect a dashboard block to a tunable parameter, use a Simulink.HMI.ParamSourceInfo object. The Simulink.HMI.ParamSourceInfo object contains four properties. Some properties apply to connecting dashboard blocks to parameters defined by values, and some apply to connecting dashboard blocks to parameters defined by variables. Not all fields have a value for a connection because a given dashboard block connects to either to a parameter defined by a value or to a parameter defined by a variable.

Block Parameter: Binding
Type: Simulink.HMI.SignalSpecification
Default: []
Main

Specify how the block responds to a click.

  • Momentary — The button changes state only while pressed. When you release the click, the button returns to its default state.

  • Latch — The button latches the state change when clicked. The button remains in the pressed state until you click it again.

When you configure Button Type as Momentary, the block has these states:

  • Default — Default state for the block when it is not pressed

  • Pressed — Block state when the block is pressed

When you configure Button Type as Latch, the block has these states:

  • Default — Default state for the block when it is not pressed.

  • Pressed — Transitional state when you press the button while it is in the Default state. The block transitions to the Latched state when you release the click.

  • Latched — Latched state for the block when it is not pressed.

  • Latched and Pressed — Transitional state when you press the button while it is in the Latched state. The block transitions to the Default state when you release the click.

Programmatic Use

Block Parameter: ButtonType
Type: string or character array
Value: 'Momentary' | 'Latch'

Specify the text for the button label. The label is applied to the button for the state that is selected in the Select State section of the States component on the Design tab.

Programmatic Use

Specify the ButtonText parameter for the block as a string or a character vector.

Block Parameter: ButtonText
Type: character vector | string

The value assigned to the connected block parameter when the button is pressed or latched.

Tip

Use the Block Type parameter to configure how the block responds to a click:

  • Momentary — The button applies the On Value only while you press it.

  • Latch — The button latches the state change when you click it and applies the On value until you click it again.

Programmatic Use

Specify the OnValue parameter for the block as a scalar value that is formatted as a string or a character vector.

Block Parameter: OnValue
Type: string or character array
Values: scalar
Default: '1'

You can display the name of the element to which the dashboard block connects in a label positioned at the top or at the bottom of the block, or you can hide the label. If you want the label to be visible, specify the position of the block. If you do not want the label to be visible, specify Hide.

Note

When the dashboard block is not connected to an element, the label is blank.

Programmatic Use

Block Parameter: LabelPosition
Type: character vector
Values: 'Hide' | 'Bottom' | 'Top'
Default: 'Hide'

Select this parameter to maintain the aspect ratio when resizing the block in the Simulink canvas.

Tip

  • When the aspect ratio is locked, adding a new background image changes the aspect ratio of the block to match that of the background image.

  • When the aspect ratio is not locked, adding a new background image does not change the proportions of the block but instead stretches or scales the background image to fit the size of the block.

Callbacks

MATLAB code that executes in response to a click of the button.

Every time you click the button, the ClickFcn code executes once, at the point in time when you release the click.

To specify code for the ClickFcn, select ClickFcn from the drop-down menu. Enter the code in the text box below the menu.

Programmatic Use

Specify the ClickFcn parameter for the block as MATLAB code that is formatted as a string or a character vector.

Block Parameter: ClickFcn
Type: character vector | string
Values: MATLAB code

MATLAB code that executes in response to a press of the button.

While the button is in the pressed state, the PressFcn code executes once when the Press Delay time has elapsed and periodically at every Repeat Interval.

To specify code for the PressFcn, select PressFcn from the drop-down menu. Enter the code in the text box below the menu.

How you press the button to execute the PressFcn code depends on the Button Type.

  • If the Button Type is Momentary, hold down your click for the duration that you want to press the button.

  • If the Button Type is Latch, click to press the button, but do not hold down your click. The button remains pressed until you click it again.

Note

Every time that you click on the button, even when you do so as part of the process for pressing the button, the ClickFcn code executes once, at the point in time when you release the click.

Programmatic Use

Specify the PressFcn parameter for the block as MATLAB code that is formatted as a string or a character vector.

Block Parameter: PressFcn
Type: character vector | string
Values: MATLAB code

Amount of time required to cause the PressFcn code to execute.

Dependencies

Press Delay (ms) is visible only when PressFcn is selected as the callback.

Programmatic Use

Specify the PressDelay parameter for the block as a positive scalar value.

Block Parameter: PressDelay
Type: scalar

Time interval after which the PressFcn code executes again if the Callback Button block is still pressed.

Dependencies

Repeat Interval (ms) is visible only when PressFcn is selected as the callback.

Programmatic Use

Specify the RepeatInterval parameter for the block as a positive scalar value.

Block Parameter: RepeatInterval
Type: scalar

Design

To customize the dashboard block, open the Property Inspector, click the Design tab, and click Edit.

Button

Select this parameter to maintain the aspect ratio when resizing the block in the Simulink canvas.

Tip

  • When the aspect ratio is locked, adding a new background image changes the aspect ratio of the block to match that of the background image.

  • When the aspect ratio is not locked, adding a new background image does not change the proportions of the block but instead stretches or scales the background image to fit the size of the block.

States

Select a state that you want to configure from the drop-down menu in the Select State section of the States component. When the Button Type is Momentary, you can select these states:

  • Default — Default state for the block when it is not pressed

  • Pressed — Block state when the block is pressed

When the Button Type is Latch, you can select these states:

  • Default — Default state for the block when it is not pressed.

  • Pressed — Transitional state when you press the button while it is in the Default state. The block transitions to the Latched state when you release the click.

  • Latched — Latched state for the block when it is not pressed.

  • Latched and Pressed — Transitional state when you press the button while it is in the Latched state. The block transitions to the Default state when you release the click.

Note

You can configure all of the parameters in the States component of the Design tab for a state. For example, you can select an icon that will appear on the button when it is in the state. When you configure any of the parameters in the States component, the changes are applied to the state that is selected in the Select State section of the States component.

Example: Pressed

Specify the text for the button label. The label is applied to the button for the state that is selected in the Select State section of the States component on the Design tab.

Programmatic Use

Specify the ButtonText parameter for the block as a string or a character vector.

Block Parameter: ButtonText
Type: character vector | string

Choose a font color for the label text from the palette of standard colors, or specify a custom color. The color is applied to the label text for the state that is selected in the Select State section of the States component on the Design tab.

Set the alignment of the button text.

  • Center: Midway between left and right edges of block

  • Left: Left edge of block

  • Right: Right edge of block

Set the alignment of the button text.

  • Center: Midway between top and bottom edges of block

  • Bottom: Bottom edge of block

  • Top: Top edge of block

Specify the horizontal offset of the center of the button text from the default position for the selected Horizontal Alignment setting as a ratio of the block width. Relative to the position of the text when the offset is 0, an offset with a negative value moves the text left, and an offset with a positive value moves the text right.

Specify the vertical offset of the center of the button text from the default position for the selected Vertical Alignment setting as a ratio of the block height. Relative to the position of the text when the offset is 0, an offset with a negative value moves the text up, and an offset with a positive value moves the text down.

Specify the placement of the icon relative to the button text.

Note

Changing the placement of the icon moves the button text, but does not change the specified X Offset, Y Offset, Horizontal Alignment, or Vertical Alignment of the text.

Specify the width of the state image or the state icon as a ratio of the block width.

Example: 0.5

Specify the height of the state image or the state icon as a ratio of the block height.

Example: 0.5

Enable this option to maintain the aspect ratio when resizing the image using the Property Inspector.

Specify the horizontal offset of the left edge of the image from the left edge of the block as a ratio of the block width. Relative to the position of the image when the offset is 0, an offset with a negative value moves the image left, and an offset with a positive value moves the image right.

Example: 1

Specify the vertical offset of the top edge of the image from the top edge of the block as a ratio of the block height. Relative to the position of the image when the offset is 0, an offset with a negative value moves the image up, and a positive value moves the image down.

Example: 1

Background Image

For the block background, you can provide a background image or select a solid color. To select a solid background color, select this parameter. To provide a background image, clear this parameter.

Note

Changing the background color using the Format tab of the Simulink Toolstrip removes the background image and enables the Use Background Color parameter.

Example: on

To use a solid background color, select the Use Background Color parameter. Then, choose a background color from the palette of standard colors, or specify a custom color.

Tip

You can also specify the Background Color in the Format tab of the Simulink Toolstrip.

To specify the color of the block text, use the Font Color parameter.

Programmatic Use

Specify the BackgroundColor parameter for the block as a 1-by-3 [r g b] vector with values between 0 and 1 that is formatted as a string or a character vector.

Block Parameter: BackgroundColor
Type: string | character vector
Values: [r g b] vector

Specify the block background opacity as a scalar value from 0 to 1.

Example: 0.5

Specify the corner radius of the area covered by the block background color as a ratio of half of the smaller of the two block dimensions, width or height.

Example: 0.25

Foreground Image

Specify the horizontal offset of the left edge of the image from the left edge of the block as a ratio of the block width. Relative to the position of the image when the offset is 0, an offset with a negative value moves the image left, and an offset with a positive value moves the image right.

Example: 1

Specify the vertical offset of the top edge of the image from the top edge of the block as a ratio of the block height. Relative to the position of the image when the offset is 0, an offset with a negative value moves the image up, and a positive value moves the image down.

Example: 1

Specify the image width as a ratio of the block width.

Example: 0.5

Specify the image height as a ratio of the block height.

Example: 0.5

Select this parameter to maintain the aspect ratio when resizing the image using the Property Inspector.

Block Characteristics

Data Types

double | half | integer | single

Direct Feedthrough

no

Multidimensional Signals

no

Variable-Size Signals

no

Zero-Crossing Detection

no

Extended Capabilities

Version History

Introduced in R2021b

expand all