主要内容

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

デバッグ中のデ,タおよびメッセ,ジの検査と変更

Stateflow®チャートがデバッグモードにある間,データ,メッセージ,時相論理の式の値を検査してチャートのステータスを調べることができます。また,データ値を変更してローカルメッセージと出力メッセージを送信することにより,チャートの設計をテストすることも可能です。次の表は,これらのデバッグタスクの実行に使用できる@ @ @フェ@ @ @ @ @ @ @詳細にいては,チャトのデバッグのためのブレクポントの設定を参照してください。

デバッグタスク 状态流エディタ [シンボル]ペ电子邮件ン ブレクポントと監視ウィンドウ MATLAB®コマンドウィンドウ
デ,タとメッセ,ジの値の検査
時相論理式の検査 不可 不可 不可
デ,タとメッセ,ジの値の変更 不可 不可
メッセ,ジの送信 不可 不可 不可

Stateflowエディタ,でのデ,タの表示

シミュレーションがブレークポイントで一時停止している間,チャート内のステート,遷移,または関数にカーソルを合わせてデータの値を調べることができます。選択したオブジェクトが使用しているデタおよびメッセジの値がルヒントに表示されます。

オブジェクトのタ@ @プ ルヒントの情報
ステ,トと遷移 オブジェクトが使用するデ,タ,メッセ,ジ,時相論理式の値
グラフィカル関数,真理値表関数,matlab関数 関数のスコ,プ内におけるロ,カルデ,タ,メッセ,ジ,入力および出力の値

たとえば,次のチャ,トのブレ,クポ,第二个ステ,トがそのアクションを評価するときにシミュレ,ションを一時停止します。ス,パ,ステ,ト齿轮にカソルを合わせると,以下の値を示すルヒントが表示されます。

  • 時相論理式Duration (speed >= up_threshold)および持续时间(speed <= down_threshold)

  • 速度up_threshold向上を含むデ,タ。

当图表在断点处暂停时,工具提示将显示超状态齿轮的状态和数据信息。

メモ

チャ,トプロパティ[チャ,トレベルの関数をエクスポ,ト]および[エクスポ,トされた関数をグロ,バルに可視として扱う]を選択した場合,。

[シンボル]ペ@ @ @ @ @ @ @ @ @ @ @ @ @

チャ,トがデバッグモ,ドにある間,[シンボル]ペンには,チャト内の各デタとメッセジオブジェクトの値が表示されます。たとえば,次のチャ,トがブレ,クポ,[値]列ですべてのチャ,トデ,タの値を確認できます。強調表示されている値は最後のタ@ @ムステップ中に変化したものです。

当图表在断点处暂停时,“符号”窗格将显示图表中数据对象的值。

[シンボル]ペesc escンで,以下の値を変更することができます。

  • デ,タストアメモリのデ,タ,ロ,カルデ,タ,および出力デ,タ。

  • ロ,カルメッセ,ジと出力メッセ,ジ。

デ,タまたはメッセ,ジオブジェクトの[値]フィ,ルドをクリックして新しい値を入力します。

シミュレ,ション中に定数,パラメ,タ,または入力デ,タの値とメッセ,ジは変更できません。

詳細にいては,状态流エディタ,でのシンボルの管理を参照してください。

ブレクポントと監視ウィンドウでのデタの表示

シミュレーションがブレークポイントで一時停止している間に,Stateflowブレークポイントと監視ウィンドウで現在のデータとメッセージの値を表示することができます。ブレクポントと監視ウィンドウを開くには,[デバッグ]タブで[ブレクポントリスト]をクリックします。あるいは,[ブレクポント]ダアログボックスを開いて[ブレクポントリスト]リンクをクリックします。

監視リストでのデ,タの追跡

ブレクポントと監視ウィンドウを使って以下のことを行えます。

  • デ,タおよびメッセ,ジオブジェクトを監視リストに追加。

  • 最後のタ@ @ムステップ以降に変化した値を追跡。

  • メッセジを展開してメッセジキュおよびメッセジデタの値を表示。

たとえば,監視リストに速度up_thresholdおよび向上を追加して,シミュレ,ションのステップ実行中にこれらの値を追跡できます。強調表示は,速度up_thresholdの値が最後のタ@ @ムステップ中に変化したことを示します。

状态流断点和监视窗口的监视窗格。

デ,タまたはメッセ,ジオブジェクトを監視リストに追加するには,[プロパティaapl . aapl . cn]かモデルエクスプロ,ラ,を開きます。監視するデ,タまたはメッセ,ジオブジェクトを選択し,[監視ウィンドウに追加]リンクをクリックします。

あるいは,Stateflowエディターで,データやメッセージを使用しているステートまたは遷移を右クリックすることもできます。[監視ウィンドウに追加]を選択して,ドロップダウンリストから変数名を選択します。

監視の表示形式

監視デタの表示に使用される形式を変更するには,ウィンドウ上部のギアアコンを選択します。ドロップダウンリストを使用して各デタ型にいてmatlab形式を選択します。

更改值格式对话框。

監視リストからのデ,タの削除

データまたはメッセージオブジェクトを監視リストから削除するには,監視データのパスにカーソルを合わせ,変数名の左側に表示される[このウォッチを削除]ア@ @コンをクリックします。

在状态流断点和监视窗口中删除此监视图标。

監視デ,タの保存と復元

監視デタはmatlabセッションの間存続します。モデルを閉じても、その監視デ、タのリストはブレ、クポ、ントと監視ウィンドウに残ります。同じMATLABセッション中にモデルを再度開いた場合,そのモデルの監視データのリストが復元されます。

