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