このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
スタンドアロンのStateflow®チャートは,有限ステートマシンの動作を定義するMATLAB®クラスです。スタンドアロンのチャートは,MATLABをアクション言語として经典チャートのセマンティクスを実装します。金宝app动态仿真模块®でのコード生成が制限されている関数を含めて,MATLABのすべての機能を使用してチャートをプログラミングできます。詳細については,MATLABオブジェクトとして実行するStateflowチャートの作成を参照してください。
デバッグを有効にするには,スタンドアロンのチャート,またはチャートを実行するMATLABスクリプトでブレークポイントを設定します。ブレークポイントによってチャートの実行が一時停止されます。実行が一時停止している間に,チャート内の各アクションをステップ実行したり,データ値を表示したり,MATLABワークスペースを操作してチャートのステートを調べたりすることができます。
メモ
MATLABスクリプトから実行するスタンドアロンのチャートをデバッグするときは,まずStateflowエディターを開きます。エディターを1回も開かずにスタンドアロンのチャートをデバッグしようとすると,予期せぬ結果が生じる可能性があります。
金宝app仿真软件モデルでのStateflowチャートのデバッグの詳細については,Stateflowチャートのデバッグを参照してください。
ブレークポイントは,円形の赤のバッジとして表示されます。たとえば,以下のチャートでは,ステート一个
と,一个
からB
への遷移にブレークポイントが含まれています。
ブレークポイントは,チャート,ステートおよび遷移に設定できます。
チャートにブレークポイントを設定するには,チャート内を右クリックして[チャート条目時にブレークポイントを設定)を選択します。このタイプのブレークポイントは,チャートに入る前に実行を一時停止します。
ブレークポイントを削除するには,チャート内を右クリックして,[チャート条目時にブレークポイントを設定)オプションをオフにします。
ステートおよび遷移では,さまざまなタイプのブレークポイントを設定できます。
オブジェクト | ブレークポイントのタイプ |
---|---|
ステート |
|
|
|
|
|
遷移 |
|
|
ステートまたは遷移にブレークポイントを設定するには,ステートまたは遷移を右クリックして[ブレークポイントの設定)を選択します。ステートの場合、既定のブレークポイントは[ステー時ト条目)
と(在ステート]
です。遷移の場合、既定のブレークポイントは[遷移が有効な場合)
です。ブレークポイントのタイプを変更するには,ブレークポイントのバッジをクリックして,別のブレークポイントの構成を選択します。詳細については,ブレークポイントのタイプと条件の管理を参照してください。
ブレークポイントを削除するには,ステートまたは遷移を右クリックして[ブレークポイントのクリア]を選択します。チャート内のブレークポイントをすべて削除するには,チャート内を右クリックして[清除图表中的所有断点]を選択します。
1つのブレークポイントバッジで複数のタイプのブレークポイントを表すことができます。ステートまたは遷移に設定されているブレークポイントのタイプをリストするツールヒントを表示するには、そのバッジにカーソルを合わせます。この例では、ステート一个
のバッジは2つのブレークポイントタイプ[ステー時ト条目)
と(在ステート]
を表しています。
オブジェクトのブレークポイントのタイプを変更するには,ブレークポイントバッジをクリックします。[ブレークポイント]ダイアログボックスでは,オブジェクトタイプに応じてさまざまなブレークポイントの設定を選択できます。[ブレークポイント]ダイアログボックスですべてのチェックボックスをオフにすると,ブレークポイントが削除されます。
実行がブレークポイントで停止する回数を制限するには,ブレークポイントに条件を追加します。既定では,Stateflowチャートは,ブレークポイントに達するたびに一時停止します。ブレークポイントに条件を追加すると,チャートは条件が真の場合にのみブレークポイントで一時停止します。たとえば,以下の条件では,x
の値が負の場合にのみ,ステート一个
のブレークポイントがチャートの実行を一時停止します。
ブレークポイントの条件を指定するには,数値およびブレークポイントの位置でスコープ内にあるStateflowデータオブジェクトを組み合わせた任意の有効なMATLAB式を使用できます。
実行がブレークポイントで停止すると,Stateflowはデバッグモードに入ります。
MATLABコマンドプロンプトがK > >
に変わります。
[シンボル]ペインに,チャート内の各データオブジェクトの値が表示されます。
チャートではアクティブな要素が青色で,現在実行中のオブジェクトが緑色で強調表示されます。
たとえば,ステート一个
のブレークポイントで実行が停止すると,このステートの境界線とステートの条目
アクションの最初のステートメントが緑で強調表示されます。
実行が一時停止されるグラフィカルオブジェクトに,実行ステータスバッジが表示されます。
バッジ | 説明 |
---|---|
|
実行はチャートに入る前か,ステートの |
|
実行はステートの |
|
実行はステートの |
|
実行は遷移のテストを行う前に一時停止。 |
|
実行は有効な遷移を行う前に一時停止。 |
チャートがブレークポイントで一時停止しているとき,次を使用して実行を続けることができます。
[デバッグ]タブのボタン
MATLABコマンドウィンドウ
キーボードショートカット
アクション | [デバッグ]タブのボタン | MATLABコマンド | キーボードショートカット | 説明 |
---|---|---|---|---|
続行 |
|
dbcont |
Ctrl + T | 次のブレークポイントまで実行を続行します。 |
ステップオーバー |
|
dbstep |
F10 | チャート実行の次のステップに進みます。チャートレベルでは,以下のようなステップが考えられます。
詳細については,Stateflowチャートの実行を参照してください。 |
ステップイン |
|
dbstep在 |
季 | 関数を呼び出すステートまたは遷移のアクションからは,関数内の最初に実行可能なステートメントに進みます。 別の関数呼び出しを含む関数内のステートメントからは,2番目の関数内で最初に実行可能なステートメントに進みます。 それ以外の場合は,チャート実行の次のステップに進みます([ステップオーバー]オプションを参照)。 |
ステップアウト |
|
dbstep出来 |
Shift +季 | 関数呼び出しからは,関数を呼び出すステートメントに戻ります。 それ以外の場合は,次のブレークポイントまで実行を続行します([続行]オプションを参照)。 |
停止 |
|
dbquit |
Ctrl + Shift + T | デバッグモードを終了して実行を中断します。 スタンドアロンのチャートをStateflowエディターから実行すると,このアクションにより,チャートオブジェクトがMATLABワークスペースから削除されます。 |
複数のステートメントを含むステートアクションまたは遷移アクションでは,[ステップオーバー]を選択することにより,個々のステートメントを1つずつステップ実行できます。Stateflowエディターでは、各ステートメントが実行前に強調表示されます。
メモ
スタンドアロンチャートはクロック時間に基づいて時相論理を定義するので,チャートがブレークポイントで一時停止している間に時相論理演算子が有効になる可能性があります。この場合,チャートはデバッグモードから出て,次のブレークポイントまで実行を継続します。
Stateflowがデバッグモードのとき,[シンボル]ペインには,チャート内の各データオブジェクトの値が表示されます。チャート内でステートまたは遷移をポイントすることによってデータ値を調べることもできます。ツールヒントには,選択したステートまたは遷移で使用されている各データオブジェクトの値が表示されます。
チャートの動作をテストするために,[シンボル]ペインで,実行中にデータオブジェクトの値を変更することができます。あるいは,デバッグプロンプトで,チャートオブジェクト名の代わりに这
というキーワードを使用して新しい値を入力します。たとえば,ローカルデータx
の値を変更するには,次のように入力します。
这一点。x = 7
メモ
金宝app仿真软件モデルのチャートをデバッグする場合,キーワード这
は使用しないでください。代わりに,デバッグプロンプトで直接すべてのStateflowデータにアクセスできます。詳細については,MATLABコマンドウィンドウでのデータの表示と変更を参照してください。