exponenta event banner

Настроить созданный файл ASAP2

Сведения о настройке файлов ASAP2

Продукт Embedded Coder ® содержит ряд файлов TLC, позволяющих настроить файл ASAP2, созданный на основе модели Simulink ®.

ASAP2 Структура файла по пути MATLAB

Файлы, связанные с ASAP2, организованы в папках, указанных ниже:

  • Файлы TLC для создания файла ASAP2

    matlabroot/rtw/c/tlc/mw (открытая) папка содержит файлы TLC, которые генерируют файлы ASAP2, asamlib.tlc, asap2lib.tlc, asap2main.tlc, и asap2grouplib.tlc. Эти файлы включаются в настройку параметра конфигурации модели System target file. (См. раздел Поддержка системных целевых файлов ASAP2.)

  • ASAP2 целевые файлы

    matlabroot/toolbox/rtw/targets/asap2/asap2 (открытая) папка содержит целевой файл системы ASAP2 и другие управляющие файлы.

  • Настраиваемые файлы TLC

    matlabroot/toolbox/rtw/targets/asap2/asap2/user (открытая) папка содержит файлы, которые можно изменить для настройки содержимого файлов ASAP2.

  • Шаблоны ASAP2

    matlabroot/toolbox/rtw/targets/asap2/asap2/user/templates (открытая) папка содержит шаблоны, которые определяют каждый тип CHARACTERISTIC в файле ASAP2.

Настройка содержимого файла ASAP2

Связанные с ASAP2 файлы TLC позволяют настраивать внешний вид файла ASAP2, созданного на основе модели Simulink. Большая часть настройки выполняется путем изменения или добавления в файлы, содержащиеся в matlabroot/toolbox/rtw/targets/asap2/asap2/user (открыть) папку. Этот раздел ссылается на эту папку как asap2/user папка.

Предоставляемые настраиваемые пользователем файлы делятся на две группы:

  • Статические файлы определяют части файла ASAP2, относящиеся к среде, в которой используется созданный код. Они описывают информацию, специфичную для пользователя или проекта. Статические файлы не зависят от модели.

  • Динамические файлы определяют части файла ASAP2, которые создаются на основе структуры исходной модели.

Процедура настройки файла ASAP2 выглядит следующим образом:

  1. Сделайте копию asap2/user перед внесением изменений.

  2. Удалить старый asap2/user из пути MATLAB ® или добавьте новую папкуasap2/user к пути MATLAB над старой папкой. Сеанс MATLAB использует файл установки ASAP2, asap2setup.tlc, в новой папке.

    asap2setup.tlc указывает папки и файлы, включаемые в путь TLC во время процесса создания файлов ASAP2. Изменить asap2setup.tlc для управления папками и папками, включенными в путь TLC.

  3. Измените статические части файла ASAP2. К ним относятся

    • Обозначения проекта и заголовка, указанные в asap2setup.tlc

    • Статические разделы файла, такие как заголовок и конец файла, A2ML, MOD_COMMON, и т. д. Они указаны в asap2userlib.tlc.

    • Задайте внешний вид динамического содержимого файла ASAP2, изменив существующие шаблоны ASAP2 или определив новые шаблоны ASAP2. Затронутые разделы файла ASAP2 включают

      RECORD_LAYOUT: изменение частей файлов шаблонов ASAP2.

      CHARACTERISTIC: изменение частей файлов шаблонов ASAP2. Дополнительные сведения об изменении внешнего вида CHARACTERISTIC записи см. в разделе Шаблоны ASAP2.

    • MEASUREMENT: Они указаны в asap2userlib.tlc.

    • COMPU_METHOD: Они указаны в asap2userlib.tlc.

ASAP2 Шаблоны

Внешний вид CHARACTERISTIC записи в файле ASAP2 управляются с использованием различных шаблонов для каждого типа CHARACTERISTIC. asap2/user папка содержит файлы определения шаблона для скаляров, 1-D блоки Справочной таблицы и 2-е блоки Справочной таблицы. Можно изменить эти файлы определений шаблонов или при необходимости создать дополнительные шаблоны.

Процедура создания нового шаблона ASAP2 следующая:

  1. Создайте файл определения шаблона. См. раздел Создание файлов определений шаблонов.

  2. Включите файл определения шаблона в путь TLC. Путь указан в файле установки ASAP2, asap2setup.tlc.

Создание файлов определений шаблонов

В этом разделе описываются компоненты, составляющие файл определения шаблона ASAP2. Это описание представлено в виде примеров кода из asap2lookup1d.tlc, файл определения шаблона для Lookup1D шаблон. Этот шаблон соответствует Lookup1D группа параметров.

Примечание

При создании нового шаблона используйте соответствующее имя группы параметров вместо Lookup1D в показанном коде.

Функция регистрации шаблона

Входной аргумент - это имя группы параметров, связанной с этим шаблоном:

%<LibASAP2RegisterTemplate("Lookup1D")>
Функция

определения имени RECORD_LAYOUT

Имена макетов записей (псевдонимы) могут быть произвольно заданы для каждого типа данных. Эта функция используется другими компонентами этого файла.

