Main Content

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

データ ストアの作成によるグローバル データのモデル化

データ ストアは、入力または出力信号を直接データ ストアに接続することなしにデータの書き込みまたは読み取りができるリポジトリです。データ ストアは、モデルのレベルを越えてアクセス可能なため、サブシステムおよび参照されるモデルはデータ ストアを使用して、I/O 端子を使用せずにデータを共有できます。データ ストアを使用するかどうかを判断するには、データ ストアの基礎を参照してください。

データ ストアの例

概要

次の例は、データ ストアを定義またはアクセスする手法を示します。データ ストアへのアクセスを制御する (たとえば、あるデータは常に読み取り前に書き込みが実行される) 手法については、データ ストア アクセスの順序を参照してください。シミュレーションの実行なしにデータ ストアの潜在的エラーの検出および修正に使用できる手法については、データ ストア診断を参照してください。

メモ

グローバル データ ストアを使用して、参照モデル間でデータを共有するには、複数のモデルに対するデータ ストアの使用を参照してください。

ローカルなデータ ストアの例

次のモデルは、ローカル データ ストア (モデルまたは特定のサブシステム内でのみ可視) の作成とアクセスを示します。

このモデルはデータ ストアを使用して、出力が無効である信号にサブシステム A を許可します。

サブシステム A の出力が無効な場合、モデルはサブシステム B の出力を使用します。

グローバルなデータ ストアの例

次のモデルは、上記の例のサブシステムを機能的に等価な参照モデルで置き換え、モデル参照階層内でデータを共有するためのグローバルデータ ストアの使用方法を説明します。

この例では、最上位モデルは、MATLAB® ワークスペースの信号オブジェクトを使用して、エラー データ ストアを定義します。データ ストアが MATLAB ワークスペースまたはデータ ディクショナリの信号オブジェクトによって定義される場合、モデル境界を越えて可視になるため、これは必要です。モデルは信号オブジェクトを作成する PreLoadFcn モデル コールバック パラメーターのコードを指定します。このコードはモデルが読み込まれる前に実行されます。

データ ストアの作成と適用

メモ

データ ストアでバスおよび配列を使用するには、以下の両方の手順とバスおよびバス配列付きのデータ ストアを使用するように、モデルを設定を実行します。

以下はデータ ストアの設定の一般的なワークフローです。データ ストアの使い方に応じて、タスクを異なる順序、または残りのタスクとは別に実行することができます。

  1. 該当する場合は、ソフトウェア検証への影響を最小限にするようにデータ ストアの使用を計画してください。詳細については、データ ストアおよびソフトウェアの検証を参照してください。

  2. Data Store Memory ブロックを使用したデータ ストアまたは信号オブジェクトを使用したデータ ストアで説明されている手法を使用してデータ ストアを作成します。信頼性を高めるには、Data Store Memory ブロック属性の指定で説明されているように、データ ストアの属性の継承ではなく割り当てを検討してください。

  3. Simulink ブロックを使用したデータ ストアへのアクセスで説明されているとおり、モデルの Data Store Write および Data Store Read ブロックに追加して、データ ストアの読み取りおよび書き込みを行います。

  4. データ ストア アクセスの順序で説明されているとおり、各データ ストアにアクセスするモデルおよびブロックを設定して、データ ストアの読み取りおよび書き込み時の同時実行の障害を回避します。

  5. 必要に応じてデータ ストア診断で説明されている手法を応用してデータ ストアのエラーを回避します。または、シミュレーション中にエラーが発生した場合はエラーを診断します。

  6. モデルのコードを生成する場合は、生成されたコード内のデータ ストア (Simulink Coder)を参照してください。

データ ストアを作成するには、Data Store Memory ブロックまたは Simulink.Signal オブジェクトを作成します。ブロックまたは信号オブジェクトはデータ ストアを表し、プロパティを指定します。各データ ストアには、一意の名前が必要です。

Data Store Memory ブロックで実装されたデータ ストアの特徴

  • データ ストア初期化をサポートします。

  • データ ストア スコープおよびオプションをモデル階層の特定のレベルで制御できるようにします。

  • データ ストアを表すブロックが必要です。

  • 参照されるモデル内にはアクセスできません。

  • For Each Subsystem ブロックが表現しているサブシステム内には配置できません。

Simulink.Signal オブジェクトで実装されたデータ ストアの特徴

  • データ ストア スコープおよびオプションをモデル全体で制御できるようにします。

  • データ ストアの表すブロックは必要ありません。

  • データ ストアがグローバルな場合、参照されるモデルにアクセスできます。

Data Store Memory ブロックをもつローカル データ ストアと、Simulink.Signal オブジェクトをもつグローバル データ ストアとの一致比較をしないようにしてください。どちらの手法でもローカル データ ストアを定義でき、信号オブジェクトはローカルまたはグローバル データ ストアを定義できます。

Data Store Memory ブロックを使用したデータ ストア

データ ストアの作成

Data Store Memory ブロックを使用してデータ ストアを定義するには、ブロックのインスタンスをデータ ストアを表示できる最高レベルのモデルにドラッグします。結果はローカル データ ストアで、参照されるモデル内にはアクセスできません。

  • Model ブロック内以外の特定のモデル内のすべてのレベルで表示可能なデータ ストアを定義するには、Data Store Memory ブロックをモデルのルート レベルにドラッグします。

  • Model ブロック内以外の特定のサブシステム内でのみで表示可能なデータ ストアを定義するには、Data Store Memory ブロックをサブシステムにドラッグします。

Data Store Memory ブロックをいったん追加したら、そのパラメーターを使用して、データ ストアのプロパティを定義します。[データ ストア名] プロパティは、Data Store Write ブロックおよび Data Store Read ブロックがアクセスするデータ ストアの名前を指定します。詳細は、Data Store Memoryドキュメンテーションを参照してください。

[データ ストア名を Simulink の信号オブジェクトに関連付ける] オプションを選択して信号オブジェクトをデータ ストア名として使用することにより、Data Store Memory ブロック パラメーターで定義可能なプロパティ以外のデータ ストア プロパティを指定できます。詳細については、信号オブジェクトを使用した属性の指定を参照してください。

Data Store Memory ブロック属性の指定

Data Store Memory ブロックは、対応する Data Store Read ブロックおよび Data Store Write ブロックから 3 つのデータ属性を継承できます。継承可能な属性は、次のとおりです。

  • データ型

  • 実数/複素数

  • サンプル時間

ただし、これらの属性を継承すると、デバッグが困難な、予想外の結果をもたらすことがあります。このようなエラーを回避するには、Data Store Memory ブロック ダイアログまたは Simulink.Signal オブジェクトを使用して、属性を明示的に指定します。

ブロック パラメーターを使用した属性の指定

[Data Store Memory ブロック] ダイアログ ボックスまたはモデル データ エディターの [データ ストア] タブ ([モデル化] タブで [モデル データ エディター] をクリック) を使用して、データ ストアのデータ型および実数/複素数を指定できます。次の図では、ブロック ダイアログ ボックスで [データ型]uint16 に設定し、[信号タイプ]real に設定しています。

信号オブジェクトを使用した属性の指定

Simulink.Signal オブジェクトを使用して、Data Store Memory ブロックのデータ ストアの属性を指定できます。

ヒント

信号オブジェクトを使用したデータ ストアで説明されているとおりに、暗黙的にデータ ストアを設定するには、信号オブジェクトを明示的に Data Store Memory ブロックに関連付ける場合と同じ一般的なアプローチを使用します。

次の図は、A という名前の Simulink.Signal オブジェクトへの関連付けを指定する Data Store Memory ブロックを示しています。データ ストアの信号オブジェクトを使用するには、[データ ストア名] を信号オブジェクトの名前に設定します。コンパイル時のチェックとして、[信号属性] タブを開いて、[データ ストア名を Simulink の信号オブジェクトに関連付ける] パラメーターを選択します。

または、モデル データ エディターの [データ ストア] タブ ([モデル化] タブで [モデルデータ エディター] をクリック) で、データストア名を編集する際に、横にあるアクション ボタン をクリックし、[作成と関連付け] を選択します。[新規データの作成] ダイアログ ボックスで、[値]Simulink.Signal に設定します。

