|On this page…|
In this topic, you create a model with a Stateflow® chart to debug. Follow these steps:
Add the following states and transitions to your chart:
The chart has two states at the highest level in the hierarchy, Power_off and Power_on. By default, Power_off is active. The event Switch toggles the system between the Power_off and Power_on states. Power_on has three substates: First, Second, and Third. By default, when Power_on becomes active, First also becomes active. When Shift equals 1, the system transitions from First to Second, Second to Third, Third to First, for each occurrence of the event Switch, and then the pattern repeats.
In the model, there is an event input and a data input. A Sine Wave block generates a repeating input event that corresponds with the Stateflow event Switch. The Step block generates a repeating pattern of 1 and 0 that corresponds with the Stateflow data object Shift. Ideally, the Switch event occurs at a frequency that allows at least one cycle through First, Second, and Third.
To debug the chart in Create the Model and the Stateflow Chart, follow these steps:
Open the Model Configuration Parameters dialog box.
In the Simulation Target pane, verify that Enable debugging/animation is selected.
Right-click in the chart, and select Set Breakpoint on Chart Entry.
Because you specified a breakpoint on chart entry, execution stops at that point.
The Step In button executes the next step and stops.
After each step, watch the chart animation to see the sequence of execution.
Single-stepping shows that the chart does not exhibit the desired behavior. The transitions from First to Second to Third inside the state Power_on are not occurring because the transition from Power_on to Power_off takes priority. The output display of code coverage also confirms this observation.
In Debug the Stateflow Chart, you step through a simulation of a chart and find an error: the event Switch drives the simulation but the simulation time passes too quickly for the input data object Shift to have an effect.
Correct this error as follows:
Now the transition from Power_on to Power_off does not occur until simulation time is greater than 20.0.