Main Content

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

チャートでの実行時エラーのデバッグ

モデルと Stateflow チャートの作成

このトピックでは、デバッグする Stateflow® チャートを含む Simulink® モデルを作成します。以下の手順に従います。

  1. 以下の Simulink モデルを作成します。

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

  3. チャートで、スコープ "Simulink から入力""立ち上がり" エッジ トリガーが設定されたイベント Switch を追加します。

  4. スコープ "Simulink から入力" が設定されたデータ Shift を追加します。

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

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

Stateflow チャートのデバッグ

モデルと Stateflow チャートの作成 のチャートをデバッグするには、以下の手順に従います。

  1. チャートを右クリックして、[チャート Entry 時にブレークポイントを設定] を選択します。

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

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

  3. [ステップ イン] ボタン をクリックします。

    [ステップ イン] ボタンをクリックすると、次のステップが実行されて停止します。

  4. [ステップ イン] ボタンを繰り返しクリックして、チャートのアニメーションを監視します。

    ステップごとに、チャートのアニメーションを監視し、実行シーケンスを確認します。

シングルステップ実行では、チャートは望ましい動作を示しません。Power_on から Power_off への遷移が優先されるため、ステート Power_on 内で FirstSecondThird という順序の遷移は発生しません。コード カバレッジの出力表示も、この監視結果の裏付けになります。

実行時のエラーの修正

Stateflow チャートのデバッグ で、チャートのシミュレーションを実行し、エラーを見つけます。イベント Switch によってシミュレーションが駆動されるにもかかわらず、入力データ オブジェクト Shift が有効になる前にシミュレーション時間が経過してしまうというエラーが発生します。

以下の手順に従って、このエラーを解決します。

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

  2. Power_on から Power_off への遷移に条件 [t > 20.0] を追加します。

    これで Power_on から Power_off への遷移は、シミュレーション時間が 20.0 を超過するまで発生しなくなります。

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

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