Во внешнем режиме моделирования можно настраивать параметры в реальном времени и контролировать целевые сигналы приложений. С помощью приложения Run on Custom Hardware (Запуск на пользовательском оборудовании) можно настроить и запустить на компьютере разработчика или на пользовательском аппаратном внешнем режиме моделирования, использующем канал связи XCP.
Для моделирования внешнего режима:
Создайте целевое приложение на компьютере разработчика.
Развертывание целевого приложения на целевом оборудовании.
Подключите Simulink ® к целевому приложению, работающему на целевом оборудовании.
Запустите выполнение сгенерированного кода на целевом оборудовании.
Сконфигурируйте и запустите моделирование внешнего режима с использованием протокола связи XCP. Во время моделирования:
Мониторинг сигнала осуществляется с помощью блока «Область», блока «Панель мониторинга» и инспектора данных моделирования.
Настройте параметр с помощью блока «Панель мониторинга».
Создайте папку для этого примера.
mkdir ext_mode_xcp_example cd ext_mode_xcp_example
Откройте Simulink и создайте простую модель. xcpExample, который содержит следующие блоки:
Синусоидальная волна
Выгода
Объем
Половинный калибр
Кнопка
Дважды щелкните блок синусоидальной волны. Установите для параметра Время выборки значение 0,1 и нажмите кнопку ОК.
Дважды щелкните блок усиления. Установите для параметра Коэффициент усиления значение 2 и нажмите кнопку ОК.
Подключите блок синусоидальной волны к блоку усиления и назовите соединение, например: Test Signal.
Подключите блок усиления к блоку области и присвойте ему имя, например: Output Signal.
Настроить Test Signal для ведения журнала:
Выбрать Test Signal.
На вкладке Signal в разделе Monitor выберите Log Signals.
Если регистрация сигналов не включена, потоковая передача невозможна Test Signal в инспектор данных моделирования.
Сконфигурируйте блок половинного датчика для контроля значения Test Signal:
Дважды щелкните на блоке «Половинный калибр».
В редакторе Simulink выберите Test Signal.
В диалоговом окне «Параметры блока»:
Подключите блок к Test Signal.
В поле Максимум введите значение, например: 1.
Нажмите кнопку ОК.
Сконфигурируйте блок Knob для настройки параметра Amplitude блока синусоидальной волны:
Дважды щелкните на блоке ручки.
В редакторе Simulink выберите блок Sine Wave.
В диалоговом окне «Параметры блока»:
Подключите блок к параметру амплитуды блока синусоидальной волны.
В полях Минимум и Максимум введите значения, например 0,1 и 1 соответственно.
Нажмите кнопку ОК.
Сохранить модель как xcpExample.

