Main Content

Atomic サブチャートの使用に関するガイドライン

Atomic サブチャートは、Stateflow® チャートで独立したサブコンポーネントを作成する際に役立つグラフィカル オブジェクトです。Atomic サブチャートは、MATLAB® 内のスタンドアロンの Stateflow チャートではサポートされません。詳細については、Atomic サブチャート使用した再利用可能なサブコンポーネントの作成を参照してください。

チャート プロパティと Atomic サブチャート

Moore チャートは Atomic サブチャートに使用しない

Moore チャートは、同じ構造の Classic Stateflow チャートとシミュレーション動作が異なります。

Atomic サブチャートを連続時間チャートで使用しない

連続時間チャートでは Atomic サブチャートがサポートされていません。

初期化時に実行されるチャートでの Atomic サブチャートの使用を避ける

以下の条件が真の場合、警告が発生します。

  • チャートのプロパティ [初期化時に指定されたチャートを実行 (入力)] が有効な場合。

  • チャートのデフォルト遷移パスが Atomic サブチャートに達した場合。

Atomic サブチャート内の entry アクションがチャートの入力またはデータ ストア メモリにアクセスしなければならない場合、正確な結果が得られないことがあります。この警告を回避するためには、[初期化時に指定されたチャートを実行 (入力)] を無効にするか、デフォルト遷移パスを Atomic サブチャートからリダイレクトします。

初期化時実行に関する詳細は、チャートの初期化実行 を参照してください。

スーパー ステップ セマンティクスに一貫した設定を使用する

リンクされた Atomic サブチャートを使用する場合は、スーパー ステップ セマンティクスの設定がメイン チャートの設定に一致することを確認してください。詳細については、スーパー ステップのセマンティクスを参照してください。

Atomic サブチャートのデータ

Atomic サブチャートで明示的にデータを定義する

Atomic サブチャートに表示されるデータを明示的にメイン チャートに定義するようにしてください。Atomic サブチャートは、そのサイズ、型、および実数/複素数が完全に指定されているメイン チャート データのみにアクセスできます。詳細については、データ プロパティの設定を参照してください。

リンクされている Atomic サブチャートの変数をマッピングする

リンクされた Atomic サブチャートを使用する場合は、サブチャートのデータがメイン チャートの正しいデータに対応するように、変数をマッピングしてください。サブチャートを追加する際、変数の名前がメイン チャートの対応するシンボルと同じでない場合は、サブチャート変数を手動でマッピングします。詳細については、Atomic サブチャートおよびボックスでの変数のマッピングを参照してください。

リンクされている Atomic サブチャートの変数のサイズ、型、実数/複素数を一致させる

サブチャートの変数のサイズ、型、実数/複素数がメイン チャートの対応する変数の設定に一致することを確認してください。詳細については、Atomic サブチャートおよびボックスでの変数のマッピングを参照してください。

Atomic サブチャートで可変サイズのデータを使用しない

Atomic サブチャートでは可変サイズの入出力配列はサポートされません。

ローカル データの最初のインデックスの値をゼロ以外に変更しない

Atomic サブチャートのデータ ストア メモリがチャートレベルのローカル データにマッピングされる場合、ローカル データの [最初のインデックス] プロパティは常にゼロでなければなりません。

異なるスコープの変数をマッピングする Atomic サブチャートからの信号のログを記録しない

メイン チャート レベルで異なるスコープの変数同士のマッピングを行っている Atomic サブチャートでは、チャートの信号のログを記録できません。

Atomic サブチャートでサブシステム パラメーター名の使用を避ける

Atomic サブチャートのパラメーターが Simulink® 組み込みサブシステム パラメーターの名前と一致する場合、そのパラメーターで許可されている唯一のマッピングは Inherited です。プロパティのダイアログ ボックスの [マッピング] タブで他の Parameter マッピングを指定すると、エラーが発生します。ただし、MATLAB プロンプトでパラメーター値を変更して、そのパラメーターのすべてのインスタンスが同じ値をもつようにすることができます。

Simulink サブシステム パラメーターの一覧を取得するには、以下を入力します。

param_list = sort(fieldnames(get_param("built-in/subsystem", ...
    "ObjectParameters")));

Atomic サブチャートのイベント

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

Atomic サブチャート内の入力イベントはすべてエッジトリガー タイプを使用するか、すべて関数呼び出しタイプを使用しなければなりません。この制限はコンテナー チャートの行動と一致しています。詳細については、Stateflow チャートでイベントを使用する場合のベスト プラクティスを参照してください。

Atomic サブチャートが最上位のローカル イベントを使用する場合は出力遷移を使用しない

サブチャートの最上位レベルのローカル イベントを使用する Atomic サブチャートから出力遷移を使用することはできません。このコンフィギュレーションを使用すると、シミュレーション エラーが発生します。

入力イベントのマッピング時にトリガー タイプを一致させる

Atomic サブチャート内の入力イベントはそれぞれ、コンテナー チャート内の同じトリガー タイプの入力イベントにマッピングしなければなりません。

Atomic サブチャート内の複数の入力イベントをコンテナー チャート内の同じ入力イベントにマッピングしない

Atomic サブチャート内の各入力イベントはコンテナー チャート内の固有の入力イベントにマッピングしなければなりません。Atomic サブチャートのプロパティ ダイアログ ボックスを開き、[マッピング] タブの [Input Event マッピング] セクションをオンにすることにより、入力イベントの固有のマッピングを確認することができます。

関数と Atomic サブチャート

Atomic サブチャートから呼び出されるチャートレベルの関数のエクスポート

Atomic サブチャートにチャートレベルの関数の関数呼び出しが含まれる場合は、[チャート レベルの関数をエクスポート] を選択してその関数をエクスポートします。メイン チャート レベルでスコープが異なる変数同士のマッピングを行っている Atomic サブチャートから、グラフィカル関数をエクスポートしないでください。詳細については、再利用のための Stateflow 関数のエクスポートを参照してください。

Atomic サブチャートに変換する際の制限

データ、グラフィカル関数、およびイベント

ステートまたはサブチャートを Atomic サブチャートに変換するには、ステートが親になっていないオブジェクトにアクセスするか、サブチャートが以下のいずれかでなければなりません。

  • チャートレベルのデータ

  • チャートレベルのグラフィカル関数

  • 入力イベント

ステートまたはサブチャートがチャートレベルのグラフィカル関数にアクセスする場合、チャートはその関数をエクスポートしなければなりません。詳細については、再利用のための Stateflow 関数のエクスポートを参照してください。

メイン チャート レベルでスコープが異なる変数同士のマッピングを行っている Atomic サブチャートから、グラフィカル関数をエクスポートしないでください。

最初のインデックスがゼロでないローカル データ

ローカル データの [最初のインデックス] プロパティがゼロでない場合、Atomic サブチャートに変換するステートまたはサブチャートで、このローカル データにアクセスすることはできません。正しく変換を行うには、ローカル データの [最初のインデックス] プロパティが既定値のゼロでなければなりません。

イベントのブロードキャスト

Atomic サブチャートに変換するステートまたはサブチャートは以下を参照することができません。

  • ステートまたはサブチャートのスコープの外にあるローカルのイベント

  • 出力イベント

変換するステートまたはサブチャートは "入力" イベントを参照できます。

メッセージ

メッセージが含まれているステートやサブチャートは、Atomic サブチャートに変換できません。

マスク ライブラリ チャート

マスク パラメーターを Atomic サブチャートとして含むマスク ライブラリ チャートは使用できません。

関連するトピック