exponenta event banner

Экспорт файла ASAP2 для измерения и калибровки данных

Стандарт ASAM MCD-2 MC, также известный как ASAP2 - стандарт определения данных, предложенный Ассоциацией по стандартизации автоматики и измерительных систем (ASAM). ASAP2 - это необъектно-ориентированное описание данных, используемых для систем измерения, калибровки и диагностики. Для получения дополнительной информации о ASAM и стандарте ASAM MCD-2 MC (ASAP2) см. веб-сайт ASAM по адресу www.asam.net.

Генератор кода позволяет экспортировать файл ASAP2, содержащий информацию о модели в процессе создания кода.

Можно запустить интерактивный пример создания файлов ASAP2. Для открытия примера в командной строке MATLAB ® введите:

rtwdemo_asap

Поддержка Simulink ® Coder™ для создания ASAP2 файлов не зависит от версии. По умолчанию программа генерирует формат ASAP2 версии 1.31, но сгенерированная информация о модели обычно совместима с другими версиями ASAP2. Создание файлов ASAP2 также является нейтральным с точки зрения конкретных потребностей ASAP2 измерительных и калибровочных инструментов. Программное обеспечение предоставляет API-интерфейсы настройки, которые можно использовать для настройки ASAP2 создания файлов для создания ASAP2 версии и для удовлетворения конкретных потребностей инструментов ASAP2.

Что нужно знать

Чтобы использовать ASAP2 создание файлов, необходимо ознакомиться с:

Системные целевые файлы, поддерживающие ASAP2

Можно использовать ASAP2 генерацию файлов с различными конфигурациями системных целевых файлов. Например, конфигурации на основе GRT и ERT позволяют создавать ASAP2 файл как часть процесса создания и сборки кода.

Процедуры создания файлов ASAP2 с использованием конфигураций системных целевых файлов см. в разделе Создание файла ASAP2.

Определение информации о ASAP2

Определение ASAP2 информации для параметров и сигналов

Процесс создания файла ASAP2 требует информации о параметрах и сигналах в модели. Часть этой информации содержится в самой модели. Используйте объекты данных Simulink в рабочей области или словаре данных для завершения процесса создания файлов ASAP2. В некоторых случаях использование объектов рабочей области является необязательным.

Используйте редактор данных модели и встроенные объекты данных Simulink для предоставления информации, такой как использование Simulink.Signal объекты для предоставления информации MEASUREMENT и Simulink.Parameter объекты для предоставления информации о ХАРАКТЕРИСТИКЕ. Можно использовать объекты данных из классов данных, полученных из Simulink.Signal и Simulink.Parameter для предоставления информации. См. раздел Объекты данных и настройка свойств данных с помощью редактора данных модели.

Эта таблица содержит минимальный набор атрибутов данных, необходимых для создания файла ASAP2. Некоторые атрибуты данных определяются в модели. Другие атрибуты предоставляются в свойствах объектов. Для атрибутов, определенных в Simulink.Signal или Simulink.Parameter в таблице перечислены связанные имена свойств.

Атрибут данных

Определено в

Имя свойства

Имя (символ)

Модель и объект данных

Унаследовано от дескриптора объекта данных, для которого разрешено имя параметра или сигнала

Описание

Объект данных

Description

Тип данных

Модель или объект данных

DataType

Вычисление
(если тип данных с фиксированной точкой)

Модель или объект данных

DataType

Минимальное допустимое значение

Модель или объект данных

Min

Максимально допустимое значение

Модель или объект данных

Max

Единица

Модель или объект данных

Unit

Адрес памяти (необязательно)

Модель или объект данных

MemoryAddress_ASAP2 (необязательно; см. Атрибут адреса памяти.)

Атрибут адреса памяти

Если атрибут адреса памяти неизвестен до создания кода, генератор кода вставляет ECU Address текст-заполнитель в созданном файле ASAP2. Можно заменить фактический адрес местозаполнителем путем постобработки созданного файла. Пример см. в файле matlabroot/toolbox/rtw/targets/asap2/asap2/asap2post.m. asap2post.m анализирует файл карты компоновщика, который вы предоставляете, и заменяет ECU Address местозаполнители в файле ASAP2 с фактическими адресами памяти. Поскольку файлы карт компоновщика отличаются от компилятора к компилятору, возможно, потребуется изменить код регулярного выражения в asap2post.m для соответствия формату используемой карты компоновщика.