На вкладке «Приложения» на панели инструментов Simulink в разделе «Установка для запуска на оборудовании» нажмите кнопку «Выполнить на пользовательском оборудовании». Во всплывающем окне «Запуск на пользовательском оборудовании» нажмите кнопку «Готово».
В разделе Оборудование укажите целевой системный файл. В этом примере используется значение по умолчанию, grt.tlc. При наличии встроенного кодера ® можно указатьert.tlc.
В коллекции Подготовка (Prepare) в разделе Конфигурация модели (Model Configuration) щелкните Настройки оборудования (Hardware Settings). Откроется диалоговое окно Configuration Parameters (Параметры конфигурации), в котором отображаются параметры реализации оборудования, определенные целевым файлом системы.
На панели решателя:
В поле Тип укажите Fixed-step.
В разделе Сведения о решателе в поле Размер фиксированного шага укажите значение, например 0,1.
На панели «Создание кода» > «Оптимизация» задайте для параметра «Поведение по умолчанию» значение Tunable.
На панели «Создание кода» > «Интерфейс» установите флажок «Внешний режим».
Задать для транспортного слоя значение XCP on TCP/IP, который определяет ext_xcp для имени MEX-файла.
Нельзя отключить флажок Статическое выделение памяти. Значение размера буфера статической памяти определяет размер ведомой памяти XCP, выделенной для регистрации сигналов. В этом примере используется значение по умолчанию.
Если целевой системный файл ert.tlc, на панели «Создание кода» > «Шаблоны»:
Установите флажок Создать пример основной программы.
Установить для целевой операционной системы значение BareBoardExample.
Использование документированных API уровня абстракции внешнего режима, доступных в , генератор кода создает пример, показывающий, как можно обеспечить целевое соединение внешнего режима XCP для пустой платы, которая не работает под управлением операционной системы.matlabroot\toolbox\coder\xcp\src\target\ext_mode\include\ext_mode.h
Нажмите кнопку ОК, затем сохраните модель.
В разделе Запуск на оборудовании:
Чтобы задать значение по умолчанию для времени остановки моделирования, в поле Время остановки (Stop Time) укажите значение, например: inf.
Щелкните.
Программное обеспечение:
Создает целевое приложение:
В Windows ® процесс сборки создает:
xcpExample.exe - Исполняемый файл.
xcpExample.pdb - Файл отладочных символов для сигналов и параметров.
В Linux ® процесс сборки помещает отладочную информацию формата DWF в созданный исполняемый файл ELF .xcpExample.
Запускает целевое приложение как отдельный процесс на компьютере разработчика.
Подключение Simulink к целевому приложению.
Запускает созданный код модели.
Чтобы выполнить эти действия отдельно, щелкните Монитор и настройка. В разделе Пошаговые команды (Step By Step Commands) щелкните:
Сборка для мониторинга
![]()
Развернуться
![]()
Соединиться
![]()
Начать
![]()
Вы можете контролировать Test Signal через:
Scope block -- Дважды щелкните на блоке.
Инспектор данных моделирования - нажмите кнопку Инспектор данных моделирования. При открытии инспектора данных моделирования установите флажок «Тестовый сигнал», в котором отображаются потоковые данные.
Блок половинного калибра.
Чтобы изменить амплитуду синусоидальной волны, поверните указатель на блоке Knob до требуемого значения.
В этой таблице описаны дополнительные способы настройки настраиваемых параметров блока во время моделирования.
| Подход | Подробнее |
|---|---|
Редактор данных модели | Чтобы настроить параметры с помощью редактора данных модели:
Дополнительные сведения см. в разделе Настройка свойств данных с помощью редактора данных модели. |
диалоговое окно «Параметр блока» | Чтобы настроить параметры в диалоговом окне «Параметр блока»:
|
Рабочее пространство MATLAB ® | Если параметры блока являются переменными рабочего пространства MATLAB:
Дополнительные сведения см. в разделе Создание и редактирование переменных. |
Дополнительные сведения о настройке параметров с помощью сгенерированного кода см. в разделе Моделирование внешнего режима с помощью TCP/IP или последовательного соединения и создание настраиваемого калибровочного параметра в разделе Сгенерированный код (встроенный кодер).
Если модель содержит диаграмму Stateflow ®, можно просмотреть активность состояния. Дополнительные сведения см. в разделе Анимация диаграмм статусов (Stateflow Charts).
Чтобы остановить выполнение сгенерированного кода модели до StopTime достигается и отключается целевое приложение, на панели инструментов Simulink Editor нажмите кнопку Stop.![]()
Чтобы отключить целевое приложение от Simulink без остановки выполнения кода, нажмите кнопку.
Затем в разделе Пошаговые команды щелкните Отключить.
Для моделирования внешнего режима XCP можно настроить триггер, который запускает загрузку данных целевого приложения для мониторинга сигналов в Simulink.
В Simulink Editor настройте эти сигналы для регистрации, щелкнув правой кнопкой мыши по каждому сигналу и выбрав пункт Log Selected Signals:
test_signal
test_carrier
test_output
cmp_output

