Products & Services Solutions Academia Support User Community Company

Learn more about Stateflow   

Using Subcharts to Extend Charts

What Is a Subchart?

You can create charts within charts. A chart that is embedded in another chart is called a subchart. The subchart can contain anything a top-level chart can, including other subcharts. In fact, you can nest subcharts to any level.

A subcharted state is a superstate of the states and charts that it contains. It appears as a block with its name in the block center. However, you can define actions and default transitions for subcharts just as you can for superstates. You can also create transitions to and from subcharts just as you can create transitions to and from superstates. Further, you can create transitions between states residing outside a subchart and any state within a subchart. The term supertransition refers to a transition that crosses subchart boundaries in this way. See Using Supertransitions to Extend Transitions for more information.

Subcharts enable you to reduce a complex chart to a set of simpler, hierarchically organized charts. This makes the chart easier to understand and maintain. Nor do you have to worry about changing the semantics of the chart in any way. Subchart boundaries are ignored during simulation and code generation.

Subcharts define a containment hierarchy within a top-level chart. A subchart or top-level chart is the parent of the charts it contains at the first level and an ancestor of all the subcharts contained by its children and their descendants at lower levels.

Creating a Subchart

You create a subchart by converting an existing state, box, or graphical function into the subchart. The object to convert can be one that you have created solely for making a subchart or an existing object whose contents you want to turn into a subchart.

To convert a new or existing state, box, or graphical function to a subchart:

  1. Right-click the object and select Make Contents > Subcharted.

  2. Check that the object now appears as a subchart.

To convert the subchart back to its original form, right-click the subchart. In the context menu, select Make Contents > Subcharted.

Manipulating Subcharts as Objects

Subcharts also act as individual objects. You can move, copy, cut, paste, relabel, and resize subcharts as you would states and boxes. You can also draw transitions to and from a subchart and any other state or subchart at the same or different levels in the chart hierarchy (see Using Supertransitions to Extend Transitions).

Opening a Subchart

Opening a subchart allows you to view and change its contents. To open a subchart, do one of the following:

The contents of the subchart appear, as shown.

A shaded border surrounds the contents of the subchart. The border displays supertransitions.

To return to the previous view, select Back from the shortcut menu, press the Esc key on your keyboard, or select the up or back arrow on the toolbar.

Editing a Subchart

After you open a subchart (see Opening a Subchart), you can perform any editing operation on its contents that you can perform on a top-level chart. This means that you can create, copy, paste, cut, relabel, and resize the states, transitions, and subcharts in a subchart. You can also group states, boxes, and graphical functions inside subcharts.

You can also cut and paste objects between different levels in your chart. For example, to copy objects from a top-level chart to one of its subcharts, first open the top-level chart and copy the objects. Then open the subchart and paste the objects into the subchart.

Transitions from outside subcharts to states or junctions inside subcharts are called supertransitions. You create supertransitions differently than you do ordinary transitions. See Using Supertransitions to Extend Transitions for information on creating supertransitions.

Navigating Subcharts

The Stateflow Editor toolbar contains a set of buttons for navigating the subchart hierarchy of a chart.

Tool

Description

If the Stateflow Editor is displaying a subchart, clicking this button replaces the subchart with the subchart's parent in the Stateflow Editor. If the Stateflow Editor is displaying a top-level chart, clicking this button replaces the chart with the Simulink model window containing that chart.

Clicking this button shows the chart that you visited before the current chart, so that you can navigate up the hierarchy.

Clicking this button shows the chart that you visited after visiting the current chart, so that you can navigate down the hierarchy.

  


Related Products & Applications

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS