主要内容

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

编集时のモデリングエラーの検出

编集时のチェックが有效にされている场合,チャートの作业を行う际に状态流®エディターによって潜在的なエラーや警告が検出されます。これらの問題を設計プロセスの早期に解決することで,コンパイル時や実行時の警告およびエラーを回避できます。

Stateflowエディターで,編集時のチェックに違反するオブジェクトが赤(エラー)またはオレンジ(警告)で強調表示されます。強調表示されたオブジェクトにカーソルを合わせてエラーまたは警告のバッジをクリックすると,ツールヒントには詳細と,考えられる解決方法が表示されます。

编集时のチェックのの原理

既定では,編集時のチェックと構文エラーの強調表示は有効にされています。編集時のチェックを無効にするには,[デバッグ]タブで,[诊断][编集时のエラーと警告]チェックボックスをオフにますます。

次次の表,[コンフィギュレーションコンフィギュレーション]ダイアログボックスの[诊断](Stateflow)ペインの诊断のコンフィギュレーションパラメーターに关连付けられた编集时のチェックの一覧です。

これらの編集時のチェックについて,診断アクションのレベルを制御するには,そのコンフィギュレーションパラメーターの値を[エラー][警告][なし]のいずれかに設定します。コンフィギュレーションパラメーターの設定を変更すると,対応する編集時のチェックの診断レベルも変更されます。たとえば,(到達不能の実行パス]コンフィギュレーションパラメーターを没有一个に设定した场合,状态流エディターで未接続の迁移,迁移の优先顺位低下,および到达不能なステートは强调表示されません。

ステートの編集時チェック

無効な交差

  • 問題点:Stateflowエディターでステートおよびジャンクションがオーバーラップしてはなりません。

  • 诊断レベル:エラー。

  • 解决法:ステートとジャンクションを分类して交差を回避ます。

パラレルステートのリーフステートアクティビティまたは子ステートアクティビティを監視

  • 問題点:パラレル(和)構造をもつチャートおよびステートでは,パラレルサブステートが同時にアクティブになるため,リーフステートや子ステートのアクティビティの監視はサポートされません。

  • 诊断レベル:警告。

  • 解决法:プロパティインスペクターまたはモデルエクスプローラーを開きます。[監視する出力の作成)チェックボックスをオフにするか,ドロップダウンリストから(自己アクティビティ]を选択します。详细については,アクティブステートデータによるステートアクティビティの監視を参照してください。

オブジェクトに構文エラーがある

  • 問題点:Stateflow構文ルールに従っていないステートアクションがあります。Stateflowエディターでは,構文エラーに赤の波線が引かれます。

  • 诊断レベル:エラー。

  • 解决法:ステートステートアクションの构エラーエラーを修しし详细详细については,ステートのラベルを参照してください。

    メモ

    亲チャートでは,构文エラーのあるサブチャートが赤で强调表示され,エラーバッジによって构文の问题が示されます。サブチャートのエディターでは,构文エラーが赤の波线で表示されますが,问题を示すバッジはありません。

到達不能なステート

  • 問題点:あるステートに通じる有効な実行パスがないため,そのステートが"到達不能"です。

  • 诊断レベル:コンフィギュレーションパラメーター到達不能の実行パス(金宝app模型)によって異なります。

  • 解决法:到達不能なステートを,到達可能なステートまたはジャンクションからの遷移に接続します。

迁移での编集时チェック

未接続の迁移

  • 問題点:すべての遷移には,有効な遷移先ステートかジャンクションがなくてはなりません。

  • 诊断レベル:コンフィギュレーションパラメーター到達不能の実行パス(金宝app模型)によって異なります。

  • 解决法:遷移をステートまたはジャンクションに接続します。詳細については,遷移を参照してください。

デフォルト遷移が見つからない

  • 問題点:排他的(或)構造と少なくとも2つのサブステートまたはジャンクションを含むチャートやステートでは,実行の開始位置を示すためにデフォルト遷移が必要です。

  • 诊断レベル:エラー。

  • 解决法:デフォルト遷移を追加して開始ステートを指定します。詳細については,デフォルト遷移を参照してください。

