Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

状態遷移表での実行時エラーのデバッグ

状態遷移表は、順序モーダル ロジックを表現する際の代替方法です。ステートと遷移を Stateflow® チャートでグラフィカルに描画する代わりに、状態遷移表を使用してモーダル ロジックを表形式で表現します。状態遷移表は、Simulink® モデル内のブロックとしてのみサポートされています。詳細については、Stateflow の状態遷移表を参照してください。

モデルと状態遷移表の作成

  1. 新しい State Transition Table (sfnew -stt) を使って Simulink モデルを作成します。

  2. 以下のステートと遷移を表に追加します。

    表には、階層の最上位レベルで 2 つのステート Power_offPower_on が設定されています。既定では、Power_off がアクティブです。イベント SWITCH は、システムを Power_off ステートと Power_on ステートの間で切り替えます。Power_on には、FirstSecondThird の 3 つのサブステートがあります。既定の設定では、Power_on がアクティブになると First もアクティブになります。Shift が 1 に等しい場合は、イベント SWITCH が発生するたびに、システムは First から SecondSecond から ThirdThird から First へと遷移します。その後、このパターンが繰り返されます。

  3. Simulink から 2 つの入力を追加します。

    • スコープ "Simulink から入力""立ち上がり" エッジ トリガーが設定された SWITCH というイベント。

    • スコープ "Simulink から入力" が設定された Shift というデータ。

  4. モデル ビューで、Sine Wave ブロックを SWITCH イベントとして、Step ブロックを Shift データとして状態遷移表に接続します。

    モデルには、イベント入力とデータ入力があります。Sine Wave ブロックは、Stateflow イベント SWITCH に対応する反復入力イベントを生成します。Step ブロックは、Stateflow データ オブジェクト Shift に対応する反復パターン 1 と 0 を生成します。SWITCH イベントは、FirstSecondThird を少なくとも 1 サイクル廻る頻度で発生させるのが理想的です。

状態遷移表のデバッグ

モデルと状態遷移表の作成の表をデバッグするには、以下の手順に従います。

  1. Power_off ステートを右クリックし、[ブレークポイントの設定][ステート Entry 時] を選択します。

  2. シミュレーションを開始します。

    Power_off に対してブレークポイントを指定しているため、実行はそのポイントで停止します。

  3. [ステップ イン] ボタン をクリックして次の手順に移動します。

  4. 使用されているデータと現在の値を表示するには、各テーブル セルにカーソルを合わせます。

    [ステップ イン] ボタンを繰り返しクリックして、ステートのアニメーション化を監視します。ステップごとに、チャートのアニメーションを監視し、実行シーケンスを確認します。ツールヒントを使用してデータ値を確認します。

シングルステッピングによって、ステート Power_on 内で First から Second を通り Third に至るループは発生しないことが示されます。Power_on から Power_off への遷移が優先されます。

実行時のエラーの修正

状態遷移表のデバッグで、状態遷移表のシミュレーションをステップ実行し、エラーを見つけます。イベント SWITCH によってシミュレーションが駆動されていますが、入力データ オブジェクト Shift が効果を持たないうちにシミュレーション時間が早々に経過しています。

このエラーを修正するには、以下を実行します。

  1. 表を編集できるようにシミュレーションを停止します。

  2. Power_on から Power_off への遷移に条件 after(20.0, sec) を追加します。

    これで、Power_on から Power_off への遷移は 20 秒を経過するまで実行されません。

  3. シミュレーションを開始します。

  4. [ステップ イン] ボタンを繰り返しクリックして、修正された動作を観察します。

関連するトピック