model
.rtw
ファイルとスコープ
model
.rtwコード生成ソフトウェアによって、Simulink® モデルから
ファイルが作成されます。model
.rtw
ファイルは、Target Language Compiler で使用するためにビルド プロセスで生成されるモデルの部分表現です。これには、対応するモデル ファイルから、ブロック、入力、出力、パラメーター、状態、ストレージなどのモデル コンポーネントとそのプロパティが記述されます。model
.rtw
生成された
ファイルは、Target Language Compiler に対する入力になります。[コンフィギュレーション パラメーター] 、 [コード生成] ペインから [.rtw ファイルを残す] を選択すると、モデルのビルド後に生成された model
.rtw
ファイルを表示できます。model
.rtw
ファイルは、パラメーターと値のペアをレコードの階層に格納した ASCII ファイルとして実装されます。パラメーター名とパラメーター値のペアは次のように指定されます。model
.rtw
ParameterName value
ここで、ParameterName
("識別子") は TLC 識別子の名前、value
は文字列、スカラー、ベクトル、または行列です。たとえば、パラメーター名とパラメーター値のペアは次のようになります。
NumDataOutputPorts 1
NumDataOutputPorts
が識別子で、1 がその値です。
"レコード" は次のように指定されます。
RecordName { . . . }
レコードには、パラメーター名とパラメーター値のペア、下位レコード、またはその両方が格納されます。たとえば、次のレコードにはパラメーター名とパラメーター値のペアが 1 つ格納されています。
DataStores { NumDataStores 0 }
メモ
ファイルの構造は、リリースごとにやむを得ない理由で変更されることがよくあります。これは、model
.rtw
へのアクセスをライブラリ関数 (Target Language Compiler の「TLC 関数ライブラリ リファレンス」に記載) に限定するためです。詳細については、Exception to Using the Library Functions that Access model.rtwを参照してください。model
.rtw
model
.rtw
ファイルのスコープ
model
.rtwレコードごとに新しい "スコープ" が作成されます。
ファイルでは、中かっこの model
.rtw{
と }
を使用してレコードの開始と終了 (スコープ) を示します。スコープを使用して
ファイル内の値にアクセスできます。model
.rtw
次の例のスコープは、CompiledModel
で始まっています。特定のスコープ内の値にアクセスするにはピリオド (.
) を使用します。
の形式は次のとおりです。model
.rtw
CompiledModel { Name "modelname" -- Example of a parameter-value ... pair (record field). System { -- There is one system for each nonvirtual subsystem. Block { -- Block records for each Type "S-Function" nonvirtual block in the system. Name "<S3>/S-Function" ... Parameter { Name "P1" Value Matrix(1,2) [[1, 2];] } ... Block { } } ... System { -- The last system is for the root of your model. }
たとえば、CompiledModel
内の Name
にアクセスするには次を使用します。
CompiledModel.Name
同じ名前のレコードが複数ある場合は、最初のレコードのインデックスを 0 とするリストが形成されます。上記の S-Function ブロックのレコードにアクセスするには次を使用します。
CompiledModel.System[0].Block[0]
このブロックの名前のフィールドにアクセスするには次を使用します。
CompiledModel.System[0].Block[0].Name
このプロセスを簡略化するために、%with
命令を使用して現在のスコープを変更できます。次に例を示します。
%with CompiledModel.System[0].Block[0] %assign blockName = Name %endwith
blockName
の値は "<S3>/S-Function"
になります。
S-Function ブロックをインライン化する場合、S-Function ブロックのレコードのスコープは上記の %with
命令の場合と同じようになります。インライン化された .tlc
ファイルでは、完全修飾パスなしでフィールドにアクセスしなければなりません。
次のコードは、さらに詳しいスコープの例を示しています。Block
レコードに、パラメーターと値の複数のペア (Type
、Name
、Identifier
など) と Parameter
という 3 つの下位レコードがあります。Block
は、CompiledModel
の下位レコードである System
の下位レコードです。このファイルのパラメーター名はリリースごとに変わることに注意してください。