ブレークポイントと監視データのリストを保存して,その後のMATLABセッションで再度読み込むことができます。ブレークポイントと監視データのリストのスナップショットを保存するには,ブレークポイントと監視ウィンドウの上部で,[現在のブレクポントと監視の保存]ア@ @コンをクリックします。スナップショットを復元するには,[ブレクポントと監視の読み込み]ア@ @コンをクリックします。

MATLABコマンドウィンドウでのデ,タの表示と変更

シミュレションがブレクポントで一時停止している間,matlabコマンドプロンプトが调试> >に変わります。このプロンプトで,Stateflowデータの値の検査と変更,ローカルメッセージと出力メッセージの送信,MATLABワークスペースの操作を行うことができます。

たとえば、前のチャ、トがブレ、クポ、ントに到達したとします。現在のスコ,プで表示可能なデ,タを表示するには,コマンドを使用します。

名称大小字节分类属性TWAIT 1x1 1 uint8 down 1x1 1逻辑下行1x1 8 double down_threshold 1x1 8双档1x1 4 gearType speed 1x1 8双油门1x1 8 double up 1x1 1逻辑上行1x1 8 double up_threshold 1x1 8 double

速度up_thresholdの値を検査するには,次のように入力します。

速度
速度= 26.3383
up_threshold
Up_threshold = 41.3601

デバッグプロンプトを使用したデ,タの変更

デバッグプロンプトで,データストアメモリのデータ,ローカルデータ,および出力データの値を変更できます。たとえば,前のチャ,トではup_threshold向上および齿轮の値を次のように変更できます。

Up_threshold = 25;
Up = true;
齿轮= gearType.third;
デバッグプロンプトでデ,タを変更する際は以下の規則に従います。

  • ベクトルと行列を変更する場合,チャートのアクション言語プロパティに関係なく,インデックス付けにはMATLAB構文を使用します。ンデックス表記を参照してください。

    たとえば2行2列の行列uの対角の要素を変更するには,次のように入力します。

    U (1,1) = 6.022e23;U (2,2) = 6.626e-34

  • 可変サイズのデータの次元を変更する場合,新しいサイズは,データに指定された次元の範囲内でなければなりません。たとえば,vは,最大サ16 (16)の可変サ@ @ズの配列であるとします。vの値を5行7列の1の配列に変更するには,次のように入力します。

    V = ones(5,7);

  • 列挙デ,タを変更する場合,接頭辞付きの識別子を使用して列挙型を明示的に指定してください。列挙値の表記法を参照してください。

    たとえば,wは列挙デ,タ型颜色をもとします。wの値を列挙値红色的に変換するには,次のように入力します。

    w =颜色。红色的

  • 数値デ,タを変更する場合,matlab型変換関数を使用して明示的なデ,タ型にキャストします。明示的なキャストは型のデ,タには必要ありません。型キャスト演算を参照してください。

    たとえば,xの型がyの型がint32zの型がfixdt(12) 1, 16日であるとします。これらのデ,タオブジェクトの値を変更するには,次のように入力します。

    X =单身(98.6);Y = int32(100);Z = fi(0.5413,1,16,12);

  • 定数,パラメ,タ,入力デ,タの値をデバッグプロンプトで変更することはできません。

メモ

int64またはuint64型のデ,タを変更するには,関数fi(定点设计师)を使って新しい値を固定小数点型にキャストします。

デバッグプロンプトを使用したメッセ,ジの送信

デバッグプロンプトでロ,カルメッセ,ジや出力メッセ,ジを送信することができます。たとえば,次のチャ,トでは,ロ,カルメッセ,ジによってステ,トDecisionPointの後にどのステ,トがアクティブになるかが決まります。チャトが正の値をもメッセジを受け取った場合,ステ,ト收到了がアクティブになり,チャ,トは真正的の値を出力します。それ以外の場合,ステ,ト错过了がアクティブになり,チャ,トはの値を出力します。

在断点处暂停的状态流程图。状态DecisionPoint是活动的。

メッセジの初期値は0です。データフィールドの値を正の数値に変更してメッセージをそのローカルキューに送信するには,次のように入力します。

M = 5;发送(M);
シミュレ,ションの次のステップに進むと,メッセ,ジはステ,ト收到了への遷移をトリガ,します。詳細にいては,ブレクポント後のチャト実行の制御を参照してください。

デバッグプロンプトからメッセ,ジを送信する際は以下の規則に従います。

  • 有効なメッセージのメッセージデータフィールドの読み取りや書き込みを行うには,メッセージオブジェクトの名前を使用します。ドット表記構文は使わないでください。

  • デバッグプロンプトからメッセ,ジを送信できるのは,チャ,トが发送演算子を呼び出してメッセ,ジを明示的に送信する場合のみです。

  • デバッグプロンプトから入力メッセ,ジを送信することはできません。

詳細にいては,状态流チャ,ト内のメッセ,ジアクティビティの制御を参照してください。

デバッグ中のMATLABワ,クスペ,スへのアクセス

デバッグプロンプトでその他のMATLABコマンドを入力できますが,その結果はStateflowワークスペース内で実行されます。たとえば,次のように関数保存を使用して,すべてのチャ,ト変数をmatファ,ルに保存できます。

保存(chartVars)

Matlabベ,スワ,クスペ,スでコマンドを入力するには,evalinコマンドを使用して最初の引数を“基地”にします。たとえば,米ATLAB ワークスペースで変数をリストするには、次のコマンドを使用します。

evalin (“基地”“谁”

参考

|||

関連するトピック