Стандарт 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
.
Конфигурирование элементов данных моделей для генерации кода. См. 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
объекты, в таблице перечислены связанные имена свойства.
Атрибут данных | Определено в | Имя свойства |
---|---|---|
Имя (символ) | Модель и объект данных | Унаследовано от указателя объекта данных, которому разрешается параметр или имя сигнала |
Описание | Объект данных |
|
Тип данных | Модель или объект данных |
|
Масштабирование | Модель или объект данных | DataType |
Минимальное допустимое значение |
Модель или объект данных |
|
Максимально допустимое значение |
Модель или объект данных |
|
Модуль |
Модель или объект данных |
|
Адрес памяти (необязательно) |
Модель или объект данных |
|
Если атрибут адреса памяти неизвестен перед генерацией кода, генератор кода вставляет ECU Address
текст заполнителя в сгенерированном файле ASAP2. Можно заменить фактический адрес заполнителя путем постобработки сгенерированного файла. Для получения примера смотрите файл
. matlabroot
/ toolbox/rtw/targets/asap2/asap2post.masap2post.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 | Модуль |
Если в вашей системе установлен 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
Программное обеспечение 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 размерности
Программа поддерживает эти типы точек останова интерполяционной таблицы (точки оси).
Тип точки останова | Сгенерированная информация |
---|---|
Настраиваемая и общая для нескольких осей таблицы (общая ось) |
|
Неподвижный и нетронутый (фиксированная ось) | Один из этих вариантов
|
Настраиваемый, но не общий для нескольких таблиц (стандартная ось) |
|
Когда вы конфигурируете блоки для ASAP2 генерации кода:
Для данных таблицы используйте Simulink.Parameter
объект данных с не- Auto
класс памяти.
Для настраиваемых данных точек по оси Х, которые являются общими для нескольких осей таблицы (COM_AXIS
), используйте Simulink.Parameter
объект данных, который имеет не- 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) точки останова интерполяционной таблицы.
Используйте целевой файл системы Generic Real-Time или целевой файл системы Embedded Coder, чтобы сгенерировать файл ASAP2 как часть генерации кода и процесса сборки.
Сгенерируйте ASAP2 файл с помощью системных целевых файлов, имеющих встроенную поддержку ASAP2. Например, смотрите модель ASAP2 примера rtwdemo_asap2
.
Чтобы сгенерировать определение ASAP2 данных для модели с помощью целевого файла системы Generic Real-Time (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 файла для верхней модели и для каждой модели-ссылки в иерархии ссылок. Если вы используете Generic Real-Time Target или Embedded Coder target, выполните процедуру, описанную в Use GRT- или ERT System Target File для верхней модели и каждой модели-ссылки.
Используйте функцию 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')
myTopMdl
и его ссылку на модели в файле merged.a2l
.Пример модели rtwdemo_asap2
включает пример объединения файлов ASAP2.
В этой таблице описывается базовая структура файла ASAP2 и функции Target Language Compiler (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 ® и сигналами тестовой точки. Используя Target Language Compiler (TLC), можно создать сильно настроенные решения для вашего приложения. Для получения дополнительной информации о генерации ASAP2 файлов см. документацию Simulink Coder ®.
Можно сконфигурировать ASAP2 генерацию файлов, выбрав ASAP2 интерфейс на панели Генерация Кода > Interface диалогового окна Параметры Конфигурации.