このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
編集時のチェックが有効にされている場合,チャートの作業を行う際にStateflow®エディターによって潜在的なエラーや警告が検出されます。これらの問題を設計プロセスの早期に解決することで,コンパイル時や実行時の警告およびエラーを回避できます。
Stateflowエディターで,編集時のチェックに違反するオブジェクトが赤(エラー)またはオレンジ(警告)で強調表示されます。強調表示されたオブジェクトにカーソルを合わせてエラーまたは警告のバッジをクリックすると,ツールヒントには詳細と,考えられる解決方法が表示されます。
既定では,編集時のチェックと構文エラーの強調表示は有効にされています。編集時のチェックを無効にするには,[デバッグ]タブで,[診断]、[編集時のエラーと警告)チェックボックスをオフにします。
次の表は[コンフィギュレーションパラメーター]ダイアログボックスの[診断]、(Stateflow)ペインの診断のコンフィギュレーションパラメーターに関連付けられた編集時のチェックの一覧です。
編集時チェックの問題 | 診断のコンフィギュレーションパラメーター |
---|---|
未接続の遷移 | 到達不能の実行パス(金宝app模型) |
デフォルト遷移パスがステートで終了しない | 無条件のデフォルト遷移がない(金宝app模型) |
このパスには条件アクションの前に遷移アクションがある | 条件アクションの前に指定された遷移アクション(金宝app模型) |
自然な親を外れた遷移ループ | 自然な親以外からの遷移(金宝app模型) |
遷移の優先順位低下 | 到達不能の実行パス(金宝app模型) |
在アクションまたは子ステートをもつステート外の無条件パス | 自然な親以外からの遷移(金宝app模型) |
予期せぬバックトラッキング | 予期せぬバックトラッキング(金宝app模型) |
到達不能なジャンクション | 到達不能の実行パス(金宝app模型) |
これらの編集時のチェックについて,診断アクションのレベルを制御するには,そのコンフィギュレーションパラメーターの値を[エラー]
、[警告]
、[なし]
のいずれかに設定します。コンフィギュレーションパラメーターの設定を変更すると,対応する編集時のチェックの診断レベルも変更されます。たとえば,(到達不能の実行パス]コンフィギュレーションパラメーターを没有一个
に設定した場合,Stateflowエディターで未接続の遷移,遷移の優先順位低下,および到達不能なステートは強調表示されません。
原子サブチャートにステートアクションが含まれている
問題点:ステートアクションは,原子サブチャートではサポートされません。
診断レベル:エラー。
解決法:ステートアクションを削除するか,原子サブチャートのサブステートへ移動します。
デフォルト遷移が見つからない
問題点:排他的(或)構造と少なくとも2つのサブステートまたはジャンクションを含むチャートやステートでは,実行の開始位置を示すためにデフォルト遷移が必要です。
診断レベル:エラー。
解決法:デフォルト遷移を追加して開始ステートを指定します。詳細については,デフォルト遷移を参照してください。
グラフィカル関数にステートが含まれている
問題点:グラフィカル関数は単一のタイムステップで完全に実行されるため,ステートを含むことはできません。
診断レベル:エラー。
解決法:ステートをジャンクションに置き換えます。詳細については,グラフィカル関数の定義によるロジックパターンの再利用を参照してください。
無効な交差
問題点:Stateflowエディターでステートおよびジャンクションがオーバーラップしてはなりません。
診断レベル:エラー。
解決法:ステートとジャンクションを分離して交差を回避します。
パラレルステートのリーフステートアクティビティまたは子ステートアクティビティを監視
問題点:パラレル(和)構造をもつチャートおよびステートでは,パラレルサブステートが同時にアクティブになるため,リーフステートや子ステートのアクティビティの監視はサポートされません。
診断レベル:警告。
解決法:プロパティインスペクターまたはモデルエクスプローラーを開きます。[監視する出力の作成)チェックボックスをオフにするか,ドロップダウンリストから(自己アクティビティ]
を選択します。詳細については,アクティブステートデータによるステートアクティビティの監視を参照してください。
ステートに構文エラーがある
問題点:Stateflow構文ルールに従っていないステートアクションがあります。Stateflowエディターでは,構文エラーに赤の波線が引かれます。遷移に構文エラーがある
も参照してください。
診断レベル:エラー。
解決法:ステートアクションの構文エラーを修正します。詳細については,ステートのラベルを参照してください。
メモ
親チャートでは,構文エラーのあるサブチャートが赤で強調表示され,エラーバッジによって構文の問題が示されます。サブチャートのエディターでは,構文エラーが赤の波線で表示されますが,問題を示すバッジはありません。
到達不能なステート
問題点:あるステートに通じる有効な実行パスがないため,そのステートが"到達不能"です。
診断レベル:コンフィギュレーションパラメーター到達不能の実行パス(金宝app模型)によって異なります。
解決法:到達不能なステートを,到達可能なステートまたはジャンクションからの遷移に接続します。
未接続の遷移
デフォルト遷移パスがステートで終了しない
問題点:排他的(或)構造と,少なくとも1つのサブステートをもつチャートまたはステートでは,次のことが必要です。
デフォルト遷移に沿ったすべてのパスはサブステートにつながらなければならない
条件で保護されていないか,イベントでトリガーされるデフォルト遷移パスが1つなければならない
診断レベル:コンフィギュレーションパラメーター無条件のデフォルト遷移がない(金宝app模型)によって異なります。
解決法:デフォルト遷移に沿ったすべてのパスをサブステートで終了します。1つのデフォルト遷移が,条件で保護されておらず,かつイベントによりトリガーされないことを確認します。
無効なデフォルト遷移パス
問題点:デフォルト遷移パスは親ステートから出ることはできません。
診断レベル:エラー。
解決法:デフォルト遷移パスを変更して親ステート内にとどまるようにします。
遷移に構文エラーがある
問題点:遷移内の条件またはアクションが,Stateflowの構文ルールに従っていません。Stateflowエディターでは,構文エラーに赤の波線が引かれます。ステートに構文エラーがある
も参照してください。
診断レベル:エラー。
解決法:遷移条件またはアクションの構文エラーを修正します。詳細については,遷移ラベルを参照してください。
このパスには条件アクションの前に遷移アクションがある
問題点:遷移アクションがあり,後続の遷移に条件アクションがある場合,これらのアクションは遷移の順序では実行されません。Stateflowチャートは,関連付けられている条件が真と評価されたときに条件アクションを実行します。これとは対照的に,チャートが遷移アクションを実行するのは,遷移パスが完全に実行されたときのみです。その結果,チャートが遷移パスを実行すると,条件アクションが遷移アクションより前に発生します。
診断レベル:コンフィギュレーションパラメーター条件アクションの前に指定された遷移アクション(金宝app模型)によって異なります。
解決法:遷移アクションをパスの最後の条件アクションの後に置きます。
遷移がパラレルステートで開始または終了する
問題点:パラレル(和)構造のチャートやステートで,兄弟関係にあるすべてのサブステートが同時にアクティブ,または同時に非アクティブになっています。
診断レベル:警告。
解決法:遷移を削除するか,親ステートの構造を排他(或)に変更します。
遷移がボックスに接続する
問題点:遷移はステートおよびジャンクションにのみ接続できます。
診断レベル:エラー。
解決法:ボックスに接続している遷移を移動または削除します。
遷移がパラレルステートにまたがっている
問題点:スタンドアロンのStateflowチャートは,パラレルステートの境界をまたぐ遷移をサポートしていません。
診断レベル:エラー。
解決法:パラレルステートへの,またはパラレルステートからの境界をまたぐ遷移を削除します。
遷移がグラフィカル関数に出入りしている
問題点:遷移はグラフィカル関数に入る,またはグラフィカル関数から出ることはできません。グラフィカル関数内のフローチャートは,関数内に完全に含まれていなければなりません。
診断レベル:エラー。
解決法:グラフィカル関数に入る,またはグラフィカル関数から出る遷移を削除します。
自然な親を外れた遷移ループ
問題点:遷移元と遷移先の間で遷移が親ステートの外に出る場合,遷移先ステートがアクティブになる前に,チャートが親ステートの退出
アクションと条目
アクションを実行します。
診断レベル:コンフィギュレーションパラメーター自然な親以外からの遷移(金宝app模型)によって異なります。
解決法:遷移を移動し,親ステートに含まれるようにします。
遷移の優先順位低下
在アクションまたは子ステートをもつステート外の無条件パス
問題点:ステートから外に出る無条件遷移により,ステート内の在
アクションと,子ステートへのデフォルト遷移の実行が抑制されます。
診断レベル:コンフィギュレーションパラメーター自然な親以外からの遷移(金宝app模型)によって異なります。
解決法:遷移の条件を追加するか,ステートから期间アクションと子ステートを削除します。
遷移アクションをもつ遷移がサイクルに含まれる
問題点:遷移アクションをもつ遷移をサイクルに含めることはできません。
診断レベル:エラー。
解決法:遷移アクションを削除するか,遷移を削除してサイクルを削除します。
無効なヒストリジャンクション
問題点:ヒストリジャンクションは次の場合に"無効"になります。
ヒストリジャンクションが階層のチャートレベルに含まれている。
ヒストリジャンクションがパラレル(和)構造をもつステートに含まれている。
ヒストリジャンクションがグラフィカル関数内に含まれている。
同じステートに複数のヒストリジャンクションが含まれている。
ヒストリジャンクションが遷移元になっている。
診断レベル:エラー。
解決法:ヒストリジャンクションを階層のチャートレベル,パラレル(和)構造をもつステート,またはグラフィカル関数から削除します。1つを残してすべてのヒストリジャンクションをステートから削除します。遷移元をコネクティブジャンクションまたはステートに移動します。詳細については,ヒストリジャンクションを使用したステートアクティビティの記録を参照してください。
サイクルからの無条件エスケープがジャンクションにない
問題点:ジャンクションにはサイクルからステートまたは終端ジャンクションへの無条件エスケープパスがなければなりません。
診断レベル:エラー。
解決法:ジャンクションからステートまたは終端ジャンクションへの無条件パスを作成します。
予期せぬバックトラッキング
問題点:同じ遷移元からの複数の遷移パスが1つのジャンクションに通じており,そのジャンクションにステートまたは終端ジャンクションへの無条件パスがない場合に,制御フローの予期せぬバックトラッキングが発生する可能性があります。
診断レベル:コンフィギュレーションパラメーター予期せぬバックトラッキング(金宝app模型)によって異なります。
解決法:ジャンクションからステートまたは終端ジャンクションへの無条件パスを作成します。詳細については,フローチャートのバックトラックを参照してください。
たとえば,このチャートで強調表示されたジャンクションには,ステート一个
への無条件遷移パスがありません。ConditionA
とConditionB
が真で,ConditionC
が偽である場合,チャートはパスの最初のジャンクションに複数回バックトラッキングします。したがって,チャートは3つの条件アクションを実行します。
バックトラッキングを避けるには,条件を組み合わせて2番目のジャンクションから遷移先ステートへの無条件パスを作成します。変更後に,チャートは1つの条件アクションのみを実行します。
到達不能なジャンクション
問題点:ジャンクションは,そこに通じる有効な実行パスがない場合に"到達不能"になります。
診断レベル:コンフィギュレーションパラメーター到達不能の実行パス(金宝app模型)によって異なります。
解決法:到達不能なジャンクションを,到達可能なステートまたはジャンクションからの遷移に接続します。
関数が未使用
問題点:関数は,これを呼び出すステートメントがない場合にチャートで"未使用"となります。
診断レベル:警告。
解決法:ステート,遷移アクション,または別の関数からこの関数を呼び出します。
関数の引数としてのキーワードの使用が無効
問題点:関数定義に予約済みのキーワードが引数として使われています。
診断レベル:エラー。
解決法:関数の引数の名前を変更します。予約済みキーワードの一覧については,Stateflowオブジェクトの命名のガイドラインを参照してください。