Main Content

Rotary Switch

Change parameter or variable value using rotary switch with customizable appearance

Since R2021b

  • Rotary Switch block

Libraries:
Simulink / Dashboard / Customizable Blocks

Description

Use the Rotary Switch block to change the value of the connected variable or parameter before or during simulation. When you use the Rotary Switch block in the Customizable Blocks library, you can customize the appearance of the block to look like a real rotary switch in your system. Use the Rotary Switch block with other dashboard blocks to create an interactive dashboard for your model.

A real rotary switch has multiple settings. The Rotary Switch block treats these settings as different states. A state pairs a State Value with a handle orientation, a click area, and a State Label that is displayed on the click area.

You can activate a state by clicking its click area or by dragging the handle and releasing it over the click area. When you activate the state, the State Value is assigned to the Simulink® block diagram element to which the Rotary Switch block connects.

Collectively, the state click areas cover the area of the block within the angular range that the handle traverses when it moves from the first state to the last state. The state labels are evenly spaced over the range, with the first label at the start of the range, and the last label at the end of the range. The range is subdivided into click areas such that the borders of adjacent click areas bisect the angular distance between labels.

The image shows a custom rotary switch with four states. The labels of the first state and last states are 150 degrees apart. The state labels (read clockwise) are A, B, C, and D. The click areas are shown in four different colors. The angular distance spanned by the click areas of the first and fourth state is half of that spanned by each of the other states.

Note

Double-clicking the Rotary Switch 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 Rotary Switch Blocks

When you add a Rotary Switch 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 the Edit Custom Block button.

Customizable Rotary Switch block in design mode with the toolbar and the Design tab in the Property Inspector visible.

In design mode, you can specify the arc the handle traverses when it moves from the first state to the last state.

  • To change the arc length, on the Design tab, in the Rotary Switch component, specify the Arc.

  • To change the orientation of the arc, in the Rotary Switch component, specify the Start Angle.

You can replace the handle image and background image using the toolbar above the block.

To resize the handle, select the handle in the canvas. Then, click and drag the grab points that define its dimensions. To reposition the handle, click and drag it in the canvas.

You can add any number of states to the block. To add or delete states, use the toolbar above the block.

For each state, you can:

  • Specify the State Label text and color.

  • Specify the State Value.

To change the color of the State Labels, on the Format tab, under Style, click the arrow on the Foreground button and select a color. You can select from a palette of standard colors or click Custom Colors Custom Colors button to specify a custom color.

You can use the Design tab in the Property Inspector for fine control over the block design and to enter exact values for design settings.

Use the Design tab to:

  • Specify the State Value.

  • Configure the State Label.

  • Upload a foreground image.

  • Set a solid background color.

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 dashboard blocks to variables and block parameters, use connect mode. Connect mode facilitates the process of connecting dashboard blocks in your model, especially when you want to connect multiple blocks at once. To connect a single dashboard block, you can also use the Connection table in the block dialog box.

Tip

You can modify dashboard block connections in your model during normal and accelerator mode simulations.

Note

Dashboard blocks cannot connect to variables until you update the model diagram. To connect dashboard blocks to variables or modify variable values between opening your model and running a simulation, update the model diagram using Ctrl+D.

To enter connect mode, in the canvas, select the dashboard block to connect. On the Simulink Toolstrip, a tab named after the type of the selected block appears. On the block tab, click Connect. In connect mode, when you select one or more blocks, a list of parameters and variables available for connection appears. Select a variable or parameter from the list to connect to the selected dashboard block.

When the value of the selected variable or block parameter is nonscalar, use the text box at the bottom of the Connection table to specify the element you want to connect to the dashboard block. To connect to an element of a vector, matrix, or array, specify the element index, for example, 3 or (1,3). To connect to an element in a bus or structure, specify the element in the context of the bus or structure hierarchy by using dots to indicate different levels in the hierarchy, and omit the top level. For example, specify a.b to connect to scalar element b of the structure or bus a nested inside the selected composite variable or parameter.

