Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Stateflow.State

チャート、ステート、またはボックス内のステート

    説明

    Stateflow.State オブジェクトは、リアクティブ システムの動作モードを記述するために使用します。詳細については、ステートを使用した動作モードの表現を参照してください。

    作成

    説明

    state = Stateflow.State(parent) は、親であるチャート、ステート、またはボックス内に Stateflow.State オブジェクトを作成します。

    入力引数

    すべて展開する

    新しいステートの親。次のいずれかのタイプの Stateflow® API オブジェクトとして指定します。

    プロパティ

    すべて展開する

    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 または IsImplicitlyCommentedtrue の場合、このプロパティは 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® ワークスペースに保存されます。詳細については、ステートとデータのシミュレーション出力のログを参照してください。

    例: state.LoggingInfo.DataLogging = true;

    ステートをテスト ポイントとして設定するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。シミュレーション時にテストポイントをフローティング スコープで監視できます。テスト ポイントの値を MATLAB ワークスペースにログ記録することも可能です。詳細については、Stateflow チャートのテスト ポイントの監視を参照してください。

    デバッグ

    ステートに対するデバッガーのプロパティ。次のプロパティをもつ Stateflow.StateDebug オブジェクトとして指定します。

    • OnEntryOn State Entry ブレークポイントを設定するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。

    • OnDuringDuring State ブレークポイントを設定するかどうか。数値あるいは logical の 1 (true) または 0 (false) として指定します。

    • OnExitOn 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.ChartStateflow.StateStateflow.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;

    State with entry and during actions.

    ステート ラベルによって指定されたステート名、entry アクション、during アクションを抽出するには、次のように入力します。

    name = state.Name
    name =
    
        'A'
    entry = state.EntryAction
    entry =
    
        ' action1();
          action3();'
    during = state.DuringAction
    during =
    
        ' action2();
          action3();'

    詳細については、ステートと遷移のラベルのプログラムによる指定を参照してください。

    サブチャート内にあるジャンクションをサブチャート外にあるジャンクションに接続するスーパートランジションを作成します。

    Stateflow chart with one state. A transition connects a junction inside the state to a junction outside the state.

    モデルを開き、チャートの 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;

    サブチャートを通常のステートに変換すると、内容が表示されるようサイズが変化する場合があります。

    Stateflow chart with one state. A transition connects a junction inside the state to a junction outside the state.

    ジャンクション j1 をジャンクション j2 へと接続する遷移を追加します。

    tr = Stateflow.Transition(ch);
    tr.Source = j1;
    tr.Destination = j2;

    Stateflow chart with one subchart. A supertransition connects a junction inside the subchart to a junction outside the subchart.

    IsSubchart プロパティを true に設定することにより、ステートをサブチャートに戻します。サブチャートを元の位置に戻します。

    st.IsSubchart = true;
    st.Position = subchartPosition;

    Stateflow chart with one subchart. A supertransition connects a junction inside the subchart to a junction outside the subchart.

    これで、ジャンクション間の遷移はサブチャートの境界を越えるスーパートランジションとなります。

    バージョン履歴

    R2006a より前に導入

    すべて展開する