デフォルトデフォルト迁移パスががステートでしし

  • 問題点:排他的(或)構造と,少なくとも1つのサブステートをもつチャートまたはステートでは,次のことが必要です。

    • デフォルト迁移に沿ったすべてのパスはサブステートにつながらなければならない

    • 条件で保护されていないか,イベントでトリガーされるデフォルト迁移パスが1つなければならない

  • 诊断レベル:コンフィギュレーションパラメーター無条件のデフォルト遷移がない(金宝app模型)によって異なります。

  • 解决法:デフォルト迁移に沿ったすべてのパスをサブステートで终了します0.1つのデフォルト迁移が,条件で保护されておらず,かつイベントによりトリガーされないことを确认します。

无效なデフォルト迁移パス

  • 問題点:デフォルト迁移パスは亲ステートから出ることはできませ。

  • 诊断レベル:エラー。

  • 解决法:デフォルト遷移パスを変更して親ステート内にとどまるようにします。

グラフィカル关节に入る无效な迁移

  • 問題点:遷移はグラフィカル関数に入ることはできません。Stateflowチャートはグラフィカル関数をステート アクションまたは遷移から呼び出します。

  • 诊断レベル:エラー。

  • 解决法:グラフィカル関数に入る遷移を削除します。

オブジェクトに構文エラーがある

  • 問題点:遷移内の条件またはアクションが,Stateflowの構文ルールに従っていません。Stateflowエディターでは,構文エラーに赤の波線が引かれます。

  • 诊断レベル:エラー。

  • 解决法:迁移条件またはアクションの构文エラーを修正します。详细については,遷移ラベルを参照してください。

このパスには条件アクションの前に遷移アクションがある

  • 問題点:遷移アクションがあり,後続の遷移に条件アクションがある場合,これらのアクションは遷移の順序では実行されません。Stateflowチャートは,関連付けられている条件が真と評価されたときに条件アクションを実行します。これとは対照的に,チャートが遷移アクションを実行するのは,遷移パスが完全に実行されたときのみです。その結果,チャートが遷移パスを実行すると,条件アクションが遷移アクションより前に発生します。

  • 诊断レベル:コンフィギュレーションパラメーター条件条件アクションの前前に指定された迁移(金宝app模型)によって異なります。

  • 解决法:遷移アクションをパスの最後の条件アクションの後に置きます。

遷移がパラレルステートで開始または終了する

  • 問題点:パラレル(和)構造のチャートやステートで,兄弟関係にあるすべてのステートが同時にアクティブ,または同時に非アクティブになっています。

  • 诊断レベル:警告。

  • 解决法:遷移を削除するか,親ステートの構造を排他(或)に変更します。

遷移がボックスに接続する

  • 問題点:遷移はステートおよびジャンクションにのみ接続できます。

  • 诊断レベル:エラー。

  • 解决法:ボックスに接続している遷移を移動または削除します。

遷移がパラレルステートにまたがっている

  • 問題点:スタンドアロンのStateflowチャートは,パラレルステートの境界をまたぐ遷移をサポートしていません。

  • 诊断レベル:エラー。

  • 解决法:パラレルステートへの,またはパラレルステートからの境界を迁移を削除し。

遷移がグラフィカル関数に出入りしている

  • 問題点:遷移はグラフィカル関数から出ることはできません。グラフィカル関数内のフローチャートは,関数内に完全に含まれていなければなりません。

  • 诊断レベル:エラー。

  • 解决法:グラフィカル关节から出る迁移をししししししし

自然な親を外れた遷移ループ

  • 問題点:遷移元と遷移先の間で遷移が親ステートの外に出る場合,遷移先ステートがアクティブになる前に,チャートが親ステートの退出アクションと入口アクションを実行します。

  • 诊断レベル:コンフィギュレーションパラメーター自然な親以外からの遷移(金宝app模型)によって異なります。

  • 解决法:遷移を移動し,親ステートに含まれるようにします。

遷移の優先順位低下

  • 問題点:同じ迁移元からの他の出力迁移の前に无条件迁移が実行されると,これによって他の迁移の実行が妨げられます。

  • 诊断レベル:コンフィギュレーションパラメーター到達不能の実行パス(金宝app模型)によって異なります。

  • 解决法:各ステートまたはジャンクションからの無条件遷移は1つのみ作成します。無条件遷移がどの条件付き遷移よりも後に実行されるように明示的に指定します。詳細については,遷移の評価順序を参照してください。

