exponenta event banner

Моделирование внешнего режима с использованием связи XCP

Во внешнем режиме моделирования можно настраивать параметры в реальном времени и контролировать целевые сигналы приложений. С помощью приложения Run on Custom Hardware (Запуск на пользовательском оборудовании) можно настроить и запустить на компьютере разработчика или на пользовательском аппаратном внешнем режиме моделирования, использующем канал связи XCP.

Для моделирования внешнего режима:

  1. Создайте целевое приложение на компьютере разработчика.

  2. Развертывание целевого приложения на целевом оборудовании.

  3. Подключите Simulink ® к целевому приложению, работающему на целевом оборудовании.

  4. Запустите выполнение сгенерированного кода на целевом оборудовании.

Запуск моделирования внешнего режима XCP на компьютере разработки

Сконфигурируйте и запустите моделирование внешнего режима с использованием протокола связи XCP. Во время моделирования:

  • Мониторинг сигнала осуществляется с помощью блока «Область», блока «Панель мониторинга» и инспектора данных моделирования.

  • Настройте параметр с помощью блока «Панель мониторинга».

Конфигурирование мониторинга сигналов и настройки параметров для XCP

  1. Создайте папку для этого примера.

    mkdir ext_mode_xcp_example
    cd ext_mode_xcp_example

  2. Откройте Simulink и создайте простую модель. xcpExample, который содержит следующие блоки:

    • Синусоидальная волна

    • Выгода

    • Объем

    • Половинный калибр

    • Кнопка

  3. Дважды щелкните блок синусоидальной волны. Установите для параметра Время выборки значение 0,1 и нажмите кнопку ОК.

  4. Дважды щелкните блок усиления. Установите для параметра Коэффициент усиления значение 2 и нажмите кнопку ОК.

  5. Подключите блок синусоидальной волны к блоку усиления и назовите соединение, например: Test Signal.

  6. Подключите блок усиления к блоку области и присвойте ему имя, например: Output Signal.

  7. Настроить Test Signal для ведения журнала:

    1. Выбрать Test Signal.

    2. На вкладке Signal в разделе Monitor выберите Log Signals.

    Если регистрация сигналов не включена, потоковая передача невозможна Test Signal в инспектор данных моделирования.

  8. Сконфигурируйте блок половинного датчика для контроля значения Test Signal:

    1. Дважды щелкните на блоке «Половинный калибр».

    2. В редакторе Simulink выберите Test Signal.

    3. В диалоговом окне «Параметры блока»:

      • Подключите блок к Test Signal.

      • В поле Максимум введите значение, например: 1.

    4. Нажмите кнопку ОК.

  9. Сконфигурируйте блок Knob для настройки параметра Amplitude блока синусоидальной волны:

    1. Дважды щелкните на блоке ручки.

    2. В редакторе Simulink выберите блок Sine Wave.

    3. В диалоговом окне «Параметры блока»:

      • Подключите блок к параметру амплитуды блока синусоидальной волны.

      • В полях Минимум и Максимум введите значения, например 0,1 и 1 соответственно.

    4. Нажмите кнопку ОК.

  10. Сохранить модель как xcpExample.

Укажите оборудование и подготовьте модель

  1. На вкладке «Приложения» на панели инструментов Simulink в разделе «Установка для запуска на оборудовании» нажмите кнопку «Выполнить на пользовательском оборудовании». Во всплывающем окне «Запуск на пользовательском оборудовании» нажмите кнопку «Готово».

  2. В разделе Оборудование укажите целевой системный файл. В этом примере используется значение по умолчанию, grt.tlc. При наличии встроенного кодера ® можно указатьert.tlc.

  3. В коллекции Подготовка (Prepare) в разделе Конфигурация модели (Model Configuration) щелкните Настройки оборудования (Hardware Settings). Откроется диалоговое окно Configuration Parameters (Параметры конфигурации), в котором отображаются параметры реализации оборудования, определенные целевым файлом системы.

  4. На панели решателя:

    1. В поле Тип укажите Fixed-step.

    2. В разделе Сведения о решателе в поле Размер фиксированного шага укажите значение, например 0,1.

  5. На панели «Создание кода» > «Оптимизация» задайте для параметра «Поведение по умолчанию» значение Tunable.

  6. На панели «Создание кода» > «Интерфейс» установите флажок «Внешний режим».

  7. Задать для транспортного слоя значение XCP on TCP/IP, который определяет ext_xcp для имени MEX-файла.

  8. Нельзя отключить флажок Статическое выделение памяти. Значение размера буфера статической памяти определяет размер ведомой памяти XCP, выделенной для регистрации сигналов. В этом примере используется значение по умолчанию.

  9. Если целевой системный файл ert.tlc, на панели «Создание кода» > «Шаблоны»:

    • Установите флажок Создать пример основной программы.

    • Установить для целевой операционной системы значение BareBoardExample.

      Использование документированных API уровня абстракции внешнего режима, доступных в matlabroot\toolbox\coder\xcp\src\target\ext_mode\include\ext_mode.h, генератор кода создает пример, показывающий, как можно обеспечить целевое соединение внешнего режима XCP для пустой платы, которая не работает под управлением операционной системы.

  10. Нажмите кнопку ОК, затем сохраните модель.