信号オブジェクトは、データ ストアが継承します。この例では、ローカル データ ストアを定義しており、Simulink.Signal オブジェクト ADataTypeComplexitySampleTime のプロパティを継承します。

A =
 
Simulink.Signal (handle)
         CoderInfo: [1x1 Simulink.CoderInfo]
       Description: ''
          DataType: 'auto'
               Min: []
               Max: []
              Unit: ''
        Dimensions: 1
    DimensionsMode: 'auto'
        Complexity: 'auto'
        SampleTime: -1
      InitialValue: 0

ローカルおよびグローバル データ ストアに対する信号オブジェクト属性の指定の詳細は、データ ストアの信号オブジェクト属性を参照してください。

モデル データ エディターを使用してリストの Data Store Memory ブロックを設定.  モデル データ エディターで [データ ストア] タブを使用して Data Store Memory ブロックのパラメーターを設定します。モデル内でデータ ストアを特定せずに設定したり、Inport ブロックや Outport ブロックなどのインターフェイス要素と一緒にデータ ストアを設定するには、この手法を使用します。モデル データ エディターでは、同じリストに Data Store Read ブロックと Data Store Write ブロックの情報も表示されます。

モデル データ エディターを開くには、[モデル化] タブで [モデル データ エディター] をクリックします。

信号オブジェクトを使用したデータ ストア

データ ストアの作成

Simulink.Signal オブジェクトを使用して、Data Store Memory ブロックを使用しないでデータ ストアを定義するには、データ ストアにアクセスしなければならないすべてのコンポーネントに表示されるワークスペース内に信号オブジェクトを作成します。関連付けられているデータ ストアの名前は、信号オブジェクトの名前です。Data Store Read ブロックおよび Data Store Write ブロックにあるこの名前は、Data Store Memory ブロックの "データ ストア名" と同じように使用できます。データの保存に信号オブジェクトを使用する際、Simulink® は関連付けられているデータ ストアを作成します。

ローカルおよびグローバル データ ストア

Simulink.Signal オブジェクトを使用して、ローカルまたはグローバル データ ストアを定義できます。

  • オブジェクトを MATLAB のベース ワークスペースまたはデータ ディクショナリで定義する場合、結果はグローバル データ ストアになり、Simulink 内の参照モデルすべてを含む各モデルでアクセス可能になります。

  • オブジェクトをモデル ワークスペースで作成する場合、結果はローカル データ ストアになり、参照されるモデル以外のモデルの各レベルでアクセス可能です。

データ ストアの信号オブジェクト属性

信号オブジェクトが定義しないデータ ストア属性には、Data Store Memory ブロック内と同じ既定値があります。データ ストアとして使用される信号オブジェクトのプロパティ値には、データ ストアがローカルかグローバルかによって、さまざまな要件があります。

オブジェクトをいったん作成したら、信号オブジェクトのプロパティを、対応するデータ ストアのプロパティに設定される値に設定します。たとえば、次のコマンドは、MATLAB 基本ワークスペースで Error というデータ ストアを定義します。

Error = Simulink.Signal;
Error.Description = 'Use to signal that subsystem output is invalid';
Error.DataType = 'boolean';
Error.Complexity = 'real';
Error.Dimensions = 1;
Error.SampleTime = 0.1;

ローカル データ ストアの属性.  ローカル データ ストアでは、以下に一覧を示したパラメーターごとに、値を明示的に設定するかまたはデータ ストアに Data Store Write および Data Store Read ブロックから値を継承させることができます。

  • DataType

  • Complexity

  • SampleTime

Data Store Memory ブロックを使用してローカル データ ストアを定義するには、[データ ストア名] パラメーターの信号オブジェクトを使用します。コンパイル時のチェックとして、[信号属性] タブで、[データ ストア名を Simulink の信号オブジェクトに関連付ける] パラメーターを選択します。[データ ストア名を Simulink の信号オブジェクトに関連付ける] パラメーターによって、Simulink がエラーを表示し、Simulink が信号オブジェクトを見つけることができない場合や、信号オブジェクトのプロパティに整合性がない場合、コンパイルを停止します。

