Стандарт 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 создание файлов, необходимо ознакомиться с:
ASAM и ASAP2 стандарт и терминология. См. веб-сайт ASAM по адресу www.asam.net.
Настройка элементов данных модели для создания кода. См. раздел Редактор сопоставлений кода.
Хранение и представление сигналов и параметров в сформированном коде. См. раздел Доступ к данным для прототипирования и отладки.
Если вы используете Embedded Coder ®, см. раздел Представление данных и доступ.
Можно использовать ASAP2 генерацию файлов с различными конфигурациями системных целевых файлов. Например, конфигурации на основе GRT и ERT позволяют создавать ASAP2 файл как часть процесса создания и сборки кода.
Процедуры создания файлов ASAP2 с использованием конфигураций системных целевых файлов см. в разделе Создание файла ASAP2.
Процесс создания файла ASAP2 требует информации о параметрах и сигналах в модели. Часть этой информации содержится в самой модели. Используйте объекты данных Simulink в рабочей области или словаре данных для завершения процесса создания файлов ASAP2. В некоторых случаях использование объектов рабочей области является необязательным.
Используйте редактор данных модели и встроенные объекты данных Simulink для предоставления информации, такой как использование Simulink.Signal объекты для предоставления информации MEASUREMENT и Simulink.Parameter объекты для предоставления информации о ХАРАКТЕРИСТИКЕ. Можно использовать объекты данных из классов данных, полученных из Simulink.Signal и Simulink.Parameter для предоставления информации. См. раздел Объекты данных и настройка свойств данных с помощью редактора данных модели.
Эта таблица содержит минимальный набор атрибутов данных, необходимых для создания файла ASAP2. Некоторые атрибуты данных определяются в модели. Другие атрибуты предоставляются в свойствах объектов. Для атрибутов, определенных в Simulink.Signal или Simulink.Parameter в таблице перечислены связанные имена свойств.
Атрибут данных | Определено в | Имя свойства |
|---|---|---|
Имя (символ) | Модель и объект данных | Унаследовано от дескриптора объекта данных, для которого разрешено имя параметра или сигнала |
Описание | Объект данных |
|
Тип данных | Модель или объект данных |
|
Вычисление | Модель или объект данных | DataType |
Минимальное допустимое значение |
Модель или объект данных |
|
Максимально допустимое значение |
Модель или объект данных |
|
Единица |
Модель или объект данных |
|
Адрес памяти (необязательно) |
Модель или объект данных |
|
Если атрибут адреса памяти неизвестен до создания кода, генератор кода вставляет ECU Address текст-заполнитель в созданном файле ASAP2. Можно заменить фактический адрес местозаполнителем путем постобработки созданного файла. Пример см. в файле . matlabroot/toolbox/rtw/targets/asap2/asap2/asap2post.masap2post.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 | Единица |
Если в системе установлен 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
Программное обеспечение 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
Программное обеспечение поддерживает эти типы точек останова таблицы поиска (точки оси).
| Тип точки останова | Сгенерированная информация |
|---|---|
| Настраиваемый и общий для нескольких осей таблиц (общая ось) |
|
| Фиксированные и неперестраиваемые (фиксированная ось) | Один из этих вариантов
|
| Настраиваемый, но не совместно используемый несколькими таблицами (стандартная ось) |
|
При конфигурировании блоков для создания кода ASAP2:
Для табличных данных используйте Simulink.Parameter объект данных с не-Auto класс хранения.
Для настраиваемых данных точек останова, совместно используемых несколькими осями таблиц (COM_AXIS), используйте Simulink.Parameter объект данных, имеющийAuto класс хранения.
Для фиксированных, не настраиваемых данных точек останова (FIX_AXIS), используйте переменные рабочей области или массивы, указанные в диалоговом окне параметров блока. Точки останова должны храниться в коде как целые числа. Тип данных должен быть встроенным целым типом (int8, int16, int32, uint8, uint16, или uint32), тип данных с фиксированной точкой или эквивалентный тип псевдонима.
Для настраиваемых данных точек останова, которые не являются общими для нескольких таблиц (STD_AXIS):
Создать Simulink.Bus для определения объекта struct упаковка (названия и порядок полей). Поля структуры параметров должны соответствовать данным таблицы поиска и каждой оси блока таблицы поиска. Например, в n-D блоке таблицы подстановки, имеющем 2 измерения, структура должна содержать только три поля. Этот объект шины описывает формат записи для признака поиска.
Создать Simulink.Parameter для представления настраиваемого параметра.
Создайте значения таблицы и оси.
При необходимости задайте для объекта параметра свойства «Единицы», «Минимум» и «Максимум».
Ниже приведен пример записи таблицы поиска 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) точки останова таблицы подстановки.
Используйте общий целевой файл системы реального времени или целевой файл системы Embedded Coder для создания файла ASAP2 в процессе создания и сборки кода.
Создайте ASAP2 файл с помощью системных целевых файлов со встроенной поддержкой ASAP2. Пример см. в примере модели ASAP2 rtwdemo_asap2.
Чтобы создать определение ASAP2 данных для модели с помощью целевого файла системы Generic Real-Time (GRT) или целевого файла системы Embedded Coder, выполните следующие действия.
Используйте редактор сопоставлений кодов для применения классов хранения к сигналам, состояниям блоков и параметрам модели, как описано в документе C Code Generation Configuration for Model Interface Elements.
Параметры не представлены в файле ASAP2, если существует одно или несколько из следующих условий:
Применяется класс хранения Auto, FileScope, Struct, или Default (через Model default).
Класс хранения применяется через Embedded Coder Dictionary.
Применяется класс хранения, который вызывает создание генератором кода макроса или неадресуемой переменной.
Используйте инспектор свойств, чтобы настроить оставшиеся свойства класса хранения для каждого элемента данных.
Задайте для параметра конфигурации модели System target file значение GRT- или ERT- system target file.
Выберите параметр конфигурации модели ASAP2 интерфейс.
Выберите параметр Только генерировать код.
Нажмите кнопку «Применить».
Создать код.
Генератор кода записывает файл ASAP2 в папку построения. По умолчанию файл называется , где model.a2l - имя модели. Файл настройки ASAP2 управляет именем файла ASAP2. Дополнительные сведения см. в разделе Настройка созданного файла ASAP2.model
Процесс построения может генерировать файл ASAP2 для каждой ссылочной модели в иерархии привязок модели. В созданном файле ASAP2 записи MEASUREMENT представляют сигналы и состояния внутри ссылочной модели.
Чтобы создать файлы ASAP2 для ссылочных моделей, выберите ASAP2 создание файлов для верхней модели и для каждой ссылочной модели в иерархии привязок. Если используется общий целевой объект в реальном времени или встроенный целевой объект кодера, выполните процедуру, описанную в разделе Использование целевого файла системы на основе GRT или ERT для верхней модели и каждой ссылочной модели.
Использовать функцию 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')myTopMdl и его ссылочные модели в файле merged.a2l.Пример модели rtwdemo_asap2 содержит пример объединения файлов ASAP2.
В этой таблице представлена основная структура файла ASAP2 и описаны функции и файлы TLC, используемые для создания каждой части файла:
Статические части файла ASAP2 выделены полужирным шрифтом.
Вызовы функций обозначаются %<FunctionName()>.
Раздел файла | Содержимое asap2main.tlc | Файл TLC, содержащий определение функции |
|---|---|---|
Заголовок файла |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Зависит от модели |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Нижний колонтитул/конец файла |
|
|
В этой модели показан экспорт данных 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 интерфейс на панели «Создание кода» > «Интерфейс» диалогового окна «Параметры конфигурации».