Создание и запуск целевого приложения

В разделе Запуск на оборудовании:

  1. Чтобы задать значение по умолчанию для времени остановки моделирования, в поле Время остановки (Stop Time) укажите значение, например: inf.

  2. Щелкните. Программное обеспечение:

    1. Создает целевое приложение:

      • В Windows ® процесс сборки создает:

        • xcpExample.exe - Исполняемый файл.

        • xcpExample.pdb - Файл отладочных символов для сигналов и параметров.

      • В Linux ® процесс сборки помещает отладочную информацию формата DWF в созданный исполняемый файл ELF .xcpExample.

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

    3. Подключение Simulink к целевому приложению.

    4. Запускает созданный код модели.

    Чтобы выполнить эти действия отдельно, щелкните Монитор и настройка. В разделе Пошаговые команды (Step By Step Commands) щелкните:

    1. Сборка для мониторинга

    2. Развернуться

    3. Соединиться

    4. Начать

Мониторинг сигнала и параметра настройки

Вы можете контролировать Test Signal через:

  • Scope block -- Дважды щелкните на блоке.

  • Инспектор данных моделирования - нажмите кнопку Инспектор данных моделирования. При открытии инспектора данных моделирования установите флажок «Тестовый сигнал», в котором отображаются потоковые данные.

  • Блок половинного калибра.

Чтобы изменить амплитуду синусоидальной волны, поверните указатель на блоке Knob до требуемого значения.

В этой таблице описаны дополнительные способы настройки настраиваемых параметров блока во время моделирования.

ПодходПодробнее

Редактор данных модели

Чтобы настроить параметры с помощью редактора данных модели:

  1. На вкладке «Оборудование» редактора Simulink в разделе «Подготовка» нажмите кнопку «Настроить параметры», чтобы открыть редактор данных модели.

  2. Если требуется обновить несколько настраиваемых параметров одновременно, в разделе Подготовка (Prepare) щелкните Пакетный режим (Batch Mode).

  3. На вкладке Параметры (Parameters) Редактора данных модели (Model Data Editor) в столбце Значение (Value) укажите новые значения настраиваемых параметров.

  4. Если выбран пакетный режим, щелкните Обновить все параметры (Update All Parameters) или нажмите клавиши Ctrl + D. Simulink одновременно загружает новые значения в целевое приложение .

    Если пакетный режим не выбран, то сразу после указания нового значения Simulink загружает новое значение в целевое приложение.

Дополнительные сведения см. в разделе Настройка свойств данных с помощью редактора данных модели.

диалоговое окно «Параметр блока»

Чтобы настроить параметры в диалоговом окне «Параметр блока»:

  1. Для каждого блока, который требуется обновить:

    1. Дважды щелкните блок, чтобы открыть диалоговое окно «Параметр блока».

    2. В полях параметров укажите новые значения параметров.

    3. Нажмите «Применить» или «ОК».

  2. Если выбран пакетный режим, щелкните Обновить все параметры (Update All Parameters) или нажмите клавиши Ctrl + D. Simulink одновременно загружает новые значения в целевое приложение .

    Если пакетный режим не выбран, то сразу после нажатия кнопки «Применить» или «ОК» Simulink загружает новые значения блоков в целевое приложение.

Рабочее пространство MATLAB ®

Если параметры блока являются переменными рабочего пространства MATLAB:

  1. В окне команд присвойте переменные новые значения.

  2. На вкладке «Оборудование» редактора Simulink в разделе «Подготовка» нажмите «Обновить все параметры» (Ctrl + D). Simulink загружает новые значения в целевое приложение.

Дополнительные сведения см. в разделе Создание и редактирование переменных.

Дополнительные сведения о настройке параметров с помощью сгенерированного кода см. в разделе Моделирование внешнего режима с помощью TCP/IP или последовательного соединения и создание настраиваемого калибровочного параметра в разделе Сгенерированный код (встроенный кодер).