Если в системе установлен Embedded Coder, и при создании файлов исполняемого и связываемого формата (ELF) или базы данных программ (PDB) для встроенной цели можно использовать rtw.asap2SetAddress функция автоматизации замены адреса ECU. Дополнительные сведения см. в разделе Автоматическая замена адреса ECU для файлов ASAP2 (встроенный кодер).

Если атрибут адреса памяти известен до генерации кода, он может быть определен в элементе данных или объекте данных. По умолчанию MemoryAddress_ASAP2 свойство не существует в Simulink.Signal или Simulink.Parameter классы объектов данных. Если требуется добавить атрибут, добавьте свойство с именем MemoryAddress_ASAP2 к пользовательскому классу, который является подклассом Simulink или ASAP2 класс. Сведения о подклассе классов данных Simulink см. в разделе Определение классов данных.

В этой таблице указаны свойства объекта Simulink, которые заменили свойства объекта ASAP2 предыдущей версии.

Различия между параметрами ASAP2 и Simulink и свойствами сигнальных объектов

ASAP2 Свойства объекта (предыдущее)

Свойства объекта Simulink (текущий)

LONGID_ASAP2

Описание

PhysicalMin_ASAP2

Минута

PhysicalMax_ASAP2

Макс

Units_ASAP2

Единица

Автоматическая замена адреса ECU для файлов ASAP2 (встроенный кодер)

Если в системе установлен Embedded Coder, и при создании файлов исполняемого и связываемого формата (ELF) или базы данных программ (PDB) для встроенной цели можно использовать rtw.asap2SetAddress функция автоматизации замены ECU Address значения адреса памяти-заполнителя с фактическими адресами в созданном файле ASAP2.

Если атрибут адреса памяти неизвестен до создания кода, генератор кода вставляет ECU Address текст-заполнитель в созданном файле ASAP2, как показано на рисунке

/begin CHARACTERISTIC
  /* Name            */ Ki
  /* Long Identifier */ ""
  /* Type            */ VALUE
  /* ECU Address     */ 0x0000 /* @ECU_Address@Ki@ */

Заменить фактические адреса для ECU Address заполнители, обработайте созданный файл ASAP2 с помощью rtw.asap2SetAddress функция. Синтаксис:

rtw.asap2SetAddress(ASAP2File,InfoFile)

Аргументы представляют собой векторы символов, задающие имя созданного файла ASAP2 и имя созданного исполняемого файла ELF, файла PDB из цепочки инструментов Microsoft или файлов отладочной информации DWF для модели. При вызове, rtw.asap2SetAddress извлекает фактический адрес ECU из указанного файла ELF, PDB или DWF и заменяет местозаполнитель в файле ASAP2 фактическим адресом, например:

/begin CHARACTERISTIC
  /* Name            */ Ki
  /* Long Identifier */ ""
  /* Type            */ VALUE
  /* ECU Address     */ 0x40009E60

Определение сведений о ASAP2 для таблиц подстановки

Программное обеспечение Simulink Coder создает ASAP2 описания для данных таблицы поиска и ее точек останова. Программное обеспечение представляет данные таблицы 1-D виде CURVE информация, 2-D данные таблицы как MAP информация и точки останова AXIS_DESCR и AXIS_PTS информация. Таблицы подстановки можно моделировать с помощью одного из следующих блоков таблицы подстановки Simulink:

  • Таблица прямого поиска (n-D) - размеры 1 и 2

  • Интерполяция с использованием Prelookup - размеры 1 и 2

  • 1-D Таблица подстановки

  • 2-D Таблица подстановки

  • n-D таблица подстановки - размеры 1 и 2

Программное обеспечение поддерживает эти типы точек останова таблицы поиска (точки оси).

Тип точки остановаСгенерированная информация
Настраиваемый и общий для нескольких осей таблиц (общая ось)

COM_AXIS

Фиксированные и неперестраиваемые (фиксированная ось)

Один из этих вариантов FIX_AXIS:

  • FIX_AXIS_PAR если точки останова являются целыми числами с эквидистантным интервалом и эквидистантным интервалом является степень двух

  • FIX_AXIS_PAR_DIST если точки останова являются целыми числами с равноудаленным интервалом

  • FIX_AXIS_PAR_LIST если точки останова являются целыми числами с неравностным интервалом

Настраиваемый, но не совместно используемый несколькими таблицами (стандартная ось)

STD_AXIS

