Overview of Stateflow Objects

Hierarchy of Stateflow Objects

Stateflow® objects are arranged in a hierarchy based on containment. That is, one Stateflow object can contain other Stateflow objects.

The highest object in Stateflow hierarchy is the Stateflow machine. The Stateflow machine contains all of the Stateflow charts in a Simulink® model. In addition, the Stateflow machine for a model can contain its own data.

Stateflow charts can contain states, boxes, functions, data, events, messages, transitions, junctions, and annotations. States, boxes, and functions can contain other states, boxes, functions, transitions, junctions, annotations, data, events, and messages. Levels of nesting can continue indefinitely.

Graphical Objects

To manage graphical objects, use the Stateflow Editor. This table lists each type of graphical object and the palette icon to use for drawing the object.

Type of Graphical Object

Palette Icon

Reference

State

Represent Operating Modes by Using States

Transition

Not applicable. Point and drag from the source state to the destination state.

Transition Between Operating Modes

Connective junction

Connective Junctions

Default transition

Default Transitions

Box

Group Chart Objects by Using Boxes

Simulink based state

Simulink Subsystems as States

Simulink function

Reuse Simulink Components in Stateflow Charts

Graphical function

Reuse Logic Patterns by Defining Graphical Functions

MATLAB® function

Reuse MATLAB Code by Defining MATLAB Functions

Truth table function

Reuse Combinatorial Logic by Defining Truth Tables

History junction

Record State Activity by Using History Junctions
Annotation

Add Descriptive Comments in a Chart

Nongraphical Objects

You can define data, event, and message objects that do not appear graphically in the Stateflow Editor. To manage nongraphical objects, use the Symbols pane or Model Explorer. For more information, see:

Data Objects

A Stateflow chart stores and retrieves data that it uses to control its execution. Stateflow data resides in its own workspace, but you can also access data that resides externally in the Simulink model or application that embeds the Stateflow machine. You must define any internal or external data that you use in a Stateflow chart.

Event Objects

An event is a Stateflow object that can trigger a whole Stateflow chart or individual actions in a chart. Because Stateflow charts execute by reacting to events, you specify and program events into your charts to control their execution. You can broadcast events to every object in the scope of the object sending the event, or you can send an event to a specific object. You can define explicit events that you specify directly, or you can define implicit events to take place when certain actions are performed, such as entering a state. For more information, see Synchronize Model Components by Broadcasting Events.

Message Objects

Stateflow message objects are queued objects that can carry data. You can send a message from one Stateflow chart to another to communicate between charts. You can also send local messages within a chart. You define the type of message data. You can view the lifeline of a message in the Sequence Viewer block. For more information, see Communicate with Stateflow Charts by Sending Messages.