exponenta event banner

Конфигурирование интерфейса данных

Embedded Coder ® сокращает усилия по настройке интерфейсов данных и функций, предоставляя способ задания конфигураций по умолчанию для категорий элементов данных и функций в модели. Применение конфигураций по умолчанию позволяет сэкономить время и снизить риск появления ошибок в коде, особенно для более крупных моделей и моделей, из которых создается многоэкземплярный код. После применения конфигураций по умолчанию можно выборочно переопределить настройки по умолчанию для отдельных элементов и функций данных.

Настройка интерфейса данных модели rtwdemo_roll путем конфигурирования функции roll_control_step кому:

  • Считывание входных данных из глобальных переменных, объявленных и определенных во внешних файлах roll_input_data.h и roll_input_data.c.

  • Запись выходных данных в глобальные переменные, объявленные генератором кода в output_data.h и определяет в output_data.c.

Для внесения этих изменений в окне команд MATLAB ® скопируйте эти файлы внешнего кода в текущую рабочую папку MATLAB.

copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','roll_input_data.c'));
copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','roll_input_data.h'));
copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','roll_heading_mode.c'));
copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','roll_heading_mode.h'));

Внесенные изменения конфигурации интерфейса данных зависят от доступности этих файлов для создания кода и процесса построения. Процесс построения компилирует созданный код с кодом, который находится в этих файлах.

Настройка генерации кода по умолчанию для данных

Настройка конфигураций генерации кода по умолчанию для входов и выходов модели.

  1. На вкладке Код C выберите Интерфейс кода > Сопоставления кодов по умолчанию.

  2. Настройте блоки ввода на корневом уровне модели для отображения в сгенерированном коде в виде отдельных глобальных переменных, определенных внешним кодом. В редакторе сопоставлений кодов в разделе «Входы и выходы» выберите категорию «Входы». Задать класс хранения по умолчанию как ImportFromFile.

    С помощью этого параметра созданный код не определяет глобальные переменные, представляющие данные ввода. Вместо этого #include оператор включает файл заголовка, который объявляет входные переменные. Имя файла заголовка задается с помощью инспектора свойств.

  3. В инспекторе свойств задайте для свойства HeaseFile значение roll_input_data.h.

  4. Чтобы увидеть, как extern объявления во внешнем файле заголовка roll_input_data.h имя входных переменных, в окне команд MATLAB откройте roll_input_data.h находится в текущей рабочей папке.

    extern boolean_T AP_Eng;
    extern real32_T HDG_Ref;
    extern real32_T Rate_FB;
    extern real32_T Phi;
    extern real32_T Psi;
    extern real32_T TAS;
    extern real32_T Turn_Knob;
    
  5. Настройте правило именования генерации кода для глобальных переменных. По умолчанию генератор кода называет глобальные переменные префиксом rt. Чтобы генератор кода создал код, соответствующий объявлениям внешних переменных в roll_input_data.hнастройте правило именования генерации кода для глобальных переменных соответствующим образом.

    1. Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters). На панели инструментов на вкладке «Код C» нажмите кнопку «Параметры».

    2. Перейдите в область Создание кода > Идентификаторы.

    3. Задать для параметра Глобальные переменные правило именования $N$M (снимите rt префикс). Символ $N представляет имя элемента данных в модели, например имя блока Inport или Outport. Символ $M представляет собой текст, изменяющий имя, который при необходимости вставляется генератором кода во избежание конфликтов имен с другими глобальными переменными в коде.

    4. Примените изменение.

  6. Настройте блоки Outport на корневом уровне модели для отображения в сгенерированном коде в виде отдельных глобальных переменных. В редакторе сопоставлений кодов на вкладке «Значения по умолчанию» для категории «Исходящие порты» установите для параметра «Класс хранилища» значение ExportToFile.

    Созданный код объявляет и определяет выходные переменные в файлах заголовков и определений, заданных инспектором свойств.

  7. В Инспекторе свойств укажите имена созданных файлов заголовков и определений. Задать для свойства HeaseFile значение roll_output_data.h и свойство DefinityFile to roll_output_data.c.

  8. Настройка генерации кода для модели для включения внешних исходных файлов roll_input_data.c и roll_heading_mode.c. В диалоговом окне «Параметры конфигурации» выберите «Создание кода» > «Пользовательский код» > «Дополнительная информация о построении» > «Исходные файлы». roll_input_data.c roll_heading_mode.c. Затем нажмите «Применить» и «ОК».

  9. Сохраните модель. Восстановите код, нажав кнопку «Построить».

    Ошибка компилятора указывает на эту переменную HDG_Mode не объявлен. Эта переменная не объявлена в файле заголовка roll_input_data.h, который был объявлен в качестве файла заголовка по умолчанию для ввода. Эту ошибку можно исправить в следующем разделе данного учебного пособия.

    Модель настроена на открытие отчета о создании кода после завершения создания кода. Сверните это окно отчета для дальнейшего изучения в этом учебном пособии.

  10. Блоки ввода настраиваются для использования внешнего файла заголовка для объявления и определения входных переменных. В ракурсе «Код» подтвердите, что созданный код включает этот внешний файл заголовка путем поиска roll_input_data.h.

  11. Поиск корневого уровня Имя блока ввода, HDG_Ref. По мере ввода выберите предложение поиска с зеленым цветом. V значок. Это предложение поиска находит экземпляры HDG_Ref используется в качестве переменной в созданном коде. Подтвердить, что HDG_Ref определяется как отдельная глобальная переменная.

  12. В модели, rtwdemo_rollщелкните на блоке «Исходящий» Ail_Cmd. Наведите курсор на многоточие над блоком и выберите «Перейти к коду». Представление «Код» выделяет код в rtwdemo_roll.c соответствует блоку. В коде наведите курсор на многоточие над выходной переменной. Ail_Cmd. В диалоговом окне отслеживания отображаются определения переменных и элементы модели, соответствующие коду. Диалоговое окно подтверждает, что Ail_Cmd определяется как отдельная глобальная переменная. Щелкните код определения, чтобы увидеть определение в output_data.c.

Переопределить параметры по умолчанию для отдельных элементов данных

Параметры, выбранные для категории в разделе Значения по умолчанию (Data Defaults), применяются к элементам этой категории в модели. Чтобы переопределить параметры по умолчанию для отдельного элемента данных, используйте редактор сопоставлений кода.

При создании кода после настройки параметров по умолчанию для входов и выходов ошибка компилятора указывала на эту переменную HDG_Mode не объявлен. Эту ошибку можно исправить, переопределив конфигурацию по умолчанию для блока Inport HDG_Mode.

  1. В редакторе сопоставлений кодов на вкладке «Inports» выберите источник HDG_Mode.

  2. Задайте для класса хранения значение ImportFromFile.

  3. В инспекторе свойств задайте для параметра «Идентификатор» значение HDG_Mode и файл заголовка в roll_heading_mode.h.

    На основе этих параметров генератор кода импортирует объявление для внешней переменной. HDG_Mode из файла заголовка roll_heading_mode.h.

    extern boolean_T HDG_Mode;
    
  4. Сохраните модель и восстановите код.

    Сверните окно отчета о создании кода для исследования позже в этом учебном пособии.

  5. В представлении «Код» выполните поиск roll_heading_mode.h и подтвердите, что он включен в созданный код с файлом конфигурации по умолчанию roll_input_data.h.

  6. Поиск HDG_Mode и подтвердить, что она определена как отдельная глобальная переменная.

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