グローバル データ ストアの属性.  次の表は、グローバル データ ストアのパラメーター要件を示しています。

パラメーターグローバル データ ストア値
DataType明示的な設定が必要
Complexity明示的な設定が必要
Dimensions設定または継承可能
SampleTime設定または継承可能

信号オブジェクトで定義されるデータ ストアの属性の変更.  モデル データ エディター ([モデル化] タブで [モデル データ エディター] をクリック) を使用して、データ ストア、Data Store Read ブロック、Data Store Write ブロックの属性を変更したり検査したりできます。信号オブジェクト (Simulink.Signal など) を使用して定義したデータ ストアの属性を表示するには、[データ ストア] タブで [追加情報の表示/更新] ボタンをクリックします。データ テーブルに表示された Data Store Read ブロックまたは Data Store Write ブロックが信号オブジェクトで定義されたデータ ストアを参照している場合は、該当するオブジェクトに対応する行もテーブルに表示されます。

詳細については、モデル データ エディターを参照してください。

Simulink ブロックを使用したデータ ストアへのアクセス

データ ストアへの書き込み

各タイム ステップのデータ ストアの値を設定するには、以下のようにします。

  1. Data Store Write ブロックのインスタンスを、値を計算するモデルのレベルで作成します。

  2. Data Store Write ブロックの [データ ストア名] パラメーターをデータを書き込むデータ ストアの名前に設定します。

  3. 値を計算するブロックの出力を、Data Store Write ブロックの入力に接続します。

データ ストアからの読み取り

各タイム ステップのデータ ストアの値は、以下の方法で取得します。

  1. Data Store Read ブロックのインスタンスを、値を必要とするモデルのレベルで作成します。

  2. Data Store Read ブロックの [データ ストア名] パラメーターをデータを読み取るデータ ストアの名前に設定します。

  3. Data Store Read ブロックの出力をデータ ストア値を必要とするブロックの入力に接続します。

グローバル データ ストアへのアクセス

グローバル データ ストア (MATLAB ワークスペースで信号オブジェクトによって定義されたもの) に接続されると、Data Store Read ブロックまたは Data Store Write ブロックでは、データ ストアの名前の上に global と表示されます。

データ ストア アクセスの順序

データ ストア アクセスの順序について

データ ストアから正常な結果を取得するには、データ ストアの読み取りおよび書き込みの実行の順序を制御する必要があります。データ ストアが書き込まれる前に読み取られる場合、アルゴリズムにレイテンシが発生します。読み取りは、現在のタイム ステップではなく、以前のタイム ステップで計算および格納される値を取得します。

このようなレイテンシによって、システムに設計された動作とは異なる動作が発生し、システムが不安定になる可能性があります。これらの問題が発生しない場合でも、制御されていないアクセス順序は、Simulink のリリースが異なると変わる可能性があります。

このセクションでは、データ ストアの読み取りおよび書き込みの実行順序の明示的制御方法について説明します。シミュレーションを実行せずにデータ ストアの潜在的エラーの検出および修正に使用できる手法については、データ ストア診断を参照してください。

Function Call Subsystem を使用したアクセスの順序

Function-Call Subsystem を使用して、データ ストアにアクセスするモデル コンポーネントの実行順序を制御できます。次の図はこの手法を示します。

Before サブシステムには Data Store Write が含まれており、Stateflow® チャートは、Data Store Read を含んでいる After サブシステムの前に、このサブシステムを呼び出します。

ブロック優先順位を使用したアクセスの順序

データ ストアの読み取りおよび書き込みを、相対的実行順序が優先順位によって指定される Atomic Subsystem ブロック内または Model ブロック内に組み込むことができます。Simulink ブロックが実行される優先順位の構成の詳細については、ブロックの実行順序の優先順位の設定を参照してください。

beforeDSM モデル ブロックは、afterDSM よりも優先順位が低いため、確実に最初に実行されます。beforeDSM は atomic なので、Data Store Write を含む全操作は、afterDSM および Data Store Read を含む全操作より前に実行されます。