Если модель содержит диаграмму Stateflow ®, можно просмотреть активность состояния. Дополнительные сведения см. в разделе Анимация диаграмм статусов (Stateflow Charts).

Остановить конечное приложение

Чтобы остановить выполнение сгенерированного кода модели до StopTime достигается и отключается целевое приложение, на панели инструментов Simulink Editor нажмите кнопку Stop.

Чтобы отключить целевое приложение от Simulink без остановки выполнения кода, нажмите кнопку. Затем в разделе Пошаговые команды щелкните Отключить.

Мониторинг запускаемого сигнала для моделирования внешнего режима XCP

Для моделирования внешнего режима XCP можно настроить триггер, который запускает загрузку данных целевого приложения для мониторинга сигналов в Simulink.

  1.  Создайте простую модель в локальной папке.

  2. В Simulink Editor настройте эти сигналы для регистрации, щелкнув правой кнопкой мыши по каждому сигналу и выбрав пункт Log Selected Signals:

    • test_signal

    • test_carrier

    • test_output

    • cmp_output

  3. На вкладке «Приложения» на панели инструментов Simulink в разделе «Установка для запуска на оборудовании» нажмите кнопку «Выполнить на пользовательском оборудовании». Во всплывающем окне «Запуск на пользовательском оборудовании» нажмите кнопку «Готово».

  4. В коллекции Подготовка (Prepare) в разделе Конфигурация модели (Model Configuration) щелкните Настройки оборудования (Hardware Settings).

  5. На панели Решатель в поле Тип укажите Fixed-step.

  6. На панели «Создание кода» > «Интерфейс» установите флажок «Внешний режим».

  7. Задать для транспортного слоя значение XCP on TCP/IP, который определяет ext_xcp для имени MEX-файла.

  8. Нажмите кнопку ОК, затем сохраните модель.

  9. Чтобы открыть диалоговое окно External Signal & Triggering, в коллекции Prepare (Подготовка) в разделе Signal Monitoring & Tracing (Мониторинг и трассировка сигналов) щелкните Control Panel (Панель управления).

  10. В разделе Конфигурация щелкните Сигнал и срабатывание (Signal & Triggering), чтобы открыть диалоговое окно Внешний сигнал и срабатывание (External Signal & Triggering).

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

    • Установлен флажок Выбрать все - в диалоговом окне отображается X в каждой строке столбца Selected. Во время моделирования можно контролировать все регистрируемые сигналы.

    • Источник установлен в ручной режим - Панель управления внешним режимом обеспечивает ручное управление загрузкой данных, например, кнопка Arm Trigger.

    • Флажок Рука при подключении к цели установлен - при подключении Simulink к целевому приложению срабатывает триггер.

  11. Нажмите кнопку ОК.

  12. На вкладке «Оборудование» в редакторе Simulink в разделе «Запуск на оборудовании»:

    1. В поле Время остановки укажите значение, например: inf.

    2. Сохраните модель.

    3. Щелкните. Программное обеспечение:

      1. Создает целевое приложение:

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

      3. Подключение Simulink к целевому приложению.

      4. Запускает созданный код модели.

Чтобы просмотреть отображение области, дважды щелкните ScopeA и ScopeB.

Для контроля сигналов в инспекторе данных моделирования в разделе «Результаты проверки» нажмите кнопку «Инспектор данных».

С помощью панели управления внешним режимом можно приостановить или возобновить регистрацию и мониторинг сигналов. В разделе Подключение и запуск щелкните Отмена триггера или Рычаг триггера соответственно.

Чтобы остановить выполнение целевого приложения и отключить Simulink от целевой среды, щелкните Остановить код в реальном времени.

Для получения информации о параметрах контроля сигнала и триггера см. Панель управления внешним режимом XCP и диалоговое окно внешнего сигнала и триггера XCP.

Запуск моделирования внешнего режима XCP из командной строки

Команды можно использовать для выполнения моделирования внешнего режима XCP. Для извлечения и установки значений параметров модели используйте get_param и set_param команды.