При конфигурировании блоков для создания кода ASAP2:

  • Для табличных данных используйте Simulink.Parameter объект данных с не-Auto класс хранения.

  • Для настраиваемых данных точек останова, совместно используемых несколькими осями таблиц (COM_AXIS), используйте Simulink.Parameter объект данных, имеющийAuto класс хранения.

  • Для фиксированных, не настраиваемых данных точек останова (FIX_AXIS), используйте переменные рабочей области или массивы, указанные в диалоговом окне параметров блока. Точки останова должны храниться в коде как целые числа. Тип данных должен быть встроенным целым типом (int8, int16, int32, uint8, uint16, или uint32), тип данных с фиксированной точкой или эквивалентный тип псевдонима.

  • Для настраиваемых данных точек останова, которые не являются общими для нескольких таблиц (STD_AXIS):

    1. Создать Simulink.Bus для определения объекта struct упаковка (названия и порядок полей). Поля структуры параметров должны соответствовать данным таблицы поиска и каждой оси блока таблицы поиска. Например, в n-D блоке таблицы подстановки, имеющем 2 измерения, структура должна содержать только три поля. Этот объект шины описывает формат записи для признака поиска.

    2. Создать Simulink.Parameter для представления настраиваемого параметра.

    3. Создайте значения таблицы и оси.

    4. При необходимости задайте для объекта параметра свойства «Единицы», «Минимум» и «Максимум».

Ниже приведен пример записи таблицы поиска n-D, созданной в файле ASAP2 в формате стандартной оси:

/begin CHARACTERISTIC
  /* Name */  STDAxisParam
  ...
  /* Record Layout */   Lookup1D_X_WORD_Y_FLOAT32_IEEE
  ...
  begin AXIS_DESCR
    /* Description of X-Axis Points */
    /* Axis Type */      STD_AXIS
    ...
  /end AXIS_DESCR
/end CHARACTERISTIC

/begin RECORD_LAYOUT Lookup1D_X_WORD_Y_FLOAT32_IEEE
  AXIS_PTS_X 1 WORD INDEX_INCR DIRECT
  FNC_VALUES 2 FLOAT32_IEEE COLUMN_DIR DIRECT
/end   RECORD_LAYOUT

Примечание

Пример модели rtwdemo_asap2 показывает ASAP2 создание файлов для блоков таблицы подстановки, включая настраиваемые (COM_AXIS) и фиксированные (FIX_AXIS) точки останова таблицы подстановки.

Создание файла ASAP2

Создание файлов ASAP2

Используйте общий целевой файл системы реального времени или целевой файл системы Embedded Coder для создания файла ASAP2 в процессе создания и сборки кода.

Создайте ASAP2 файл с помощью системных целевых файлов со встроенной поддержкой ASAP2. Пример см. в примере модели ASAP2 rtwdemo_asap2.

Использовать целевой файл системы на основе GRT или ERT

Чтобы создать определение ASAP2 данных для модели с помощью целевого файла системы Generic Real-Time (GRT) или целевого файла системы Embedded Coder, выполните следующие действия.

  1. Используйте редактор сопоставлений кодов для применения классов хранения к сигналам, состояниям блоков и параметрам модели, как описано в документе C Code Generation Configuration for Model Interface Elements.

    Параметры не представлены в файле ASAP2, если существует одно или несколько из следующих условий:

    • Применяется класс хранения Auto, FileScope, Struct, или Default (через Model default).

    • Класс хранения применяется через Embedded Coder Dictionary.

    • Применяется класс хранения, который вызывает создание генератором кода макроса или неадресуемой переменной.

  2. Используйте инспектор свойств, чтобы настроить оставшиеся свойства класса хранения для каждого элемента данных.

  3. Задайте для параметра конфигурации модели System target file значение GRT- или ERT- system target file.

  4. Выберите параметр конфигурации модели ASAP2 интерфейс.

  5. Выберите параметр Только генерировать код.

  6. Нажмите кнопку «Применить».

  7. Создать код.

    Генератор кода записывает файл ASAP2 в папку построения. По умолчанию файл называется model.a2l, где model - имя модели. Файл настройки ASAP2 управляет именем файла ASAP2. Дополнительные сведения см. в разделе Настройка созданного файла ASAP2.

Создание файлов ASAP2 для ссылочных моделей

Процесс построения может генерировать файл ASAP2 для каждой ссылочной модели в иерархии привязок модели. В созданном файле ASAP2 записи MEASUREMENT представляют сигналы и состояния внутри ссылочной модели.