在アクションアクション子ステートをもつもつ外の无条件パス

  • 問題点:ステートから外に出る無条件遷移により,ステート内のアクションと,子ステートへのデフォルト遷移の実行が抑制されます。

  • 诊断レベル:コンフィギュレーションパラメーター自然な親以外からの遷移(金宝app模型)によって異なります。

  • 解决法:迁移の条件を追加するか,ステートから期间アクションと子ステートを削除します。

ジャンクションでの編集時チェック

遷移アクションをもつ遷移がサイクルに含まれる

  • 問題点:迁移アクションををもつ迁移迁移サイクルに含めることことはできませ

  • 诊断レベル:エラー。

  • 解决法:迁移アクションを削除するか,迁移を削除してサイクルを削除します。

無効なヒストリジャンクション

  • 問題点:ヒストリヒストリジャンクションは次次のの场“无效”になります。

    • ヒストリジャンクションが階層のチャートレベルに含まれている。

    • ヒストリジャンクションがパラレル(和)構造をもつステートに含まれている。

    • ヒストリジャンクションがグラフィカル関数内に含まれている。

    • 同じステートに复数のヒストリジャンクションが含まれている。

    • ヒストリジャンクションが遷移元になっている。

  • 诊断レベル:エラー。

  • 解决法:ヒストリジャンクションを阶层のチャートレベル,パラレル(AND)构造をもつステート,またはグラフィカル关数から削除します0.1つを残してすべてのヒストリジャンクションをステートから削除します。迁移元をコネクティブジャンクションまたはステートに移动しし。详细详细について,ヒストリジャンクションを使用したステートアクティビティの記録を参照してください。

サイクルからの無条件エスケープがジャンクションにない

  • 問題点:ジャンクションにはサイクルからステートまたは終端ジャンクションへの無条件エスケープパスがなければなりません。

  • 诊断レベル:エラー。

  • 解决法:ジャンクションからステートまたは終端ジャンクションへの無条件パスを作成します。

予期せぬバックトラッキング

  • 問題点:制御フローの予期しないバックトラッキングは次の場合に発生することがあります。

    • 同じ迁移元からの复数の迁移パスが1つのジャンクションに通じている。

    • そのそのジャンクション,ステートまたは终端ジャンクションへの条件パスが。

  • 诊断レベル:コンフィギュレーションパラメーター予期せぬバックトラッキング(金宝app模型)によって異なります。

  • 解决法:ジャンクションからステートまたは終端ジャンクションへの無条件パスを作成します。詳細については,フローチャートのバックトラックを参照してください。

    たとえば,このチャートで強調表示されたジャンクションには,ステート一个への無条件遷移パスがありません。条件条件が真で,Conditionc.が偽である場合,チャートはパスの最初のジャンクションに複数回バックトラッキングします。したがって,チャートは3つの条件アクションを実行します。

    バックトラッキングを避けるには,条件を組み合わせて2番目のジャンクションから遷移先ステートへの無条件パスを作成します。変更後に,チャートは1つの条件アクションのみを実行します。

到達不能なジャンクション

  • 問題点:ジャンクションは,そこに通じる有效な実行パスがない场合に"到達不能"になります。

  • 诊断レベル:コンフィギュレーションパラメーター到達不能の実行パス(金宝app模型)によって異なります。

  • 解决法:到達不能なジャンクションを,到達可能なステートまたはジャンクションからの遷移に接続します。

关节数で编集时チェック

関数が未使用

  • 問題点:関数は,これを呼び出すステートメントがない場合にチャートで"未使用"ととます。

  • 诊断レベル:警告。

  • 解决法:ステート,遷移アクション,または別の関数からこの関数を呼び出します。

グラフィカル関数にステートが含まれている

関数の引数としてのキーワードの使用が無効

  • 問題点:関数定義に予約済みのキーワードが引数として使われています。

  • 诊断レベル:エラー。

  • 解决法:関数の引数の名前を変更します。予約済みキーワードの一覧については,extenfflオブジェクトの名录ルールを参照してください。

関連するトピック