Для выполнения этих команд необходимо открыть модель Simulink и запустить целевое приложение.

  1. Установите режим моделирования модели во внешний режим.

    set_param(gcs,'SimulationMode','external');

  2. Подключите Simulink к целевому приложению.

    set_param(gcs,'SimulationCommand','connect')

  3. Запустить созданный код модели.

    set_param(gcs,'SimulationCommand','start');

  4. Чтобы настроить параметр, измените его значение переменной рабочего пространства с помощью команды line. Например, если значение параметра блока указано как Simulink.Parameter , назначьте новое значение Value собственность.

    myParamObj.Value = 5.23;

  5. Чтобы загрузить новое значение в целевое приложение, обновите модель.

    set_param(gcs,'SimulationCommand','update');

  6. Остановите целевое приложение и отключите Simulink от целевой среды.

    set_param(gcs,'SimulationCommand','stop');

    Чтобы отключить Simulink от целевого приложения без остановки выполнения сгенерированного кода, выполните следующую команду:

    set_param(gcs,'SimulationCommand','disconnect');

set_param команды, которые используют 'SimulationCommand' аргументы асинхронны. При последовательном выполнении команд из сценария каждая команда запускается без ожидания выполнения предыдущей команды. Для проверки выполнения каждой команды в сценарии используйте команду get_param с помощью команды 'SimulationStatus' аргумент. Например, для шагов 1-3 укажите следующие команды в сценарии:

set_param(gcs,'SimulationMode','external');
set_param(gcs,'SimulationCommand','connect');

isExternalSimulationActive = false;
while ~isExternalSimulationActive
    simStatus = get_param(gcs, 'SimulationStatus');
    isExternalSimulationActive = strcmp(simStatus, 'external');
end
set_param(gcs,'SimulationCommand','start');

Дополнительные сведения см. в разделе Программное моделирование.

Средство просмотра диагностики отображает сообщения об ошибках, созданные get_param и set_param команды.

Аргументы целевого приложения

Целевое приложение можно запустить с дополнительными аргументами. Дополнительные аргументы можно передать целевому приложению через пользовательскую реализацию средства запуска.

АргументОписание
-w

Укажите, что целевое приложение входит и остается в состоянии ожидания, пока не получит сообщение от Simulink.

Если не указать -w, целевое приложение немедленно выполняет код модели. Код модели запускается со значениями параметров с момента создания модели.

-tf time

Переопределение параметра модели StopTime.

Определить time в:

  • Секунды, если PurelyIntegerCode имеет значение 'off'.

  • Шаги базовой ставки, если PurelyIntegerCode имеет значение 'on'.

-tf inf указывает, что модель работает неопределенно долго при выполнении кода модели.

Для моделирования внешнего режима на основе хоста можно указать дополнительные rtiostream (Embedded Coder) аргументы.

АргументОписание

-verbose level

Укажите уровень детализации:

  • 0 -- Нет информации

  • 1 -- Подробная информация

-port number

Для XCP on TCP/IP транспортный уровень, укажите номер порта сервера TCP/IP. Используйте целое число от 256 до 65535. Значение по умолчанию - 17725.

Для XCP on Serial транспортный уровень, укажите идентификатор последовательного порта. Например:

В Windows, 'COM1' или 1 для COM1, 'COM2' или 2 для COM2и так далее.

В Linux, '/dev/ttyS0'и так далее.

-baud value

Для XCP on Serial транспортный уровень, укажите значение в бодах: 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600 (по умолчанию) или 115200.

Ограничения внешнего режима XCP

В этой таблице описаны ограничения, применимые к моделированию внешнего режима, использующего связь XCP.

ОсобенностьПодробнее

Обновления параметров, изменяющие структуру модели

Вы не можете изменить:

  • Количество состояний, входов или выходов блока

  • Время выборки или количество раз выборки

  • Алгоритм интеграции для непрерывных систем

  • Имя модели или блока

При обновлении параметров, изменяющих структуру модели, необходимо перестроить целевое приложение.

Можно изменить параметры числителя и многочлена знаменателя для блоков Transfer Fcn, Discrete Transfer Fcn и Discrete Filter, если количество состояний не изменяется.

Нельзя изменять нулевые значения в блоках State-Space, Zero-Pole и Discrete Zero-Pole в пользовательских или вычисляемых параметрах, то есть матрицах A, B, C и D, полученных преобразованием нулевого полюса в state-space.

В блоке State-Space, если указать матрицы в управляемой канонической реализации, то допускаются изменения в матрицы A, B, C и D, которые сохраняют эту реализацию и размеры матриц.

Если блок-схема Simulink не соответствует целевому приложению, Simulink выдает ошибку, указывающую на несоответствие контрольных сумм. Контрольные суммы учитывают верхние модели, но не ссылочные модели. Чтобы перестроить целевое приложение, используйте обновленную блок-схему.

Отображение значения сигнала

