主要内容

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

編集時のモデリングエラーの検出

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

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

編集時のチェックの管理

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

次の表は[コンフィギュレーションパラメーター]ダイアログボックスの[診断](Stateflow)ペインの診断のコンフィギュレーションパラメーターに関連付けられた編集時のチェックの一覧です。

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

ステートとサブチャートの編集時チェック

原子サブチャートにステートアクションが含まれている

  • 問題点:ステートアクションは,原子サブチャートではサポートされません。

  • 診断レベル:エラー。

  • 解決法:ステートアクションを削除するか,原子サブチャートのサブステートへ移動します。

    包含状态操作的原子子图。

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

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

  • 診断レベル:エラー。

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

    没有默认过渡的图表。

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

無効な交差

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

  • 診断レベル:エラー。

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

    无效的交叉状态。

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

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

  • 診断レベル:警告。

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

    监视子状态活动的状态中的并行子状态。

ステートに構文エラーがある

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

  • 診断レベル:エラー。

  • 解決法:ステートアクションの構文エラーを修正します。詳細については,ステートのラベルを参照してください。

    包含语法错误的状态。

    メモ

    親チャートでは,構文エラーのあるサブチャートが赤で強調表示され,エラーバッジによって構文の問題が示されます。サブチャートのエディターでは,構文エラーが赤の波線で表示されますが,問題を示すバッジはありません。

到達不能なステート

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

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

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

    包含不可达状态的图表。

遷移での編集時チェック

未接続の遷移

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

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

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

    包含悬空过渡的图表。

デフォルト遷移パスがステートで終了しない

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

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

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

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

  • 解決法:デフォルト遷移に沿ったすべてのパスをサブステートで終了します。1つのデフォルト遷移が,条件で保護されておらず,かつイベントによりトリガーされないことを確認します。

    图表中没有到某个状态的无条件默认转换路径。

無効なデフォルト遷移パス

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

  • 診断レベル:エラー。

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

    带有无效默认转换路径的图表。

遷移に構文エラーがある

  • 問題点:遷移内の条件またはアクションが,Stateflowの構文ルールに従っていません。Stateflowエディターでは,構文エラーに赤の波線が引かれます。ステートに構文エラーがあるも参照してください。

  • 診断レベル:エラー。

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

    包含语法错误的转换。

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

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

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

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

    转换路径,其中转换操作位于条件操作之前。

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

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

  • 診断レベル:警告。

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

    以并行状态开始或结束的转换。

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

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

  • 診断レベル:エラー。

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

    带有连接到方框的过渡的图表。

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

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

  • 診断レベル:エラー。

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

    带有跨越平行状态边界的转换的独立图表。

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

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

  • 診断レベル:エラー。

  • 解決法:グラフィカル関数に入る,またはグラフィカル関数から出る遷移を削除します。

    包含进入和退出图形函数的转换的图表。

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

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

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

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

    子状态之间的过渡,超出了父状态的边界。

遷移の優先順位低下

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

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

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

    在这个图表中,无条件的转变掩盖了条件的转变。

在アクションまたは子ステートをもつステート外の無条件パス

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

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

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

    图中显示了一个带有during actions的状态的转换和另一个带有子状态的状态的转换。

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

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

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

  • 診断レベル:エラー。

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

    一个循环中带有转换动作的流程图。

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

  • 問題点:ヒストリジャンクションは次の場合に"無効"になります。

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

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

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

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

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

  • 診断レベル:エラー。

  • 解決法:ヒストリジャンクションを階層のチャートレベル,パラレル(和)構造をもつステート,またはグラフィカル関数から削除します。1つを残してすべてのヒストリジャンクションをステートから削除します。遷移元をコネクティブジャンクションまたはステートに移動します。詳細については,ヒストリジャンクションを使用したステートアクティビティの記録を参照してください。

    包含无效历史连接的图表。

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

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

  • 診断レベル:エラー。

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

    没有无条件逃离循环的结点。

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

  • 問題点:同じ遷移元からの複数の遷移パスが1つのジャンクションに通じており,そのジャンクションにステートまたは終端ジャンクションへの無条件パスがない場合に,制御フローの予期せぬバックトラッキングが発生する可能性があります。

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

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

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

    图表带有意想不到的回溯。

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

    图表没有意外的回溯。

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

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

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

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

    包含不可达结的图表。

関数での編集時チェック

関数が未使用

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

  • 診断レベル:警告。

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

    包含未使用函数的图表。

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

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

  • 診断レベル:エラー。

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

    使用保留关键字作为参数的函数。

関連するトピック