バスおよびバス配列によるデータ ストア

バスおよびバス配列でデータ ストアを使用する利点には以下のものが含まれます。

  • 複数の信号を信号データ ストアに関連付けることにより、モデル レイアウトを簡素化

  • ストア データ内のデータをバス階層を反映する構造体として表す生成コードを作成

  • データのコピーを作成することなく、データ ストアの読み取りおよび書き込みを可能にし、より効率的なデータ アクセスを実現

バスまたはバス配列を使用できないものとして以下が含まれます。

  • 可変次元の信号

  • フレームベース信号

バスおよびバス配列付きのデータ ストアを使用するように、モデルを設定

この手順は、ローカルおよびグローバルのデータ ストア、および Data Store Memory ブロックまたは Simulink.Signal オブジェクトで定義されるデータ ストアに適用されます。手順を実行する前にデータ ストアの作成と適用で説明されているモデル内でのデータ ストアの使い方を理解しなければなりません。

データ ストア内でバスとバス配列を使用するには、次の手順に従います。

  1. 型エディターを使用して、プロパティがデータ ストアの読み取りおよび書き込みを行うバス データと一致するバス オブジェクトを定義します。詳細については、Simulink バス オブジェクトの作成を参照してください。

  2. バス データを格納するためにデータ ストアを (Data Store Memory ブロックまたは Simulink.Signal オブジェクトを使用して) 追加します。

  3. バス オブジェクトをデータ ストアのデータ型として指定します。詳細については、バス オブジェクト データ型の指定を参照してください。

  4. MATLAB 構造体をデータ ストアの初期値に使用する場合は、[コンフィギュレーション パラメーター][診断][データ有効性][詳細設定パラメーター][指定不足の初期化の検出][簡易] に設定します。詳細については、バス要素の初期条件の指定指定不足の初期化の検出を参照してください。

  5. (オプション) データ ストアの読み取りおよび書き込みに個別のバス要素を選択します。詳細については、特定のバスおよび Matrix 要素へのアクセスを参照してください。

特定のバスおよび Matrix 要素へのアクセス

特定のバスまたは Matrix 要素の選択

既定では、モデルはあらゆるバスおよび行列要素をデータ ストアに書き込み、またはデータ ストアから読み取ります。

データ ストアに書き込み、またはデータ ストアから読み取る特定のバスまたは行列要素を選択するには、Data Store Write ブロックの [要素の代入] ペインおよび Data Store Read ブロックの [要素の選択] ペインを使用します。特定のバスまたは行列要素を選択すると、次の利点があります。

  • モデル内のブロック数を減らす。たとえば、アクセスする特定のバス要素ごとに Data Store Read および Bus Selector ブロックのペア、または Data Store Write および Bus Assignment ブロックのペアを省略することができます。

  • 大きなバスとバス配列を使用してモデルのシミュレーションを高速化する。

特定の要素のデータ ストアへの書き込み

メモ

以下の手順では、Data Store Write ブロック インターフェイスを使用して、特定の要素をデータ ストアに書き込む方法を示しています。このタスクをコマンド ラインで実行し、DataStoreElements パラメーターを使用して、要素を指定できます。詳細については、コマンド ラインを使用した指定を参照してください。

