Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ステートと遷移の構文

アクションと条件を使用してチャート動作を表現する

ステート間の遷移が発生しアクションが実行されるタイミングを指定することにより、Stateflow® チャートの実行を制御します。イベントをブロードキャストすることにより、ステートの実行を同期します。データ値の変化を検出し、チャート実行時にどのステートがアクティブであるかをチェックします。

ブロック

Chart有限ステート マシンで制御ロジックを実装

Stateflow の構文

すべて展開する

変化検出

changeデータの値の変化時に暗黙的イベントを生成
hasChanged最後のタイム ステップ以降のデータの変化を検出する
hasChangedFrom指定した値からのデータの変化を検出する
hasChangedTo指定した値へのデータの変化を検出する

メッセージ アクティビティ

discardメッセージを廃棄する
forwardメッセージを転送する
isvalidメッセージが有効かどうかを判定する
lengthメッセージ キューの長さを判定する
receiveキューからメッセージを抽出する
sendメッセージまたはイベントをブロードキャストする

ステート アクティビティ

enterステートがアクティブになった時点で暗黙的イベントを生成
exitステートが非アクティブになった時点で暗黙的イベントを生成
inStateflow でのステート アクティビティのチェック

string の操作

ascii2struint8 型の配列を string に変換する
str2asciistring を uint8 型の配列に変換する
str2doublestring を倍精度値に変換する
strcatstring を連結する
strcmpstring を比較する
strcpystring 値を割り当てる
strlenstring の長さを特定する
substrstring から部分文字列を抽出する
tostring数値を string に変換する

時相論理

afterイベント ブロードキャスト後または指定時間後にチャートを実行
atイベント ブロードキャストまたは指定した時間でチャートを実行
beforeイベント ブロードキャスト前または指定した時間前にチャートを実行
count条件が有効である状態でのチャート実行
duration条件が有効である時間
elapsedステートがアクティブになってからの時間
every一定間隔でチャートを実行
temporalCountステートがアクティブになってからのイベント数、チャートの実行回数、または時間

トピック

ステート アクションの組み合わせによる冗長コードの削除

ステート内で entryduring および exit アクションを組み合わせる。

bind アクションによる Function-Call Subsystem の制御

関数呼び出し出力イベントをステートのアクティビティにバインドする。

遷移とジャンクションを結合して分岐パスを作成

遷移パスの判定点を作成する。

チャート データでサポートされている演算

Stateflow チャートで数学的計算を実行する。

アクションでサポートされるシンボル

ステート アクションと遷移アクションで使用できるシンボルを指定する。

Stateflow チャートでの外部 MATLAB 関数の呼び出し

コード生成でサポートされていない MATLAB® 関数にアクセスする。

C チャート内の MATLAB 関数およびワークスペース データへのアクセス

ml 演算子を使用して、組み込みの MATLAB 関数を呼び出す。

C チャートでの C ライブラリ関数の呼び出し

ステートおよび遷移のラベルで C 関数にアクセスする。

in 演算子を使用したステート アクティビティのチェック

チャート実行時にステートがアクティブになるかどうかを判定する。

データ値の変化の検出

タイム ステップ間でデータの値が変化したときのチャートの動作を定義します。

時相論理を使用したチャート実行の制御

イベントベースおよび絶対時間の時相論理演算子を使用する。

暗黙的イベントを使用したチャート動作の制御

データ値およびステート アクティビティの変化によりチャート アクションをトリガーする。

duration 演算子を使用した振動の制御

過渡信号をもつチャートのデバウンス ロジックを簡略化する。

注目の例