To connect another dashboard block, pause on another dashboard block and click the Connect button above it. Then, make a selection of signals and blocks in your model and choose a model element to connect.

A Knob block from the Dashboard library is in connect mode. To the right of the Knob block is a Sine Wave block that connects to a Gain block that connects to an Outport block. To the right of the Outport block is the list of parameters and variables available for connection.

When you finish connecting the dashboard blocks in your model, on the block tab, click Done Connecting.

Tip

You can hide the message shown on unconnected blocks using the set_param function with the ShowInitialText block parameter. The message also disappears when you connect the 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.

  • The toolstrip does not support blocks that are inside a panel.

  • 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

Use the Connection table in the Block Parameters dialog box to select or change the variable or block parameter to control. To connect the block to a variable or block parameter:

  1. If the block is not connected, in the Property Inspector, on the Parameters tab, click Connect to open the Block Parameters dialog box. If the block is already connected and you want to change the signal to which it connects, click Change.

  2. Select a block in the model.

  3. Select the variable or parameter you want to connect.

    When the value of the selected variable or block parameter is nonscalar, use the text box at the bottom of the Connection table to specify the element you want to connect to the dashboard block. To connect to an element of a vector, matrix, or array, specify the element index, for example, 3 or (1,3). To connect to an element in a bus or structure, specify the element in the context of the bus or structure hierarchy by using dots to indicate different levels in the hierarchy. Omit the top level. For example, specify a.b to connect to scalar element b of the structure or bus a nested inside the selected composite variable or parameter.

  4. Click Apply.

To help understand and debug your model, you can connect Dashboard blocks to variables and parameters in your model during simulation.

Note

To see workspace variables in the connection table, update the model diagram using Ctrl+D.

Tip

You can also use bind mode to select or change the variable or block parameter to control. To enter bind mode:

  • If you are in design mode, exit by clicking the Edit button on the Design tab of the Property Inspector.

  • Click the dashboard block in the canvas. If the dashboard block is not connected, Connect Connect button and an ellipsis appear over the dashboard block. If the dashboard block is already connected, only the ellipsis appears.

  • If the dashboard block is not connected, click Connect. If the dashboard block is connected, pause on the ellipsis. In the action menu that expands, click Connect. In either case, a list of parameters and variables available for connection appears.

The left image shows a selected dashboard block with the Connect button and the ellipsis hovering above it. The right image shows the same dashboard block with the action menu expanded above it, and the pointer hovering over the Connect button.

To connect the dashboard block in bind mode:

  • From the list, select the variable or parameter you want to connect.

  • To exit bind mode, click Done Connecting Done Connecting buttonover the dashboard block.

Programmatic Use

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

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

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.

You can use an enumerated data type that pairs a numeric value with each enumeration to configure the state values and labels for the block. First, select Enumerated Data Type. Then, specify the name of the enumerated data type in the text box. The definition for the specified enumerated data type must be saved on the MATLAB path or in the base workspace.

Note

You can define an enumerated data type using the Simulink.defineIntEnumType function. For example, to define the enumerated data type myEnumType for a set of Roman numerals from one to five, use this command.

Simulink.defineIntEnumType('myEnumType',...
    {'I','II','III','IV','V'}, [1 2 3 4 5]);

Then, in the Property Inspector, on the Parameters tab, in the Enumerated Data Type field, enter myEnumType.

Each state pairs a State Value with a State Label. When the block is in a given state, it assigns the State Value for that state to the connected variable or parameter. You can use the State Label to display the value assigned to the connected variable or parameter on the block or to provide a descriptive text label.

By default, the switch has five states, one corresponding to each switch position.

State ValueState Label
0Off
1Low
2Medium
3High
4On

You can use a customizable switch block to design a switch with any number of states greater than or equal to 1. To add a new state, click the + button. To delete the current state, click the - button.

Note

When Enumerated Data Type is enabled, you cannot add or delete states.

Tip