Графическое отображение значений сигналов во время моделирования не поддерживается. Например, нельзя использовать пункты меню «Показать метки значений при наведении», «Переключить метки значений при щелчке» и «Показать метку значений выбранного порта» меню «Моделирование». Дополнительные сведения см. в разделе Отображение значений сигналов в диаграммах модели.

Архивирование данных

Функции архивирования данных, доступные на панели управления внешним режимом, не поддерживаются. Для сбора и экспорта данных можно использовать инспектор данных моделирования.

Переопределение параметров регистрации сигналов

При использовании селектора регистрации сигналов для переопределения параметров регистрации сигналов элементы управления для переопределения параметров точек данных прореживания и ограничения не поддерживаются.

Формат символов отладки компилятора

Схема инструментов должна генерировать отладочную информацию в одном из следующих форматов:

  • КАРЛИК

  • PDB

Встроенные параметры

Если установить DefaultParameterBehavior кому 'Inlined'генератор кода встраивает в создаваемый код числовые значения параметров модели вместо символьных имен параметров. Вы можете использовать Simulink.Parameter объекты для удаления параметров из встроенной линии и объявления параметров настраиваемыми. Однако при подключении Simulink к целевому приложению числовые значения настраиваемых параметров не загружаются в модель автоматически. Simulink выдает предупреждение.

Глобальные переменные

Сигналы, параметры и состояния должны быть определены как глобальные переменные. Целевые ячейки памяти, в которых хранятся переменные, должны находиться в диапазоне 0 - 4294967295.

Структуры параметров

Невозможно настроить параметры, являющиеся структурами.

Чистый целочисленный код

Поддерживается чистый целочисленный код. Для генерации кода, если PurelyIntegerCode является 'on', указать FixedStep с разрешением, большим или равным 1 микросекунде. Например, укажите 1.000001, но не 1.0000001.

Если не указать -tf finalTime в команде выполнения целевое приложение выполняет сгенерированный код модели бесконечно, игнорируя StopTime.

При указании -tf finalTime в команде выполнения:

  • finalTime значение представляет шаги базовой скорости, а не секунды.

  • Максимальное значение для finalTime, в клещах, является MAX_int32_T.

Сигналы переменного размера

Загрузка сигналов переменного размера не поддерживается.

Поддержка компилятора

lcc-win64 не поддерживается.

Гранулярность адреса

Оконечное оборудование, использующее адреса слов, не поддерживается.

Переносные размеры слов

Когда производственное целевое оборудование является адресуемым по словам, создание целевого приложения на основе хоста с использованием переносимых размеров слов не поддерживается. Рабочее оконечное оборудование должно поддерживать 8-разрядные, 16-разрядные и 32-разрядные собственные типы данных.

Блоки Scope и Floating Scope и средство просмотра Scope Viewer

Некоторые типы сигнальных данных не поддерживаются. При моделировании выводится предупреждение.

Плавающие блоки области и средство просмотра областиНельзя использовать блоки плавающей области и средства просмотра области для мониторинга сигналов в ссылочных моделях во время моделирования внешнего режима. Для мониторинга ссылочных сигналов модели включите регистрацию сигналов и используйте инспектор данных моделирования.

Области в ссылочных моделях

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

Ненулевое время начала моделирования

Ненулевое время начала моделирования не поддерживается. Используйте значение по умолчанию для параметра «Решатель» > «Время начала». 0.0.

Промежуточные значения шага

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

Для каждого временного шага во внешнем моделировании Simulink выгружает из целевого приложения только конечные значения таких блоков. Simulink не загружает промежуточные значения, сгенерированные во время шага.

Данные в области файлов

Данные в области файлов не поддерживаются. Например, элементы данных, к которым применяется встроенный пользовательский класс хранения FileScope. При моделировании выводится предупреждение.

Для получения дополнительной информации о FileScope класс хранения см. в разделе Выбор класса хранения для управления представлением данных в сгенерированном коде (встроенный кодер).

Генерация основного кода строки

Код, созданный с использованием основного формата строки, не поддерживается.

Одновременное выполнение

Параллельное выполнение не поддерживается. Если целевой системный файл ert.tlc и целевая операционная система NativeThreadsExample, невозможно построить целевое приложение.

Пример VxWorks ®

Если целевой системный файл ert.tlc и целевая операционная система VxWorksExample, невозможно построить целевое приложение.

Сохранение выходных данных моделирования как отдельного объектаСохранение выходных данных моделирования внешнего режима XCP как отдельного объекта не поддерживается. При моделировании выводится предупреждение.

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

Внешние веб-сайты