Файл model.rtw и осциллографы

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

Сгенерированный файл model.rtw вводится к Компилятору Выходного языка. Если вы выбираете Retain .rtw file из Configuration Parameters> панель Code Generation после создавания модели, можно просмотреть файл model.rtw, который был сгенерирован.

Файл model.rtw реализован как ASCII-файл пар значения параметров, сохраненных в иерархии записей. Название параметра / пара значения параметров задано как

ParameterName  value

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

     NumDataOutputPorts 1    

NumDataOutputPorts является идентификатором, и 1 его значение.

record задан как

RecordName {
     .
     .
     .
}

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

DataStores {
    NumDataStores	    0
}

Примечание

Структура файла model.rtw, очень вероятно, изменится между релизами, который является неопровержимым доводом, чтобы ограничить ваш доступ к model.rtw к библиотечным функциям, зарегистрированным в соответствии со Справочным руководством по библиотеке Функции TLC: Компилятор Выходного языка. Для получения дополнительной информации смотрите Исключение к Использованию Библиотечных функций тот доступ model.rtw.

Осциллографы в файле model.rtw

Каждая запись создает новый scope. Файл 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-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. Block является подзаписью System, который является подзаписью CompiledModel. Обратите внимание на то, что названия параметра в этом файле изменяются от релиза до релиза.

Похожие темы