exponenta event banner

model.rtw Файлы и области

Программное обеспечение генерации кода создает model.rtw файл из модели Simulink ®. Amodel.rtw файл является частичным представлением модели, созданной процессом построения для использования компилятором целевого языка. В нем описываются блоки, входы, выходы, параметры, состояния, хранилище и другие компоненты и свойства модели из соответствующего файла модели.

Произведенный model.rtw файл вводится в компилятор целевого языка. Если выбрать Сохранить .rtw файл на панели Параметры конфигурации > Создание кода, после построения модели можно просмотреть model.rtw файл, который был создан.

A model.rtw файл реализован как ASCII-файл пар параметр-значение, хранящийся в иерархии записей. Пара имя/значение параметра указана как

ParameterName  value

где ParameterName (также называется идентификатором) - имя идентификатора TLC и value - строка, скаляр, вектор или матрица. Например, в паре имя/значение параметра

     NumDataOutputPorts 1    

NumDataOutputPorts - идентификатор, а 1 - его значение.

Запись указана как

RecordName {
     .
     .
     .
}

Запись содержит пары имя/значение параметра и/или субзаписи. Например, эта запись содержит одну пару имя/значение параметра:

DataStores {
    NumDataStores	    0
}

Примечание

Структура model.rtw файл с большой вероятностью изменится между выпусками, что является убедительной причиной ограничить ваш доступ к model.rtw к функциям библиотеки, задокументированным в TLC Function Library Reference: Target Language Compiler. Дополнительные сведения см. в разделе Исключение при использовании библиотечных функций, обращающихся к 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.
}

Например, для доступа Name в CompiledModel, вы бы использовали

CompiledModel.Name

Несколько записей с одним именем образуют список, в котором индекс первой записи начинается с 0. Для доступа к указанной выше записи S-функционального блока используется

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-функциональных блоков объем записи S-функционального блока определяется так, как показано выше. %with директива была выполнена. В встроенном .tlc , вы должны получить доступ к полям без полного пути.

Следующий код показывает более подробный пример области, где Block запись имеет несколько пар параметр-значение (Type, Name, Identifierи так далее), и три субзаписи, каждая из которых называется Parameter. Block является субзаписью System, которая является субзаписью CompiledModel. Обратите внимание, что имена параметров в этом файле изменяются с версии на версию.

Связанные темы