Экспорт 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 файлов. В некоторых случаях использование объектов рабочей области необязательно.

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

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

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

Определено в

Имя свойства

Имя (символ)

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

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

Описание

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

Description

Тип данных

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

DataType

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

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

DataType

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

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

Min

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

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

Max

Модуль

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

Unit

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

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

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

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

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

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

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

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

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

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

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

LONGID_ASAP2

Описание

PhysicalMin_ASAP2

Min

PhysicalMax_ASAP2

Max

Units_ASAP2

Модуль

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

Если в вашей системе установлен Embedded Coder, и если вы генерируете файлы Executable и Linkable Format (ELF) или Program Database (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 или файлов отладки DWARF для модели. При вызове, rtw.asap2SetAddress извлекает фактический адрес ECU из указанного файла ELF, PDB или DWARF и заменяет заполнитель в файле 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 Lookup Table:

  • Интерполяционная таблица (n-D) - 1 и 2 размерности

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

  • 1-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 Lookup Table, который имеет 2 размерности, структура должна содержать только три поля. Этот объект шины описывает размещение записи для интерполяционной характеристики.

    2. Создайте Simulink.Parameter объект, чтобы представлять настраиваемый параметр.

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

    4. Опционально задайте свойства Units, Minimum и Maximum для объекта параметра.

Вот пример записи n-D Lookup Table, сгенерированной в файл 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

Используйте целевой файл системы Generic Real-Time или целевой файл системы Embedded Coder, чтобы сгенерировать файл ASAP2 как часть генерации кода и процесса сборки.

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

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

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

  1. Используйте Code Mappings editor для применения классов памяти к сигналам, состояниям блока и параметрам модели, как описано в строении генерации кода C для элементов интерфейса модели.

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

    • Вы применяете классы памяти Auto, FileScope, Struct, или Default (посредством Model default).

    • Вы применяете класс памяти через Embedded Coder Dictionary.

    • Вы применяете класс памяти, который заставляет генератор кода генерировать переменную макроса или без адреса.

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

  3. Установите параметр конфигурации модели System target file в системный целевой файл на основе GRT- или ERT.

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

  5. Выберите Generate code only параметра.

  6. Нажмите Apply.

  7. Сгенерируйте код.

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

Сгенерируйте файлы ASAP2 для ссылок на Модели

Процесс сборки может сгенерировать файл ASAP2 для каждой ссылочной модели в иерархии модели-ссылки. В сгенерированном файле ASAP2 ИЗМЕРЕНИЯ записи представляют сигналы и состояния внутри ссылочной модели.

Чтобы сгенерировать файлы ASAP2 для моделей-ссылок, выберите генерацию ASAP2 файла для верхней модели и для каждой модели-ссылки в иерархии ссылок. Если вы используете Generic Real-Time Target или Embedded Coder target, выполните процедуру, описанную в Use GRT- или ERT System Target File для верхней модели и каждой модели-ссылки.

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

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

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

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

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

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

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

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

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

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

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

В этой таблице описывается базовая структура файла ASAP2 и функции Target Language Compiler (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
- ХАРАКТЕРИСТИКА
- ParameterGroups
- ModelParameters

...WriteRecordLayout_TemplateName ()

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

user/templates/...

- ИЗМЕРЕНИЕ
- ВнешниеВходы
- 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 ® и сигналами тестовой точки. Используя Target Language Compiler (TLC), можно создать сильно настроенные решения для вашего приложения. Для получения дополнительной информации о генерации ASAP2 файлов см. документацию Simulink Coder ®.

Можно сконфигурировать ASAP2 генерацию файлов, выбрав ASAP2 интерфейс на панели Генерация Кода > Interface диалогового окна Параметры Конфигурации.

Похожие темы