Stateflow.State
チャート、ステート、またはボックス内のステート
説明
Stateflow.State
オブジェクトは、リアクティブ システムの動作モードを記述するために使用します。詳細については、ステートを使用した動作モードの表現を参照してください。
作成
入力引数
プロパティ
Stateflow API オブジェクトには、Stateflow エディターで設定した値に対応するプロパティがあります。プロパティにアクセスするかプロパティを変更するには、ドット表記を使用します。複数の API オブジェクトの複数のプロパティにアクセスするか、それらを変更するには、関数 get
および関数 set
をそれぞれ使用します。詳細については、Stateflow オブジェクトのプロパティの変更と関数の呼び出しを参照してください。
内容
ステートの名前。string スカラーまたは文字ベクトルとして指定します。
ステートのラベル。string スカラーまたは文字ベクトルとして指定します。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。
この プロパティ は読み取り専用です。
ステートの during
アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
この プロパティ は読み取り専用です。
ステートの entry
アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
この プロパティ は読み取り専用です。
ステートの exit
アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
この プロパティ は読み取り専用です。
Moore チャートでのステート アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは Moore チャートでのみサポートされています。詳細については、Moore チャートの設計ガイドラインを参照してください。
この プロパティ は読み取り専用です。
ステートの on
アクション。文字ベクトルの cell 配列として、次の形式で指定します。
{'trigger1','action1',...,'triggerN','actionN'}
このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
ステートをコメント アウトするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティを true
に設定することは、ステートを右クリックして [コメント アウト] を選択することと等価です。詳細については、Stateflow チャート内のオブジェクトのコメントアウトを参照してください。
この プロパティ は読み取り専用です。
ステートを暗黙的にコメント アウトするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。ステートを含むオブジェクトを明示的にコメントアウトすると、そのステートは暗黙的にコメントアウトされます。ステートが Atomic サブチャートに含まれている場合、明示的にコメント化されたオブジェクトもその Atomic サブチャートに含まれていない限り、このプロパティは false
になります。
R2023a 以降
この プロパティ は読み取り専用です。
ステートをコメントアウトするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。IsExplicitlyCommented
または IsImplicitlyCommented
が true
の場合、このプロパティは true
になります。
ステートに追加するコメント テキスト。string スカラーまたは文字ベクトルとして指定します。このプロパティは、IsExplicitlyCommented
プロパティが true
である場合にのみ適用されます。Stateflow エディターで、ステート上のコメント バッジ をポイントすると、テキストがツールヒントとして表示されます。
IsExplicitlyCommented
プロパティを false
に設定すると、CommentText
の値は ""
に戻ります。
グラフィカルな外観
ステートの位置とサイズ。[left top width height]
形式の 4 要素数値ベクトルとして指定します。
この プロパティ は読み取り専用です。
ステートがボックス、ステート、または関数とグラフィカルに交差するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。
ステートがグループ化されたステートかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。グループ化されたステートをコピーして貼り付けると、ステートだけでなく、その内容もすべてコピーされます。詳細については、グループ化によるコピーと貼り付けを参照してください。
ステートがサブチャートかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。
ステートの内容のプレビューを表示するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティは、IsSubchart
プロパティが true
である場合にのみ適用されます。
入力遷移の矢印のサイズ。スカラーとして指定します。
ステート ラベルのフォント サイズ。スカラーとして指定します。ステートを含むチャートの StateFont.Size
プロパティが、このプロパティの初期値を設定します。
ステート構造
ステート内の包含の最上位にあるサブステートの構造。"EXCLUSIVE_OR"
または "PARALLEL_AND"
として指定します。詳細については、サブステート構造の指定を参照してください。
この プロパティ は読み取り専用です。
兄弟ステートの構造。'AND'
または 'OR'
として指定します。ステートは、親であるステートまたはチャートの Decomposition
プロパティからこのプロパティを継承します。
パラレル (AND) 構造内のステートの実行順序。整数スカラーとして指定します。このプロパティは、次の両方の条件が満たされている場合にのみ適用されます。
ステートの
Type
プロパティが"AND"
である。ステートを含むチャートの
UserSpecifiedStateTransitionExecutionOrder
プロパティがtrue
である。
アクティブ ステートの出力
ステートのアクティブ ステート データの出力端子を作成するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。
この プロパティ は読み取り専用です。
ステートのアクティブ ステート データ オブジェクト。Stateflow.Data
オブジェクトとして指定します。このプロパティは、ステートの HasOutputData
プロパティが true
である場合にのみ適用されます。
ステートのアクティブ ステート データ オブジェクトの名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、ステートの HasOutputData
プロパティが true
である場合にのみ適用されます。
アクティブ ステートの出力データに対する監視モード。"SelfActivity"
、"ChildActivity"
、または "LeafStateActivity"
として指定します。
ステートのアクティブ ステート データ オブジェクトの列挙データ型の名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、ステートの OutputMonitoringMode
プロパティが "ChildActivity"
または "LeafStateActivity"
である場合にのみ適用されます。詳細については、Enum 名を参照してください。
アクティブ ステート データの出力の列挙データ型を手動で定義するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティは、ステートの OutputMonitoringMode
プロパティが "ChildActivity"
または "LeafStateActivity"
である場合にのみ適用されます。詳細については、ステート アクティビティの列挙型の定義を参照してください。
信号ログとテスト ポイントの監視
ステートに対する信号のログのプロパティ。次のプロパティをもつ Stateflow.SigLoggingInfo
オブジェクトとして指定します。
DataLogging
— 信号のログを有効にするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。DecimateData
— ログ データの量を制限するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。Decimation
— 間引き間隔。整数スカラーとして指定します。このプロパティは、DecimateData
プロパティがtrue
である場合にのみ適用されます。LimitDataPoints
— ログに記録するデータ点の数を制限するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。MaxPoints
— ログに記録するデータ点の最大数。整数スカラーとして指定します。このプロパティは、LimitDataPoints
プロパティがtrue
である場合にのみ適用されます。NameMode
— 信号名のソース。"SignalName"
または"Custom"
として指定します。LoggingName
— カスタム信号名。string スカラーまたは文字ベクトルとして指定します。このプロパティは、NameMode
プロパティが"Custom"
である場合にのみ適用されます。
信号のログでは、シミュレーション中にステートの自己アクティビティが MATLAB® ワークスペースに保存されます。詳細については、Log Simulation Output for States and Dataを参照してください。
例: state.LoggingInfo.DataLogging = true;
ステートをテスト ポイントとして設定するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。シミュレーション時にテストポイントをフローティング スコープで監視できます。テスト ポイントの値を MATLAB ワークスペースにログ記録することも可能です。詳細については、テスト ポイントとしての信号の設定 (Simulink)を参照してください。
デバッグ
ステートに対するデバッガーのプロパティ。次のプロパティをもつ Stateflow.StateDebug
オブジェクトとして指定します。
OnEntry
—On State Entry
ブレークポイントを設定するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。OnDuring
—During State
ブレークポイントを設定するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。OnExit
—On State Exit
ブレークポイントを設定するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。
詳細については、チャートのデバッグのためのブレークポイントの設定を参照してください。
例: state.Debug.Breakpoints.OnEntry = true;
例: state.Debug.Breakpoints.OnDuring = true;
例: state.Debug.Breakpoints.OnExit = true;
コード生成
生成コード内でのステート関数の外観。次のいずれかの値として指定します。
"Auto"
— 内部計算により、生成コード内のステート関数の外観が決まります。"Function"
— ステート関数は別個の静的関数として実装されます。"Inline"
— ステート関数に対する呼び出しがコードで置き換えられます。ただし、関数が再帰の一部でない場合に限ります。
詳細については、ステート関数の生成コード内インライン化 (Simulink Coder)を参照してください。
階層
この プロパティ は読み取り専用です。
ステートを含むチャート。Stateflow.Chart
オブジェクトとして指定します。
この プロパティ は読み取り専用です。
ステートのサブビューアー。Stateflow.Chart
、Stateflow.State
、Stateflow.Box
のいずれかのオブジェクトとして指定します。サブビューアーは、ステートをグラフィカルに表示できるチャートまたはサブチャートです。
この プロパティ は読み取り専用です。
ステートを含むマシン。Stateflow.Machine
オブジェクトとして指定します。
この プロパティ は読み取り専用です。
モデルの階層構造におけるステートの親の場所。文字ベクトルとして指定します。
識別
ステートの説明。string スカラーまたは文字ベクトルとして指定します。
ステートのドキュメント リンク。string スカラーまたは文字ベクトルとして指定します。
ステートのユーザー定義のタグ。任意の型のデータとして指定します。
この プロパティ は読み取り専用です。
セッションに依存しない識別子。整数スカラーとして指定します。このプロパティを使用して、ステートをその親チャート内の他のオブジェクトと区別します。
この プロパティ は読み取り専用です。
一意の識別子。整数スカラーとして指定します。SSIdNumber
とは異なり、このプロパティの値は新しい MATLAB セッションを開始するたびに再割り当てされ、オブジェクトが削除されるとリサイクルされる場合があります。
オブジェクト関数
find | 階層内で指定したオブジェクトの識別 |
getChildren | オブジェクトの子の特定 |
getParent | オブジェクトの親の特定 |
defaultTransitions | 指定したオブジェクト内のデフォルト遷移の特定 |
innerTransitions | 指定した遷移元をもつ内部遷移の特定 |
outerTransitions | 指定した遷移元をもつ出力遷移の特定 |
sinkedTransitions | 指定した遷移先をもつ遷移の特定 |
sourcedTransitions | 指定した遷移元をもつ遷移の特定 |
getReferences | シンボル名への参照の特定 |
renameReferences | シンボル名の変更とそのシンボル名への参照の更新 |
commentedBy | グラフィカル オブジェクトを暗黙的にコメントアウトするオブジェクトの特定 |
dialog | プロパティ ダイアログ ボックスを開く |
view | 編集環境でオブジェクトを表示 |
highlight | グラフィカル オブジェクトの強調表示 |
fitToView | グラフィカル オブジェクトの拡大表示 |
例
チャート ch
にステートを追加します。名前は A
に設定します。
state = Stateflow.State(ch);
state.Name = "A";
ステート state
に複数行のラベルを入力するために、以下を行うことができます。
MATLAB 関数
sprintf
を呼び出し、エスケープ シーケンス\n
を使用して改行文字を挿入する。str = sprintf("A\nen: action1();\ndu: action2();\nen,du: action3();"); sA.LabelString = str;
関数
newline
を使用して改行文字を作成する、連結されたテキスト表現を入力する。str = "A" + newline + ... "en: action1();" + newline + ... "du: action2();" + newline + ... "en,du: action3();" sA.LabelString = str;
ステート ラベルによって指定されたステート名、entry
アクション、during
アクションを抽出するには、次のように入力します。
name = state.Name
name = 'A'
entry = state.EntryAction
entry = ' action1(); action3();'
during = state.DuringAction
during = ' action2(); action3();'
詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。
サブチャート内にあるジャンクションをサブチャート外にあるジャンクションに接続するスーパートランジションを作成します。
モデルを開き、チャートの Stateflow.Chart
オブジェクトにアクセスします。
open_system("sfSupertransitionAPIExample") ch = find(sfroot,"-isa","Stateflow.Chart");
サブチャートの Stateflow.State
オブジェクトとジャンクションの Stateflow.Junction
オブジェクトにアクセスします。
st = find(ch,"-isa","Stateflow.State"); j1 = find(st,"-isa","Stateflow.Junction"); j2 = find(ch,"-isa","Stateflow.Junction","-depth",1);
サブチャートの元の位置を、一時ワークスペース変数 subchartPosition
に保存します。
subchartPosition = st.Position;
IsSubchart
プロパティと IsGrouped
プロパティを false
に設定することにより、サブチャートを通常のステートに変換します。
st.IsSubchart = false;
Assertion failed: Deviant 'root deviant' not opened for transactions. Attempt to modify object of type 'StateflowDI.Junction' [id = -1 ] at kernel/deviant/Deviant.cpp:70:
st.IsGrouped = false;
サブチャートを通常のステートに変換すると、内容が表示されるようサイズが変化する場合があります。
ジャンクション j1
をジャンクション j2
へと接続する遷移を追加します。
tr = Stateflow.Transition(ch); tr.Source = j1; tr.Destination = j2;
IsSubchart
プロパティを true
に設定することにより、ステートをサブチャートに戻します。サブチャートを元の位置に戻します。
st.IsSubchart = true; st.Position = subchartPosition;
これで、ジャンクション間の遷移はサブチャートの境界を越えるスーパートランジションとなります。
バージョン履歴
R2006a より前に導入Stateflow.State
オブジェクトに、次の新しいオブジェクト関数とプロパティが追加されました。
オブジェクト関数
getReferences
は、チャートがステートの名前を参照している場所を返します。オブジェクト関数
renameReferences
は、ステートの名前を変更し、チャート内のそのステート名への参照をすべて更新します。オブジェクト関数
commentedBy
は、ステートをコメントアウトさせる明示的にコメント化されたオブジェクトを特定します。プロパティ
IsCommented
は、ステートをコメントアウトするかどうかを示します。このプロパティは、オブジェクト関数isCommented
を置き換えるものです。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)