На вкладке «Приложения» на панели инструментов Simulink в разделе «Установка для запуска на оборудовании» нажмите кнопку «Выполнить на пользовательском оборудовании». Во всплывающем окне «Запуск на пользовательском оборудовании» нажмите кнопку «Готово».
В коллекции Подготовка (Prepare) в разделе Конфигурация модели (Model Configuration) щелкните Настройки оборудования (Hardware Settings).
На панели Решатель в поле Тип укажите Fixed-step.
На панели «Создание кода» > «Интерфейс» установите флажок «Внешний режим».
Задать для транспортного слоя значение XCP on TCP/IP, который определяет ext_xcp для имени MEX-файла.
Нажмите кнопку ОК, затем сохраните модель.
Чтобы открыть диалоговое окно External Signal & Triggering, в коллекции Prepare (Подготовка) в разделе Signal Monitoring & Tracing (Мониторинг и трассировка сигналов) щелкните Control Panel (Панель управления).
В разделе Конфигурация щелкните Сигнал и срабатывание (Signal & Triggering), чтобы открыть диалоговое окно Внешний сигнал и срабатывание (External Signal & Triggering).

В этом диалоговом окне можно выбрать сигналы для мониторинга и настроить триггер для загрузки данных из целевого приложения. В этом примере используются настройки по умолчанию. Например:
Установлен флажок Выбрать все - в диалоговом окне отображается X в каждой строке столбца Selected. Во время моделирования можно контролировать все регистрируемые сигналы.
Источник установлен в ручной режим - Панель управления внешним режимом обеспечивает ручное управление загрузкой данных, например, кнопка Arm Trigger.
Флажок Рука при подключении к цели установлен - при подключении Simulink к целевому приложению срабатывает триггер.
Нажмите кнопку ОК.
На вкладке «Оборудование» в редакторе Simulink в разделе «Запуск на оборудовании»:
В поле Время остановки укажите значение, например: inf.
Сохраните модель.
Щелкните.
Программное обеспечение:
Создает целевое приложение:
Запускает целевое приложение как отдельный процесс на компьютере разработчика.
Подключение Simulink к целевому приложению.
Запускает созданный код модели.
Чтобы просмотреть отображение области, дважды щелкните ScopeA и ScopeB.
Для контроля сигналов в инспекторе данных моделирования в разделе «Результаты проверки» нажмите кнопку «Инспектор данных».
С помощью панели управления внешним режимом можно приостановить или возобновить регистрацию и мониторинг сигналов. В разделе Подключение и запуск щелкните Отмена триггера или Рычаг триггера соответственно.
Чтобы остановить выполнение целевого приложения и отключить Simulink от целевой среды, щелкните Остановить код в реальном времени.
Для получения информации о параметрах контроля сигнала и триггера см. Панель управления внешним режимом XCP и диалоговое окно внешнего сигнала и триггера XCP.
Команды можно использовать для выполнения моделирования внешнего режима XCP. Для извлечения и установки значений параметров модели используйте get_param и set_param команды.
Для выполнения этих команд необходимо открыть модель Simulink и запустить целевое приложение.
Установите режим моделирования модели во внешний режим.
set_param(gcs,'SimulationMode','external');
Подключите Simulink к целевому приложению.
set_param(gcs,'SimulationCommand','connect')
Запустить созданный код модели.
set_param(gcs,'SimulationCommand','start');
Чтобы настроить параметр, измените его значение переменной рабочего пространства с помощью команды line. Например, если значение параметра блока указано как Simulink.Parameter , назначьте новое значение Value собственность.
myParamObj.Value = 5.23;
Чтобы загрузить новое значение в целевое приложение, обновите модель.
set_param(gcs,'SimulationCommand','update');
Остановите целевое приложение и отключите 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. Если не указать |
-tf | Переопределение параметра модели Определить
|
Для моделирования внешнего режима на основе хоста можно указать дополнительные rtiostream (Embedded Coder) аргументы.
| Аргумент | Описание |
|---|---|
| Укажите уровень детализации:
|
| Для Для В Windows, В Linux, |
| Для |
В этой таблице описаны ограничения, применимые к моделированию внешнего режима, использующего связь 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 выдает ошибку, указывающую на несоответствие контрольных сумм. Контрольные суммы учитывают верхние модели, но не ссылочные модели. Чтобы перестроить целевое приложение, используйте обновленную блок-схему. |
Отображение значения сигнала | Графическое отображение значений сигналов во время моделирования не поддерживается. Например, нельзя использовать пункты меню «Показать метки значений при наведении», «Переключить метки значений при щелчке» и «Показать метку значений выбранного порта» меню «Моделирование». Дополнительные сведения см. в разделе Отображение значений сигналов в диаграммах модели. |
Архивирование данных | Функции архивирования данных, доступные на панели управления внешним режимом, не поддерживаются. Для сбора и экспорта данных можно использовать инспектор данных моделирования. |
| Переопределение параметров регистрации сигналов | При использовании селектора регистрации сигналов для переопределения параметров регистрации сигналов элементы управления для переопределения параметров точек данных прореживания и ограничения не поддерживаются. |
Формат символов отладки компилятора | Схема инструментов должна генерировать отладочную информацию в одном из следующих форматов:
|
Встроенные параметры | Если установить |
Глобальные переменные | Сигналы, параметры и состояния должны быть определены как глобальные переменные. Целевые ячейки памяти, в которых хранятся переменные, должны находиться в диапазоне 0 - 4294967295. |
Структуры параметров | Невозможно настроить параметры, являющиеся структурами. |
Чистый целочисленный код | Поддерживается чистый целочисленный код. Для генерации кода, если Если не указать При указании
|
Сигналы переменного размера | Загрузка сигналов переменного размера не поддерживается. |
Поддержка компилятора |
|
Гранулярность адреса | Оконечное оборудование, использующее адреса слов, не поддерживается. |
Переносные размеры слов | Когда производственное целевое оборудование является адресуемым по словам, создание целевого приложения на основе хоста с использованием переносимых размеров слов не поддерживается. Рабочее оконечное оборудование должно поддерживать 8-разрядные, 16-разрядные и 32-разрядные собственные типы данных. |
Блоки Scope и Floating Scope и средство просмотра Scope Viewer | Некоторые типы сигнальных данных не поддерживаются. При моделировании выводится предупреждение. |
| Плавающие блоки области и средство просмотра области | Нельзя использовать блоки плавающей области и средства просмотра области для мониторинга сигналов в ссылочных моделях во время моделирования внешнего режима. Для мониторинга ссылочных сигналов модели включите регистрацию сигналов и используйте инспектор данных моделирования. |
Области в ссылочных моделях | В иерархии моделей, если верхняя модель выполняется во внешнем режиме, области в ссылочных моделях не отображаются. Для мониторинга сигналов в ссылочной модели включите регистрацию сигналов и используйте инспектор данных моделирования. |
Ненулевое время начала моделирования | Ненулевое время начала моделирования не поддерживается. Используйте значение по умолчанию для параметра «Решатель» > «Время начала». |
Промежуточные значения шага |
Некоторые блоки Simulink могут генерировать несколько значений на этапе моделирования. Например:
Для каждого временного шага во внешнем моделировании Simulink выгружает из целевого приложения только конечные значения таких блоков. Simulink не загружает промежуточные значения, сгенерированные во время шага. |
Данные в области файлов | Данные в области файлов не поддерживаются. Например, элементы данных, к которым применяется встроенный пользовательский класс хранения Для получения дополнительной информации о |
Генерация основного кода строки | Код, созданный с использованием основного формата строки, не поддерживается. |
Одновременное выполнение | Параллельное выполнение не поддерживается. Если целевой системный файл ert.tlc и целевая операционная система NativeThreadsExample, невозможно построить целевое приложение. |
Пример VxWorks ® | Если целевой системный файл |
| Сохранение выходных данных моделирования как отдельного объекта | Сохранение выходных данных моделирования внешнего режима XCP как отдельного объекта не поддерживается. При моделировании выводится предупреждение. |