Main Content

Overview of Stateflow Objects

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

Diagram showing the three levels of the hierarchy of 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.

Stateflow charts can contain states, functions, boxes, data, events, messages, transitions, junctions, entry and exit ports, and annotations. States, functions, and boxes can contain other states, functions, boxes, data, events, messages, transitions, junctions, entry and exit ports, and annotations. 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 adding the object. For more information, see Stateflow Editor Operations.

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.