このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Stateflow.State
チャート、ステート、またはボックス内のステート
説明
Stateflow.State
オブジェクトは、リアクティブ システムの動作モードを記述するために使用します。詳細については、ステートを使用した動作モードの表現を参照してください。
作成
入力引数
parent
— 新しいステートの親
Stateflow.Chart
オブジェクト | Stateflow.State
オブジェクト | Stateflow.Box
オブジェクト
プロパティ
Stateflow API オブジェクトには、Stateflow エディターで設定した値に対応するプロパティがあります。プロパティにアクセスするかプロパティを変更するには、ドット表記を使用します。複数の API オブジェクトの複数のプロパティにアクセスするか、それらを変更するには、関数 get
および関数 set
をそれぞれ使用します。詳細については、Stateflow オブジェクトのプロパティの変更と関数の呼び出しを参照してください。
内容
Name
— ステートの名前
""
(既定値) | string スカラー | 文字ベクトル
ステートの名前。string スカラーまたは文字ベクトルとして指定します。
LabelString
— ステートのラベル
"?"
(既定値) | string スカラー | 文字ベクトル
ステートのラベル。string スカラーまたは文字ベクトルとして指定します。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。
DuringAction
— ステートの during
アクション
文字ベクトル
この プロパティ は読み取り専用です。
ステートの during
アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
EntryAction
— ステートの entry
アクション
文字ベクトル
この プロパティ は読み取り専用です。
ステートの entry
アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
ExitAction
— ステートの exit
アクション
文字ベクトル
この プロパティ は読み取り専用です。
ステートの exit
アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
MooreAction
— Moore チャートでのステート アクション
文字ベクトル
この プロパティ は読み取り専用です。
Moore チャートでのステート アクション。文字ベクトルとして指定します。このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは Moore チャートでのみサポートされています。詳細については、Moore チャートの設計ガイドラインを参照してください。
OnAction
— ステートの on
アクション
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
ステートの on
アクション。文字ベクトルの cell 配列として、次の形式で指定します。
{'trigger1','action1',...,'triggerN','actionN'}
このプロパティの値は、ステートの LabelString
プロパティによって異なります。詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。このプロパティは、Moore チャートではサポートされていません。
IsExplicitlyCommented
— ステートをコメント アウトするかどうか
false
または 0 (既定値) | true
または 1
ステートをコメント アウトするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティを true
に設定することは、ステートを右クリックして [コメント アウト] を選択することと等価です。詳細については、Stateflow チャート内のオブジェクトのコメントアウトを参照してください。
IsImplicitlyCommented
— ステートを暗黙的にコメント アウトするかどうか
true
または 1 | false
または 0
この プロパティ は読み取り専用です。
ステートを暗黙的にコメント アウトするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。ステートを含むオブジェクトを明示的にコメントアウトすると、そのステートは暗黙的にコメントアウトされます。ステートが Atomic サブチャートに含まれている場合、明示的にコメント化されたオブジェクトもその Atomic サブチャートに含まれていない限り、このプロパティは false
になります。
IsCommented
— ステートをコメントアウトするかどうか
true
または 1 | false
または 0
R2023a 以降
この プロパティ は読み取り専用です。
ステートをコメントアウトするかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。IsExplicitlyCommented
または IsImplicitlyCommented
が true
の場合、このプロパティは true
になります。
CommentText
— コメント テキスト
""
(既定値) | string スカラー | 文字ベクトル
ステートに追加するコメント テキスト。string スカラーまたは文字ベクトルとして指定します。このプロパティは、IsExplicitlyCommented
プロパティが true
である場合にのみ適用されます。Stateflow エディターで、ステート上のコメント バッジ をポイントすると、テキストがツールヒントとして表示されます。IsExplicitlyCommented
プロパティを false
に設定すると、CommentText
の値は ""
に戻ります。
グラフィカルな外観
Position
— ステートの位置とサイズ
[0 0 90 60]
(既定値) | [left top width height]
ステートの位置とサイズ。[left top width height]
形式の 4 要素数値ベクトルとして指定します。
BadIntersection
— ステートがボックス、ステート、または関数と交差するかどうか
true
または 1 | false
または 0
この プロパティ は読み取り専用です。
ステートがボックス、ステート、または関数とグラフィカルに交差するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。
IsGrouped
— ステートがグループ化されたステートかどうか
false
または 0 (既定値) | true
または 1
ステートがグループ化されたステートかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。グループ化されたステートをコピーして貼り付けると、ステートだけでなく、その内容もすべてコピーされます。詳細については、グループ化によるコピーと貼り付けを参照してください。
IsSubchart
— ステートがサブチャートかどうか
false
または 0 (既定値) | true
または 1
ステートがサブチャートかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。
ContentPreviewEnabled
— ステートの内容のプレビューを表示するかどうか
false
または 0 (既定値) | true
または 1
ステートの内容のプレビューを表示するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティは、IsSubchart
プロパティが true
である場合にのみ適用されます。
ArrowSize
— 入力遷移の矢印のサイズ
8
(既定値) | スカラー
入力遷移の矢印のサイズ。スカラーとして指定します。
FontSize
— ステート ラベルのフォント サイズ
スカラー
ステート ラベルのフォント サイズ。スカラーとして指定します。ステートを含むチャートの StateFont.Size
プロパティが、このプロパティの初期値を設定します。
ステート構造
Decomposition
— サブステートの構造
"EXCLUSIVE_OR"
(既定値) | "PARALLEL_AND"
ステート内の包含の最上位にあるサブステートの構造。"EXCLUSIVE_OR"
または "PARALLEL_AND"
として指定します。詳細については、サブステート構造の指定を参照してください。
Type
— 兄弟ステートの構造
'AND'
| 'OR'
この プロパティ は読み取り専用です。
兄弟ステートの構造。'AND'
または 'OR'
として指定します。ステートは、親であるステートまたはチャートの Decomposition
プロパティからこのプロパティを継承します。
ExecutionOrder
— パラレル (AND) 構造内の実行順序
スカラー
パラレル (AND) 構造内のステートの実行順序。整数スカラーとして指定します。このプロパティは、次の両方の条件が満たされている場合にのみ適用されます。
ステートの
Type
プロパティが"AND"
である。ステートを含むチャートの
UserSpecifiedStateTransitionExecutionOrder
プロパティがtrue
である。
アクティブ ステートの出力
HasOutputData
— アクティブ ステート データの出力を作成するかどうか
false
または 0 (既定値) | true
または 1
ステートのアクティブ ステート データの出力端子を作成するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。
OutputData
— アクティブ ステート データ オブジェクト
Stateflow.Data
オブジェクト
この プロパティ は読み取り専用です。
ステートのアクティブ ステート データ オブジェクト。Stateflow.Data
オブジェクトとして指定します。このプロパティは、ステートの HasOutputData
プロパティが true
である場合にのみ適用されます。
OutputPortName
— アクティブ ステート データ オブジェクトの名前
string スカラー | 文字ベクトル
ステートのアクティブ ステート データ オブジェクトの名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、ステートの HasOutputData
プロパティが true
である場合にのみ適用されます。
OutputMonitoringMode
— アクティブ ステートの出力に対する監視モード
"SelfActivity"
(既定値) | "ChildActivity"
| "LeafStateActivity"
アクティブ ステートの出力データに対する監視モード。"SelfActivity"
、"ChildActivity"
、または "LeafStateActivity"
として指定します。
EnumTypeName
— アクティブ ステート データ オブジェクトの列挙データ型の名前
string スカラー | 文字ベクトル
ステートのアクティブ ステート データ オブジェクトの列挙データ型の名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、ステートの OutputMonitoringMode
プロパティが "ChildActivity"
または "LeafStateActivity"
である場合にのみ適用されます。詳細については、Enum 名を参照してください。
DoNotAutogenerateEnum
— 列挙データ型を手動で定義するかどうか
false
または 0 (既定値) | true
または 1
アクティブ ステート データの出力の列挙データ型を手動で定義するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。このプロパティは、ステートの OutputMonitoringMode
プロパティが "ChildActivity"
または "LeafStateActivity"
である場合にのみ適用されます。詳細については、ステート アクティビティの列挙型の定義を参照してください。
信号ログとテスト ポイントの監視
LoggingInfo
— 信号のログのプロパティ
Stateflow.SigLoggingInfo
オブジェクト
ステートに対する信号のログのプロパティ。次のプロパティをもつ 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® ワークスペースに保存されます。詳細については、ステートとデータのシミュレーション出力のログを参照してください。
例: state.LoggingInfo.DataLogging = true;
TestPoint
— ステートをテスト ポイントとして設定するかどうか
false
または 0 (既定値) | true
または 1
ステートをテスト ポイントとして設定するかどうか。数値あるいは logical の 1 (true
) または 0 (false
) として指定します。シミュレーション時にテストポイントをフローティング スコープで監視できます。テスト ポイントの値を MATLAB ワークスペースにログ記録することも可能です。詳細については、Stateflow チャートのテスト ポイントの監視を参照してください。
デバッグ
Debug
— デバッガーのプロパティ
Stateflow.StateDebug
オブジェクト
ステートに対するデバッガーのプロパティ。次のプロパティをもつ 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;
コード生成
InlineOption
— 生成コード内での外観
"Auto"
(既定値) | "Function"
| "Inline"
生成コード内でのステート関数の外観。次のいずれかの値として指定します。
"Auto"
— 内部計算により、生成コード内のステート関数の外観が決まります。"Function"
— ステート関数は別個の静的関数として実装されます。"Inline"
— ステート関数に対する呼び出しがコードで置き換えられます。ただし、関数が再帰の一部でない場合に限ります。
詳細については、ステート関数の生成コード内インライン化 (Simulink Coder)を参照してください。
階層
Chart
— ステートを含むチャート
Stateflow.Chart
オブジェクト
この プロパティ は読み取り専用です。
ステートを含むチャート。Stateflow.Chart
オブジェクトとして指定します。
Subviewer
— ステートのサブビューアー
Stateflow.Chart
オブジェクト | Stateflow.State
オブジェクト | Stateflow.Box
オブジェクト | Stateflow.Function
オブジェクト
この プロパティ は読み取り専用です。
ステートのサブビューアー。Stateflow.Chart
、Stateflow.State
、Stateflow.Box
のいずれかのオブジェクトとして指定します。サブビューアーは、ステートをグラフィカルに表示できるチャートまたはサブチャートです。
Machine
— ステートを含むマシン
Stateflow.Machine
オブジェクト
この プロパティ は読み取り専用です。
ステートを含むマシン。Stateflow.Machine
オブジェクトとして指定します。
Path
— モデルの階層構造における親の場所
文字ベクトル
この プロパティ は読み取り専用です。
モデルの階層構造におけるステートの親の場所。文字ベクトルとして指定します。
識別
Description
— 説明
""
(既定値) | string スカラー | 文字ベクトル
ステートの説明。string スカラーまたは文字ベクトルとして指定します。
Document
— ドキュメント リンク
""
(既定値) | string スカラー | 文字ベクトル
ステートのドキュメント リンク。string スカラーまたは文字ベクトルとして指定します。
Tag
— ユーザー定義のタグ
[]
(既定値) | 任意のデータ型
ステートのユーザー定義のタグ。任意の型のデータとして指定します。
SSIdNumber
— セッションに依存しない識別子
スカラー
この プロパティ は読み取り専用です。
セッションに依存しない識別子。整数スカラーとして指定します。このプロパティを使用して、ステートをその親チャート内の他のオブジェクトと区別します。
Id
— 一意の識別子
スカラー
この プロパティ は読み取り専用です。
一意の識別子。整数スカラーとして指定します。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; st.IsGrouped = false;
サブチャートを通常のステートに変換すると、内容が表示されるようサイズが変化する場合があります。
ジャンクション j1
をジャンクション j2
へと接続する遷移を追加します。
tr = Stateflow.Transition(ch); tr.Source = j1; tr.Destination = j2;
IsSubchart
プロパティを true
に設定することにより、ステートをサブチャートに戻します。サブチャートを元の位置に戻します。
st.IsSubchart = true; st.Position = subchartPosition;
これで、ジャンクション間の遷移はサブチャートの境界を越えるスーパートランジションとなります。
バージョン履歴
R2006a より前に導入R2023a: 新しいオブジェクト関数とプロパティ
Stateflow.State
オブジェクトに、次の新しいオブジェクト関数とプロパティが追加されました。
オブジェクト関数
getReferences
は、チャートがステートの名前を参照している場所を返します。オブジェクト関数
renameReferences
は、ステートの名前を変更し、チャート内のそのステート名への参照をすべて更新します。オブジェクト関数
commentedBy
は、ステートをコメントアウトさせる明示的にコメント化されたオブジェクトを特定します。プロパティ
IsCommented
は、ステートをコメントアウトするかどうかを示します。このプロパティは、オブジェクト関数isCommented
を置き換えるものです。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)