Чтобы создать файлы ASAP2 для ссылочных моделей, выберите ASAP2 создание файлов для верхней модели и для каждой ссылочной модели в иерархии привязок. Если используется общий целевой объект в реальном времени или встроенный целевой объект кодера, выполните процедуру, описанную в разделе Использование целевого файла системы на основе GRT или ERT для верхней модели и каждой ссылочной модели.

Объединение файлов ASAP2 для верхних и ссылочных моделей

Использовать функцию rtw.asap2MergeMdlRefs для объединения файлов ASAP2, созданных для моделей верхнего уровня и ссылочных моделей. Функция имеет следующий синтаксис:

[status,info] = rtw.asap2MergeMdlRefs(topModelName,asap2FileName)

  • topModelName - имя модели, содержащей одну или несколько ссылочных моделей.

  • asap2FileName - это имя, указанное для объединенного файла ASAP2.

  • Необязательно: status возвращает false (логический 0), если слияние завершено, и возвращает true (логический 1), в противном случае.

  • Необязательно: info возвращает дополнительную информацию об ошибке слияния, если status является правдой. В противном случае возвращается пустой символьный вектор.

Рассмотрим следующий пример.

[status,info] = rtw.asap2MergeMdlRefs('myTopMdl','merged.a2l')
Эта команда объединяет файлы ASAP2, созданные для модели верхнего уровня myTopMdl и его ссылочные модели в файле merged.a2l.

Пример модели rtwdemo_asap2 содержит пример объединения файлов ASAP2.

Структура файла ASAP2

В этой таблице представлена основная структура файла ASAP2 и описаны функции и файлы TLC, используемые для создания каждой части файла:

  • Статические части файла ASAP2 выделены полужирным шрифтом.

  • Вызовы функций обозначаются %<FunctionName()>.

Раздел файла

Содержимое asap2main.tlc

Файл TLC, содержащий определение функции

Заголовок файла

%<ASAP2UserFcnWriteFileHead()>

asap2userlib.tlc

/begin PROJECT ""

/begin PROJECT "%<ASAP2ProjectName>"

asap2setup.tlc

/begin HEADER ""
HEADER содержание

/begin HEADER"%<ASAP2HeaderName>"
%<ASAP2UserFcnWriteHeader()>

asap2setup.tlc
asap2userlib.tlc

/end HEADER

/end HEADER

asap2userlib.tlc

/begin MODULE ""
MODULE содержание:

/begin MODULE "%<ASAP2ModuleName>"}

asap2setup.tlc
asap2userlib.tlc

- A2ML
- MOD_PAR
- MOD_COMMON
...

%<ASAP2UserFcnWriteHardwareInterface()>

asap2userlib.tlc

Зависит от модели MODULE содержание:

%<SLibASAP2WriteDynamicContents()>
Вызывает определяемые пользователем функции:

asap2lib.tlc

- RECORD_LAYOUT
- CHARACTERISTIC
- ParameterGroups
- ModelParameters

...WriteRecordLayout_TemplateName()

  ...WriteCharacteristic_TemplateName()
  ...WriteCharacteristic_Scalar()

user/templates/...

- MEASUREMENT
- ExternalInputs
- BlockOutputs

...WriteMeasurement()

asap2userlib.tlc

- COMPU_METHOD

...WriteCompuMethod()

asap2userlib.tlc

/end MODULE

/end MODULE

 

Нижний колонтитул/конец файла

%<ASAP2UserFcnWriteFileTail()>

asap2userlib.tlc

Создание файла определения данных ASAM-ASAP2 на основе хоста для измерения и калибровки данных

В этой модели показан экспорт данных ASAP2. ASAP2 - стандарт определения данных, предложенный Ассоциацией стандартизации систем автоматизации и измерений (ASAM).

Открыть пример модели

Открыть пример модели rtwdemo_asap2.

open_system('rtwdemo_asap2');

ASAP2 - необъектоориентированное описание данных, используемых для систем измерения, калибровки и диагностики. Дополнительные сведения о ASAM и стандарте ASAP2 см. на веб-сайте ASAM: https://www.asam.net.

ASAP2 определение данных достигается с помощью объектов данных Simulink ® и сигналов контрольных точек. С помощью компилятора целевого языка (TLC) можно создавать настраиваемые решения для приложения. Подробные сведения о создании файлов см. ASAP2 документации Simulink Coder ®.

Можно настроить создание файлов ASAP2 выбрав ASAP2 интерфейс на панели «Создание кода» > «Интерфейс» диалогового окна «Параметры конфигурации».

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