You can also configure the parameters for a state in design mode:

  1. Enter design mode. In the Property Inspector, on the Design tab, click Edit.

  2. On the Design tab, open the States component, expand the Select State section, and select the state that you want to configure from the drop-down menu.

  3. Configure the parameter values for the selected state either using the toolbar above the block or in the Property Inspector.

Programmatic Use

To configure the States for the block programmatically, specify the value of the States parameter as a structure array containing two elements with these fields:

  • Value — Scalar double value for the state

  • Label — String or character array to use as the label for the switch position

firstState.Value = 0;
firstState.Label = 'Off';
secondState.Value = 1;
secondState.Label = 'On';
switchStates = [firstState secondState];
Block Parameter: States
Type: two element array of structures

Design

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

Rotary Switch

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.

Specify the arc length spanned by the center points of the state labels as a scalar value, measured in degrees.

Example: 90

Specify the angular location of the first state as a scalar value, measured in degrees clockwise from the horizontal axis pointing right.

Example: 0

Specify the distance of the labels from the center of the block as a ratio of the smaller of the two block dimensions, width or height.

Example: 0.5

States

Each state pairs a State Value with a State Label. When the block is in a given state, it assigns the State Value for that state to the connected variable or parameter. You can use the State Label to display the value assigned to the connected variable or parameter on the block or to provide a descriptive text label.

By default, the switch has five states, one corresponding to each switch position.

State ValueState Label
0Off
1Low
2Medium
3High
4On

You can use a customizable Lamp block to design a lamp with any number of states greater than or equal to 1. To add a new state, click the + button. To delete the current state, click the X button.

Note

When Enumerated Data Type is enabled, you cannot add or delete states. You can disable this option in the Parameters tab of the Property Inspector.

To configure a state, in the States component, expand the Select State section and select the state.

Configure the value and the label text for the selected state in the States component on the Design tab of the Property Inspector.

All changes that you make to parameter values in the States component are applied only to the selected state. To configure a different state, expand the Select State section and select the state. Then, configure the parameter values of that state in the States component.

Tip

You can also configure the states for the block using the Parameters tab in the Property Inspector.

Programmatic Use

To configure the States for the block programmatically, specify the value of the States parameter as a structure array containing two elements with two fields:

  • Value — Scalar double value for the state

  • Label — String or character array to use as the label for the switch position

firstState.Value = 0;
firstState.Label = 'Off';
secondState.Value = 1;
secondState.Label = 'On';
switchStates = [firstState secondState];
Block Parameter: States
Type: two element array of structures

Each state pairs a State Value with a State Label. Specify the State Value that activates the state selected in the Design tab.

Note

When Enumerated Data Type is enabled, you cannot change the value.

Each state pairs a State Value with a State Label. Specify the text for the State Label of the state selected in the Design tab.

Note

When Enumerated Data Type is enabled, you cannot change the text.

Handle

Specify the width of the handle image as a ratio of the smaller of the two block dimensions, width or height.

Example: 1

Specify the height of the handle image as a ratio of the smaller of the two block dimensions, width or height.

Example: 1

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

Rotate the handle image about its center in 90 degree increments.

Example: 90

Specify the distance from the center of the handle image to the center of the block as a ratio of the smaller of the two block dimensions, width or height.

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 select 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, in the Format tab of the Simulink Toolstrip, specify the Foreground Color.

Programmatic Use

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

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

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

Example: 0.5

Set the offset of the outer edge of the area covered by the block background color from the label radius, specified as a scalar value from 0 to 1.

Example: 0.1

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

Tips

  • The Rotary Switch block allows you to design a circular control, with the state labels and the click areas that cause state transitions distributed along an arc. For more flexibility in the design of a control block with several states, use one of the customizable switch blocks. Each block is preconfigured with two states, but you can add and configure any number of states as required by your design.

  • To design a control that applies values to a connected variable or parameter from a continuous range, use the Knob, Horizontal Slider, or Vertical Slider blocks.

Extended Capabilities

Version History

Introduced in R2021b

expand all