このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
デバッグ中のデ,タおよびメッセ,ジの検査と変更
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
の型がint32
、z
の型がfixdt(12) 1, 16日
であるとします。これらのデ,タオブジェクトの値を変更するには,次のように入力します。X =单身(98.6);Y = int32(100);Z = fi(0.5413,1,16,12);
定数,パラメ,タ,入力デ,タの値をデバッグプロンプトで変更することはできません。
メモ
int64
またはuint64
型のデ,タを変更するには,関数fi
(定点设计师)を使って新しい値を固定小数点型にキャストします。
デバッグプロンプトを使用したメッセ,ジの送信
デバッグプロンプトでロ,カルメッセ,ジや出力メッセ,ジを送信することができます。たとえば,次のチャ,トでは,ロ,カルメッセ,ジ米
によってステ,トDecisionPoint
の後にどのステ,トがアクティブになるかが決まります。チャトが正の値をもメッセジ米
を受け取った場合,ステ,ト收到了
がアクティブになり,チャ,トは真正的
の値を出力します。それ以外の場合,ステ,ト错过了
がアクティブになり,チャ,トは假
の値を出力します。
メッセジの初期値は0です。データフィールドの値を正の数値に変更してメッセージをそのローカルキューに送信するには,次のように入力します。
M = 5;发送(M);
收到了
への遷移をトリガ,します。詳細にいては,ブレクポント後のチャト実行の制御を参照してください。
デバッグプロンプトからメッセ,ジを送信する際は以下の規則に従います。
有効なメッセージのメッセージデータフィールドの読み取りや書き込みを行うには,メッセージオブジェクトの名前を使用します。ドット表記構文は使わないでください。
デバッグプロンプトからメッセ,ジを送信できるのは,チャ,トが
发送
演算子を呼び出してメッセ,ジを明示的に送信する場合のみです。デバッグプロンプトから入力メッセ,ジを送信することはできません。
詳細にいては,状态流チャ,ト内のメッセ,ジアクティビティの制御を参照してください。
デバッグ中のMATLABワ,クスペ,スへのアクセス
デバッグプロンプトでその他のMATLABコマンドを入力できますが,その結果はStateflowワークスペース内で実行されます。たとえば,次のように関数保存
を使用して,すべてのチャ,ト変数をmatファ,ルに保存できます。
保存(chartVars)
Matlabベ,スワ,クスペ,スでコマンドを入力するには,evalin
コマンドを使用して最初の引数を“基地”
にします。たとえば,米ATLAB ワークスペースで変数をリストするには、次のコマンドを使用します。
evalin (“基地”,“谁”)