Стандарт 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 нейтральна в отношении версии. По умолчанию программное обеспечение генерирует формат версии 1.31 ASAP2, но сгенерированная информация модели обычно совместима с другими версиями ASAP2. Генерация файла ASAP2 также нейтральна относительно определенных потребностей измерения ASAP2 и инструментов калибровки. Программное обеспечение обеспечивает API индивидуальной настройки, которые можно использовать, чтобы настроить генерацию файла ASAP2, чтобы сгенерировать версию ASAP2 и удовлетворить определенные потребности инструментов ASAP2.
Чтобы использовать генерацию файла ASAP2, необходимо познакомиться с:
ASAM и стандарт ASAP2 и терминология. Смотрите веб-сайт ASAM в www.asam.net
.
Конфигурирование элементов данных модели для генерации кода. Смотрите Code Mappings editor.
Устройство хранения данных и представление сигналов и параметров в сгенерированном коде. Смотрите Доступ к данным для Прототипирования и Отладки.
Если у вас есть Embedded Coder®, смотрите Представление данных и доступ.
Можно использовать генерацию файла ASAP2 с различными системными настройками конечного файла. Например, GRT - и ERT-базировался, настройки позволяет вам сгенерировать файл 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
объекты, таблица приводит связанное имя свойства.
Атрибут данных | Заданный в | PropertyName |
---|---|---|
Назовите (символ) | Модель и объект данных | Наследованный от указателя объекта данных, к которому параметр или сигнал называют твердость |
Описание | Объект данных |
|
Тип данных | Модель или объект данных |
|
Масштабирование | Модель или объект данных | 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 (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 | Модуль |
Если вам установили 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 или файлов отладочной информации DWARF для модели. Когда названо, rtw.asap2SetAddress
извлекает фактический адрес ECU из заданного ELF, PDB или файла DWARF и заменяет заполнителя в файле ASAP2 с исполнительным адресом, например:
/begin CHARACTERISTIC /* Name */ Ki /* Long Identifier */ "" /* Type */ VALUE /* ECU Address */ 0x40009E60
Программное обеспечение Simulink Coder генерирует описания ASAP2 для данных об интерполяционной таблице и его точек останова. Программное обеспечение представляет 1D табличные данные как CURVE
информация, 2D табличные данные как MAP
информация и точки останова как AXIS_DESCR
и AXIS_PTS
информация. Можно смоделировать интерполяционные таблицы при помощи одного из следующих блоков Интерполяционной таблицы Simulink:
Прямая Интерполяционная таблица (n-D) — 1 и 2 размерности
Интерполяция Используя Предварительный поиск — 1 и 2 размерности
1D интерполяционная таблица
Двумерная интерполяционная таблица
Интерполяционная таблица n-D — 1 и 2 размерности
Программное обеспечение поддерживает эти типы точек останова интерполяционной таблицы (точки оси).
Установите точки останова тип | Сгенерированная информация |
---|---|
Настраиваемый и общий для несколько табличных осей (общая ось) |
|
Зафиксированный и ненастраиваемый (зафиксированная ось) | Один из этих вариантов
|
Настраиваемый, но не общий для несколько таблиц (стандартная ось) |
|
Когда вы конфигурируете блоки для генерации кода ASAP2:
Для табличных данных используйте Simulink.Parameter
объект данных с non-Auto
класс памяти.
Для настраиваемых данных о точке останова, которые являются общими для несколько табличных осей (COM_AXIS
), используйте Simulink.Parameter
объект данных, который имеет non-Auto
класс памяти.
Для фиксированных, ненастраиваемых данных о точке останова (FIX_AXIS
), используйте переменные рабочей области или массивы, заданные в диалоговом окне параметров блоков. Точки останова должны храниться как целые числа в коде. Тип данных должен быть встроенным целочисленным типом (int8
int16
int32
uint8
uint16
, или uint32
), тип данных с фиксированной точкой или эквивалентный тип псевдонима.
Для настраиваемых данных о точке останова, которые не являются общими для несколько таблиц (STD_AXIS):
Создайте Simulink.Bus
объект задать struct
упаковка (имена и порядок полей). Поля структуры параметра должны соответствовать данным об интерполяционной таблице и каждой оси блока интерполяционной таблицы. Например, в блоке n-D Lookup Table, который имеет 2 размерности, структура должна содержать только три поля. Этот объект шины описывает размещение записи для характеристики поиска.
Создайте Simulink.Parameter
объект представлять настраиваемый параметр.
Составьте значения оси и таблица.
Опционально, задайте 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).
Используйте GRT - или ERT-основанный системный конечный файл
Объедините файлы ASAP2 для главных и моделей, на которые ссылаются,
Используйте Типовой конечный файл Системы реального времени или системный конечный файл Embedded Coder, чтобы сгенерировать файл ASAP2 как часть генерации кода и процесса сборки.
Сгенерируйте файл ASAP2 при помощи системных конечных файлов, которые имеют встроенную поддержку ASAP2. Для примера см. модель rtwdemo_asap2
в качестве примера ASAP2.
Сгенерировать определение данных ASAP2 для модели при помощи системного конечного файла Типового в реальном времени (GRT) или системного конечного файла Embedded Coder:
Используйте Code Mappings editor, чтобы применить классы памяти к сигналам, состояниям блока и параметрам модели, как описано в Настройке генерации кода C для Элементов Интерфейса модели.
Параметры не представлены в файле ASAP2, если один или несколько следующих условий существует:
Вы применяете класс памяти Auto
, FileScope
Struct ()
, или Default
(через Model default
).
Вы применяете класс памяти через Embedded Coder Dictionary
.
Вы применяете класс памяти, который заставляет генератор кода генерировать макро-или неадресуемую переменную.
Используйте Property Inspector, чтобы сконфигурировать остающиеся свойства класса памяти для каждого элемента данных.
Установите параметр конфигурации модели, System target file к GRT - или ERT-основывал системный конечный файл.
Выберите параметр конфигурации модели ASAP2 interface.
Выберите параметр Generate code only.
Нажмите Apply.
Сгенерируйте код.
Генератор кода записывает файл ASAP2 в папку сборки. По умолчанию файл называют
, где model
.a2l
имя модели. Файл настройки ASAP2 управляет именем файла ASAP2. Для получения дополнительной информации смотрите, Настраивают Сгенерированный Файл ASAP2.model
Процесс сборки может сгенерировать файл ASAP2 для каждой модели, на которую ссылаются, в иерархии модели - ссылки. В сгенерированном файле ASAP2 записи ИЗМЕРЕНИЯ представляют сигналы и состояния в модели, на которую ссылаются.
Чтобы сгенерировать файлы ASAP2 для моделей, на которые ссылаются, выберите генерацию файла ASAP2 для топ-модели и для каждой модели, на которую ссылаются, в ссылочной иерархии. Если вы используете Типовую Цель В реальном времени или цель Embedded Coder, выполняете процедуру, описанную в GRT Использования - или ERT-Основанный Системный Конечный файл для топ-модели и каждой модели, на которую ссылаются.
Используйте функциональный rtw.asap2MergeMdlRefs
объединять файлы ASAP2, сгенерированные для главных и моделей, на которые ссылаются. Функция имеет этот синтаксис:
[status,info] = rtw.asap2MergeMdlRefs(topModelName,asap2FileName)
topModelName
имя модели, содержащей одну или несколько моделей, на которые ссылаются.
asap2FileName
имя, которое вы задаете для объединенного файла ASAP2.
Дополнительный: status
возвращает false (логический ноль), если завершенное слияние и возвращается верный (логическая единица) в противном случае.
Дополнительный: 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), можно создать очень специализированные решения для приложения. См. документацию Simulink Coder® для получения дополнительной информации о генерации файла ASAP2.
Можно сконфигурировать генерацию файла ASAP2 путем выбора интерфейса ASAP2 на Генерации кода> Интерфейсная панель диалогового окна Configuration Parameters.