%function ASAP2UserFcnRecordLayoutAlias_Lookup1D(dtId) void
  %switch dtId
  %case tSS_UINT8
    %return "Lookup1D_UBYTE"
  ...
  %endswitch
%endfunction

Функция для записи определений RECORD_LAYOUT

Эта функция записывает RECORD_LAYOUT определения, связанные с этим шаблоном. Функция вызывается встроенными функциями, задействованными в процессе создания файлов ASAP2. Имя функции должно быть определено, как показано на рисунке, с именем шаблона после подчеркивания:

%function ASAP2UserFcnWriteRecordLayout_Lookup1D() Output
  /begin RECORD_LAYOUT 
%<ASAP2UserFcnRecordLayoutAlias_Lookup1D(tSS_UINT8)>
    ...
  /end   RECORD_LAYOUT
%endfunction

Функция для записи ПРИЗНАКА

Эта функция записывает CHARACTERISTIC связан с этим шаблоном. Функция вызывается встроенными функциями, задействованными в процессе создания файлов ASAP2. Имя функции должно быть определено, как показано на рисунке, с именем шаблона после подчеркивания.

Входной аргумент этой функции является указателем на запись группы параметров. Показанный пример предназначен для Lookup1D группа параметров, имеющая два члена. Ссылки на связанные x и y записи данных получаются из записи группы параметров, как показано на рисунке.

Эта функция вызывает ряд встроенных функций для получения требуемой информации. Например, LibASAP2GetSymbol возвращает символ (имя) для указанной записи данных:

%function ASAP2UserFcnWriteCharacteristic_Lookup1D(paramGroup) 
Output
  %assign xParam = paramGroup.Member[0].Reference
  %assign yParam = paramGroup.Member[1].Reference
  %assign dtId = LibASAP2GetDataTypeId(xParam)
    /begin CHARACTERISTIC
     /* Name */              %<LibASAP2GetSymbol(xParam)>
     /* Long identifier */   "%<LibASAP2GetLongID(xParam)>"
     ...
    /end CHARACTERISTIC
%endfunction

Настройка имен методов вычислений

В сформированных файлах ASAP2 методы вычисления преобразуют внутреннее представление измеренных и калибровочных величин электронного блока управления (ЭБУ) в представление, ориентированное на физическую модель. Программное обеспечение Simulink Coder™ предоставляет возможность настройки имен методов вычислений. Можно предоставить имена, которые являются более интуитивно понятными, улучшают удобочитаемость ASAP2 файлов или соответствуют организационным требованиям.

Для настройки имен методов вычислений используйте функцию MATLAB getCompuMethodName, которая определена в matlabroot/toolbox/rtw/targets/asap2/asap2/user/getCompuMethodName.m.

getCompuMethodName функция создает имя метода вычисления. Прототипом функции является

cmName = getCompuMethodName(dataTypeName, cmUnits)

где dataTypeName - имя типа данных, связанного с методом вычисления, cmUnits - единицы измерения, указанные в Unit свойство Simulink.Parameter или Simulink.Signal объект (например, rpm или m/s), и cmName возвращает имя построенного метода вычисления.

Имя по умолчанию, возвращаемое функцией, имеет формат

<localPrefix><datatype>_<cmUnits>

где

  • <local_Prefix> является локальным префиксом, CM_, определено в matlabroot/toolbox/rtw/targets/asap2/asap2/user/getCompuMethodName.m.

  • <datatype> и <cmUnits> являются аргументами, указанными для getCompuMethodName функция.

Кроме того, в созданном файле ASAP2 созданное имя имеет префикс <ASAP2CompuMethodName_Prefix>, префикс модели, определенный в matlabroot/toolbox/rtw/targets/asap2/asap2/user/asap2setup.tlc.

Например, при вызове getCompuMethodName функции с помощью dataTypeName аргумент 'int16' и cmUnits аргумент 'm/s'и создайте файл ASAP2 для модели с именем myModelимя метода вычисления появится в сгенерированном файле следующим образом:

/begin COMPU_METHOD
   /* Name of CompuMethod */ myModel_CM_int16_m_s
   /* Units */ "m/s"
   ...
/end COMPU_METHOD

Подавление методов вычисления для FIX_AXIS

Версии 1.51 и более поздние спецификации ASAP2 гласят, что для определенных случаев описаний осей таблицы поиска (целочисленный тип данных и отсутствие единиц документации) метод вычисления не требуется, и параметр Conversion Method должен быть установлен в значение NO_COMPU_METHOD. Можно управлять подавлением методов вычислений при отсутствии необходимости с помощью параметра TLC (Target Language Compiler). ASAP2GenNoCompuMethod. Этот параметр TLC по умолчанию отключен. Если эта опция включена, ASAP2 генерация файла не создает методы вычисления для описаний осей таблицы поиска, когда это не требуется, и вместо этого генерирует значение. NO_COMPU_METHOD. Например:

/begin CHARACTERISTIC
/* Name            */
lu1d_fix_axisTable_data
...
/begin AXIS_DESCR
    ...	
    /* Conversion Method    */
NO_COMPU_METHOD
    ...
/end CHARACTERISTIC

ASAP2GenNoCompuMethod параметр определен в matlabroot/toolbox/rtw/targets/asap2/asap2/user/asap2setup.tlc.

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