主要内容

イベントのブロードキャストによるモデルコンポーネントの同期

“蓉城ベント”とは,以下のいずれかのオブジェクトのアクションをトリガ,できる状态流®オブジェクトです。

  • 状态流チャ,ト内のパラレルステ,ト

  • 別のstatflowチャ,ト

  • 万博1manbetx®の触发子系统または函数调用子系统

シミュレション目的では,Stateflowチャト内のベント数に制限はありません。ただし,コード生成の場合は,基となるCコンパイラによって,イベント数が理論上231-1個に制限されています。

▪▪▪▪ベントのタ▪▪▪▪プ

“暗黙的电子邮箱ベント”とは、チャ、ト実行時にブロ、ドキャストされる組み込み、ベントです。これらの▪▪ベントは,明示的に定義またはトリガ▪▪されることのない暗黙的▪▪ベントです。詳細にいては,暗黙的▪▪ベントを使用したチャ▪▪ト動作の制御を参照してください。

“明示的な电子邮箱ベント”とは,明示的に定義する。明示的aapl . exeベントには,次のいずれかのタaapl . exeプを指定できます。

タereplicationプ 説明
入力@ @ベント チャト外からStateflowチャトへブロドキャストされるベント。詳細にいては,入力ベントの送信によるstatflowチャトのアクティブ化状态流チャトを使用したヒュマンマシンンタフェスのロジックの設計を参照してください。
ロカルベント Stateflowチャートの任意の場所で発生できるイベントですが,親オブジェクトおよびその子オブジェクト内でのみ表示されます。ロカルベントは,matlab®内のスタンドアロンのstatflowチャ,トではサポ,トされません。詳細にいては,ロカルベントをブロドキャストしてパラレルステトを同期を参照してください。
出力@ @ベント Stateflowチャートで発生するイベントですが,仿万博1manbetx真软件ブロックにブロードキャストされます。出力イベントは,MATLAB内のスタンドアロンのStateflowチャートではサポートされません。詳細にいては,出力aapl . exeベ万博1manbetxントの送信によるSimulinkブロックのアクティブ化を参照してください。

ロカルベントは,以下のStateflow階層のレベルで定義できます。

階層のレベル 表示
チャト ロカルベントは,チャトと,そのすべてのステトおよびサブステトで表示されます。
サブチャ,ト ロカルベントは,サブチャトと,そのすべてのステトおよびサブステトで表示されます。
ステト ロカルベントは,ステトおよびそのすべてのサブステトで表示されます。

チャトでのベントの定義

Stateflowチャトにベントを追加するには,[シンボル]ペン,Stateflowエディタのメニュ,またはモデルエクスプロラを使用できます。

[シンボル]ペ▪▪ンを使用した▪▪ベントの追加

  1. [モデル化]タブの[デ,タの設計]で,[[シンボル]ペ许许源ン]を選択します。

  2. [applerベントの作成]アereplicationコンをクリックします。

  3. 新規@ @ベントの行にある[タ电子邮箱プ]で,ア。

    • 输入事件

    • 当地的活动

    • 输出事件

  4. ベントの名前を編集します。

  5. 入出力电子邮箱ベントの場合は,[端子]フィ,ルドをクリックして端子番号を選択します。

  6. ベントのプロパティを指定するには,[プロパティaapl . aapl . cn]を開きます。[シンボル]ペaapl . aapl .ンで,aapl .ベントの行を右クリックして[探索]を選択します。詳細にいては,ベントのプロパティの設定を参照してください。

Stateflowエディタのメニュを使用したベントの追加

  1. 万博1manbetx仿真软件モデルのStateflowチャートで,追加するイベントのタイプに対応するメニューオプションを選択します。

    タereplicationプ メニュ,オプション
    入力@ @ベント [モデル化]タブの[デ,タの設計]で,[applerベント入力]をクリックします。
    出力@ @ベント [モデル化]タブの[デ,タの設計]で,[applerベント出力]をクリックします。
    ロカルベント [モデル化]タブの[デ,タの設計]で,[ロカルベント]をクリックします。

  2. [@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @。詳細にいては,ベントのプロパティの設定を参照してください。

モデルエクスプロラを使用したベントの追加

  1. [モデル化]タブの[デ,タの設計]で,[モデルエクスプロ,ラ,]を選択します。

  2. [モデルの階層構造]ペaapl . exeンで,表示対象の新規aapl . exeベントがあるStateflow階層のオブジェクトを選択します。選択したオブジェクトは,新しい。

  3. モデルエクスプロ,ラ,のメニュ,で,[追加][applerベント]を選択します。既定の定義が設定された新しいベントが,モデルエクスプロラの[コンテン]ペ@ @ンに表示されます。

  4. [applerベント]ペaapl . aapl .ンで,aapl .ベントのプロパティを指定します。詳細にいては,ベントのプロパティの設定を参照してください。

Stateflowチャトからのベント情報へのアクセス

入力イベントやローカルイベントのプロパティを表示することや,出力イベントの出力先をStateflowチャートから直接開くことができます。対象のベントを含むステトまたは遷移を右クリックして,[探索]を選択します。コンテキストメニューに,ステートまたは遷移内で解決されているすべてのシンボルの名前とスコープがリストされます。コンテキストメニューから入力イベントまたはローカルイベントを選択すると,そのプロパティがモデルエクスプローラーに表示されます。コンテキストメニューから出力イベントを選択すると,そのイベントに関連付けられている仿真万博1manbetx软件サブシステムまたはStateflowチャートが開きます。

Stateflowチャトでベントを使用する場合のベストプラクティス

发送コマンドを使用して,アクションで明示的

ステトまたは遷移アクションでロカルベントまたは出力ベントをブロドキャストするには,发送演算子を使用します。たとえば、遷移が有効な時点で出力イベントをブロードキャストする場合、イベント名を条件アクションとして使用しないようにします。

{output_event;}

代わりに,发送演算子を呼び出します。

{发送(output_event);}

どらのアクションも有効ではありますが,发送演算子を使用すると,チャートが読みやすくなり,明示的イベントをデータと取り違えることがなくなります。

条件付きアクションをトリガする明示的ベントの使用は避ける

次の場合は,电子邮件ベントではなく遷移に条件を使用します。

  • 条件文を表す場合。たとえば[x < 1][x == 0]など。

  • デ,タ値の変更を表す場合。たとえば(改变了(x))など。

ステトアクティビティをチェックする目的で暗黙的なベント输入を使用することは避ける

ステトアクティビティをチェックするには,暗黙的ベント输入ではなく演算子を使用します。詳細にいては,在演算子を使用したステ,トアクティビティのチェックを参照してください。

エッジトリガ入力ベントと関数呼び出し入力ベントをチャト内に混在させない

エッジトリガーを使用する入力イベントと関数呼び出しを使用する入力イベントを混在させると,コンパイル時にエラーが発生します。

参考

||

関連するトピック