特定のバスまたは行列要素をデータ ストアに書き込むように割り当てるには、次の手順に従います。

  1. Data Store Write ブロックを選択し、パラメーターのダイアログ ボックスで、[要素の代入] ペインを選択します。たとえば、DSMという名前のデータ ストア付きバスを使用しているとします。

    The Element Assignment tab of Data Store Write block parameters dialog. The "Signals in the bus" pane shows an unexpanded bus DSM.

  2. [バス内信号]リストですべての要素を展開します。

    The Element Assignment tab of Data Store Write block parameters dialog. The "Signals in the bus" pane shows an expanded view of all elements of the bus DSM.

  3. データ ストアに書き込む要素を指定します。次に例を示します。

    • [バス内信号] リストで、B をクリックします。次に[選択>>] をクリックして、要素 B を選択します。

    • (入れ子にされたバス A 内の) A2 のすべての要素を書き込むには、A2[5,1] を選択します。次に、[選択 >>] をクリックします。

    • 入れ子にされたバス C2 内の A2 の 2 番目の要素を書き込むには、A2[5,1] 要素を選択します。[代入する要素の指定] テキスト ボックスで、テキストを DSM.C.C2.A2(2,1) を示すように編集します。

    The Element Assignment tab of Data Store Write block parameters dialog. The "Signals in the bus" pane shows an expanded view of all elements of the bus DSM. The "Assigned element(s)" pane shows 3 specified elements of the bus DSM.

    他の例は、代入または選択する要素の指定を参照してください。

  4. (オプション) 代入された要素を並べ替えます。これにより、Data Store Write ブロックの端子の順序が変わります。

    • 代入された要素を並べ替えるには、[代入された要素] リストで、移動する要素を選択して、[上] または [下] をクリックします。

    • 代入された要素を削除するには、[削除] をクリックします。

  5. 代入された要素を適用するには、[OK] をクリックします。

    Data Store Write ブロックには代入された要素ごとに 1 つの端子があります。選択した要素の名前は、ブロック アイコンに表示される各端子に対応しています。複数の信号を割り当てる場合、これらの追加により、モデルの読みやすさが低下する場合があります。読みやすさを向上させるために、ブロックのサイズを拡張したり、複数の Data Store Write ブロックを作成することができます。

データ ストアからの特定の要素の読み込み

データ ストアからの特定の要素の読み込み手順は、特定の要素のデータ ストアへの書き込みで説明されている手順に非常によく似ています。Data Store Read ブロックは Data Store Write ブロックと少し異なります。Data Store Read ブロックには以下のものがあります。

  • [要素の代入] ペインの [要素の選択] ペイン

  • [代入された要素] リストの代わりに [選択された要素] リスト

代入または選択する要素の指定

MATLAB 行列要素構文を使用して、特定の要素を指定します。MATLAB での特定の行列の指定については、行列の作成、連結、および拡張 を参照してください。

メモ

Data Store Read ブロックと Data Store Write ブロックが動的にインデックス付けされた行列要素を選択するには、ブロック パラメーター ダイアログの [要素の選択]/[要素の代入] ペインで [インデックスの有効化] を選択します。動的インデックス付けでは一度に 1 つの要素のみ選択できます。Data Store Read および Data Store Write を参照してください。

有効な要素の指定.  次の表は、代入または選択する要素を指定するための有効な構文の例を示しています。これらの例では、特定の要素のデータ ストアへの書き込みで使用したバス階層に示したように、A バスの入れ子にされたバス A2 を使用しています。

The Element Assignment tab of Data Store Write block parameters dialog. The "Signals in the bus" pane shows an expanded view of all elements of the bus DSM.

有効な構文説明
DSM.A.A2(:,:)

すべての次元のすべての要素を選択する

DSM.A.A2([1,3,5],1)

1 番目、3 番目および 5 番目の要素を選択する

DSM.A.A2(2:5,1)

2 ~ 5 番目の要素を選択する

無効な要素の指定.  次の表は、代入または選択する要素を指定するための無効な構文の例を示しています。これらの例では、特定の要素のデータ ストアへの書き込みで使用したバス階層に示したように、A バスの入れ子にされたバス A2 を使用しています。

無効な構文構文が無効である理由
DSM.A.A2(:)

次元ごとにコロンを指定しなければなりません。これらの例で使用されるバス階層では、2 つのコロンを使用しなければなりません。

DSM.A.A2(2:end,1)

end 演算子を使用できません。

DSM.A.A2(idx,1)

インデックスを指定する変数を指定できません。ブロック パラメーター ダイアログの [要素の選択]/[要素の代入] ペインで [インデックスの有効化] を選択し、動的インデックス付けの使用を検討してください。Data Store Read および Data Store Write を参照してください。

DSM.A.A2(-1,1)

次元 –1 は、有効な次元の範囲内ではありません。

コマンド ラインを使用した指定.  要素を設定して書き込みおよび読み取りを行うには、DataStoreElements パラメーターを指定します。ポンド記号 (#) を使用して、複数の要素を区切ります。たとえば、要素を指定する Data Store Write ブロックまたは Data Store Read ブロックを選択し、次のようなコマンドを入力します。

set_param(gcb, 'DataStoreElements', 'DSM.A#DSM.B#DSM.C(3,4)')

この仕様により、ブロックが指定された要素に対応する 3 つの端子をもつようになりました。

データ ストアの名前の変更

ブロックで定義されたデータ ストアの名前の変更

モデル内の Data Store Read ブロックおよび Data Store Write ブロックで使用されているすべての場所のデータ ストアの名前を変更します。

  1. Data Store Memory ブロックのダイアログ ボックスで、[データ ストア名] ボックスに新しい名前を入力し、[すべての名前の変更] をクリックします。

  2. [すべての名前の変更] ダイアログ ボックスで、[新規名] フィールドの新しいデータ ストアの名前を確認し、[OK] をクリックします。

メモ

ワークスペースでデータ ストア用に生成されたコードを制御する Simulink.Signal オブジェクトを作成している場合、[すべての名前の変更] を使用してデータ ストアの名前を変更することはできません。その代わりに、モデル エクスプローラーを使用して対応する Simulink.Signal オブジェクトの名前を変更しなければなりません。例については、信号オブジェクトで定義されるデータ ストアの名前の変更を参照してください。

信号オブジェクトで定義されるデータ ストアの名前の変更

この例では、Simulink.Signal オブジェクトで定義されるデータ ストアの名前を変更する方法を示します。モデル エクスプローラーを使用して、モデルまたはモデル参照階層内の Data Store Read ブロックおよび Data Store Write ブロックで使用されているすべての場所のオブジェクトの名前を変更します。

  1. モデル sldemo_mdlref_dsm を開きます。このモデルは、MATLAB ベース ワークスペースに Simulink.Signal オブジェクト ErrorCond を作成し、モデル参照階層内のグローバルなデータ ストアとして使用します。

    openExample('sldemo_mdlref_dsm')
    
    
  2. モデル エクスプローラーを開きます。

  3. [モデルの階層構造] ペインで、ベース ワークスペースを選択します。

  4. [コンテンツ] ペインで、データ ストア ErrorCond を右クリックし、[すべての名前の変更] を選択します。

  5. [システムを選択] ダイアログ ボックスで、モデル sldemo_mdlref_dsm の名前をクリックし、データ ストア ErrorCond の名前を変更するためのコンテキストとして選択します。

  6. ErrorCond は参照モデルで使用されるグローバルなデータ ストアであるため、[参照モデルでの検索] を選択します。[OK] をクリックします。

    [ブロック線図を更新して最近の変更を含める] チェック ボックスは、不要なモデル ブロック線図の更新を避けて時間を節約するために、既定ではオフにされています。ブロック線図の更新を強制してモデルに対する最新の変更を取り込む場合は、このチェック ボックスをオンにします。

  7. モデル ブロック線図を更新するメッセージに対して [OK] をクリックします。

    モデルを開いたばかりであるため、ErrorCond などの変数の名前を変更する前に少なくとも 1 回モデル ブロック線図を更新しなければなりません。[システムを選択] ダイアログ ボックスで [ブロック線図を更新して最近の変更を含める] をオンにしてブロック線図の更新を強制的に行うことができますが、通常このオプションは、複数の変数名の変更操作を実行中にモデルを変更した場合に使用します。

  8. [すべての名前の変更] ダイアログ ボックスで、[新規名] ボックスにデータ ストアの新しい名前を入力し、[OK] をクリックします。

生成コード内のカスタマイズされたデータ ストア アクセス関数

Embedded Coder® は、生成コード内でカスタマイズされたデータ ストア アクセス関数を指定するために使用できるストレージ クラスを提供します。Struct ストレージ クラスを使用してパラメーター データを構造体に整理する (Embedded Coder)Access Data Through Functions with Storage Class GetSet (Embedded Coder)を参照してください。

参考

ブロック

オブジェクト

関連するトピック