В симуляции режима external mode вы можете настройки параметров в режиме реального времени и контролировать сигналы целевого приложения. Используя приложение Run on Custom Hardware, можно настроить и работать компьютере разработчика или симуляциях режима external mode специального оборудования, которые используют канал связи XCP.
Для симуляции режима external mode, вас:
Создайте целевое приложение на своем компьютере разработчика.
Разверните целевое приложение в целевой компьютер.
Соедините Simulink® с целевым приложением, которое работает на целевом компьютере.
Запустите выполнение сгенерированного кода на целевом компьютере.
Сконфигурируйте и запустите симуляцию режима external mode, которая использует протокол связи XCP. Во время симуляции:
Контролируйте сигнал при помощи блока Scope, блока Dashboard и Инспектора Данных моделирования.
Настройте параметр при помощи блока Dashboard.
Создайте папку для этого примера.
mkdir ext_mode_xcp_example cd ext_mode_xcp_example
Откройте Simulink и создайте простую модель, xcpExample, который содержит эти блоки:
Sine Wave
Gain
Scope
Half Gauge
Knob
Дважды кликните блок Sine Wave. Установите Sample time на 0,1, и затем нажмите OK.
Дважды кликните блок Gain. Установите Gain на 2, и затем нажмите OK.
Соедините блок Sine Wave с блоком Gain и назовите связь, например, Test Signal.
Соедините блок Gain с блоком Scope и назовите связь, например, Output Signal.
Сконфигурируйте Test Signal для логгирования:
Выберите Test Signal.
На вкладке Signal, в разделе Monitor, выбирают Log Signals.
Если вы не включаете логгирование сигнала, вы не можете передать потоком Test Signal инспектору данных моделирования.
Сконфигурируйте блок Half Gauge, чтобы контролировать значение Test Signal:
Дважды кликните блок Half Gauge.
В Редакторе Simulink выберите Test Signal.
В диалоговом окне Block Parameters:
Соедините блок с Test Signal.
В поле Maximum введите значение, например, 1.
Нажмите OK.
Сконфигурируйте блок Knob, чтобы настроить параметр Amplitude блока Sine Wave:
Дважды кликните блок Knob.
В Редакторе Simulink выберите блок Sine Wave.
В диалоговом окне Block Parameters:
Соедините блок с параметром Amplitude блока Sine Wave.
В полях Minimum и Maximum введите значения, например, 0.1 и 1 соответственно.
Нажмите OK.
Сохраните модель как xcpExample.

От вкладки Apps на панели инструментов Simulink, в разделе Setup to Run on Hardware, нажимают Run on Custom Hardware. На всплывающем диалоговом окне Run on Custom Hardware нажмите Finish.
В разделе Hardware задайте системный конечный файл. В данном примере используйте значение по умолчанию, grt.tlc. Если у вас есть Embedded Coder®, можно задать ert.tlc.
В галерее Prepare, под Model Configuration, нажимают Hardware Settings. Диалоговое окно Configuration Parameters открывается, отображая настройки Hardware Implementation, которые определяются системным конечным файлом.
На панели Solver:
В поле Type задайте Fixed-step.
Под Solver details, в поле Fixed-step size, задают значение, например, 0.1.
На Code Generation> панель Optimization, набор Default parameter behavior к Tunable.
На Code Generation> панель Interface, установите флажок External mode.
Установите Transport layer на XCP on TCP/IP, который задает ext_xcp для MEX-file name.
Вы не можете отключить флажок Static memory allocation. Значение Static memory buffer size задает размер ведомой памяти XCP, которая выделяется для логгирования сигнала. В данном примере используйте значение по умолчанию.
Если System target file является ert.tlc, на Code Generation> панель Templates:
Установите флажок Generate an example main program.
Установите Target operating system на BareBoardExample.
Используя зарегистрированные API уровня абстракции режима external mode, которые доступны в , генератор кода создает пример, который показывает, как можно обеспечить целевую возможность соединения режима external mode XCP для несмонтированной платы, которая не запускает операционную систему.matlabroot\toolbox\coder\xcp\src\target\ext_mode\include\ext_mode.h
Нажмите OK. Затем сохраните модель.
В разделе Run on Hardware:
Чтобы задать значение не по умолчанию для времени остановки симуляции, в поле Stop Time, задают ваше значение, например, inf.
Щелкнуть
. Программное обеспечение:
Создает целевое приложение:
В Windows® процесс сборки создает:
xcpExample.exe – Исполняемый файл.
xcpExample.pdb – Файл отладочной информации для сигналов и параметров.
В Linux® процесс сборки помещает отладочную информацию формата DWARF в созданный исполняемый файл ELF, xcpExample.
Запускает целевое приложение как отдельный процесс на вашем компьютере разработчика.
Подключения Simulink к целевому приложению.
Запускает сгенерированный типовой кодекс.
Чтобы выполнить шаги отдельно, нажмите Monitor & Tune. Под Step By Step Commands щелкните:
Build for Monitoring
![]()
Deploy
![]()
Connect
![]()
Start
![]()
Можно контролировать Test Signal через:
Блок Scope – Дважды кликает блок.
Инспектор Данных моделирования – Нажимает кнопку Simulation Data Inspector. Когда Инспектор Данных моделирования открывается, установите флажок Test Signal, который отображает переданные потоком данные.
Блок Half-Gauge.
Чтобы изменить амплитуду синусоиды, вращайте указатель на блоке Knob к необходимому значению.
Эта таблица описывает больше способов настроить настраиваемые параметры блоков во время симуляции.
| Подход | Детали |
|---|---|
Model Data Editor | К настройкам параметров через Model Data Editor:
Для получения дополнительной информации смотрите Configure Data Properties при помощи Model Data Editor. |
Диалоговое окно Block Parameter | К настройкам параметров через диалоговое окно Block Parameter:
|
Рабочая область MATLAB® | Если параметры блоков являются переменными рабочего пространства MATLAB:
Для получения дополнительной информации смотрите, Создают и Переменные Редактирования. |
Для получения дополнительной информации о параметре, настраивающемся со сгенерированным кодом, смотрите Симуляцию Режима external mode с TCP/IP или Последовательную передачу и Создайте Настраиваемый Калибровочный Параметр в Сгенерированном коде (Embedded Coder).
Если ваша модель содержит график Stateflow®, вы можете действие состояния отображения. Для получения дополнительной информации смотрите Анимационные диаграммы Stateflow (Stateflow).
Остановить выполнение сгенерированного типового кодекса перед StopTime достигнут и отключите целевое приложение, на панели инструментов Simulink Editor, нажмите кнопку Stop
.
Если вы хотите отключить целевое приложение от Simulink, не останавливая выполнение кода, щелкнуть
. Затем под Step By Step Commands нажмите Disconnect.
Для симуляций режима external mode XCP можно сконфигурировать триггер, который запускает загрузку данных о целевом приложении для контроля сигналов в Simulink.
В Редакторе Simulink сконфигурируйте эти сигналы для логгирования путем щелчка правой кнопкой по каждому сигналу и затем выбора Log Selected Signals:
test_signal
test_carrier
test_output
cmp_output

От вкладки Apps на панели инструментов Simulink, в разделе Setup to Run on Hardware, нажимают Run on Custom Hardware. На всплывающем диалоговом окне Run on Custom Hardware нажмите Finish.
В галерее Prepare, под Model Configuration, нажимают Hardware Settings.
На панели Solver, в поле Type, задают Fixed-step.
На Code Generation> панель Interface, установите флажок External mode.
Установите Transport layer на XCP on TCP/IP, который задает ext_xcp для MEX-file name.
Нажмите OK. Затем сохраните модель.
Чтобы открыть диалоговое окно External Signal & Triggering, из галереи Prepare, под Signal Monitoring & Tracing, нажимают Control Panel.
В разделе Configuration нажмите Signal & Triggering, который открывает диалоговое окно External Signal & Triggering.

Через это диалоговое окно можно выбрать сигналы для контроля и сконфигурировать триггер для загрузки данных из целевого приложения. В данном примере используйте настройки по умолчанию. Например:
Флажок Select all устанавливается — диалоговое окно отображается X в каждой строке столбца Selected. Можно контролировать все регистрируемые сигналы во время симуляции.
Source установлен в manual – Панель управления Режима external mode обеспечивает ручное управление загрузки данных, например, кнопки Arm Trigger.
Флажок Arm when connecting to target устанавливается — Когда вы соединяете Simulink с целевым приложением, триггер вооружен.
Нажмите OK.
От вкладки Hardware в Редакторе Simulink, в разделе Run on Hardware:
В поле Stop Time задайте свое значение, например, inf.
Сохраните модель.
Щелкнуть
. Программное обеспечение:
Создает целевое приложение:
Запускает целевое приложение как отдельный процесс на вашем компьютере разработчика.
Подключения Simulink к целевому приложению.
Запускает сгенерированный типовой кодекс.
Чтобы просмотреть отображения осциллографа, дважды кликните ScopeA и ScopeB.
Чтобы контролировать сигналы в Инспекторе Данных моделирования, в разделе Review Results, нажимают кнопку the Data Inspector.
От Панели управления Режима external mode можно приостановить или возобновить логгирование сигнала и контроль. В разделе Connection and triggering нажмите Cancel Trigger или Arm Trigger соответственно.
Чтобы остановить выполнение целевого приложения и отключить Simulink от целевого окружения, нажмите Stop Real-Time Code.
Для получения информации о контроле сигналов и триггерных опциях, см. Панель управления Режима external mode XCP и XCP External Signal & Triggering Dialog Box.
Можно использовать команды, чтобы запустить симуляции режима external mode XCP. Чтобы получить и установить значения параметров модели, используйте get_param и set_param команды.
Чтобы запустить эти команды, у вас должна быть открытая модель Simulink и выполнение целевого приложения.
Установите режим симуляции модели на режим external mode.
set_param(gcs,'SimulationMode','external');
Соедините Simulink с целевым приложением.
set_param(gcs,'SimulationCommand','connect')
Запустите сгенерированный типовой кодекс.
set_param(gcs,'SimulationCommand','start');
Чтобы настроить параметр, измените его значение переменных рабочей области посредством команды линии. Например, если значение параметров блоков задано как 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 | Замените параметр модели Задайте
|
Для основанных на хосте симуляций режима external mode можно задать дополнительный rtiostream (Embedded Coder) аргументы.
| Аргумент | Описание |
|---|---|
| Задайте уровень многословия:
|
| Для Для На Windows, На Linux, |
| Для |
Эта таблица описывает ограничения, которые применяются к симуляциям режима external mode то использование коммуникация XCP.
| Функция | Детали |
|---|---|
Обновления параметра та структура модели изменения | Вы не можете измениться:
Если вы делаете обновления параметра, которые изменяют структуру модели, необходимо восстановить целевое приложение. Можно изменить числитель и параметры полинома знаменателя для Transfer Fcn, Discrete Transfer Fcn и блоков Discrete Filter, если количество состояний не изменяется. Вы не можете изменить нулевые записи в State-Space, Zero-Pole и блоках Discrete Zero-Pole в заданных пользователями или вычисленных параметрах, то есть, A, B, C, и матрицах D, полученных нулевым полюсным к преобразованию пространства состояний. В блоке State-Space, если вы задаете матрицы в управляемой канонической реализации, затем превращается в A, B, C, и матрицы D, которые сохраняют эту реализацию и размерности матриц, позволены. Если Диаграмма Simulink не совпадает с целевым приложением, Simulink производит ошибку при утверждении, что контрольные суммы не соответствуют. Контрольные суммы учитывают топ-моделей, но не модели, на которые ссылаются. Чтобы восстановить целевое приложение, используйте обновленную блок-схему. |
Отображение значения сигналов | Графический дисплей значений сигналов во время симуляции не поддерживается. Например, вы не можете использовать пункты меню Data Display in Simulation Show Value Labels When Hovering, Toggle Value Labels When Clicked и Show Value Label of Selected Port. Для получения дополнительной информации смотрите Значения сигналов Отображения в Диаграммах модели. |
Архивация данных | Функции Data Archiving, доступные на External Mode Control Panel, не поддерживаются. Можно использовать Инспектора Данных моделирования, чтобы собрать и экспортировать данные. |
| Переопределение настроек логгирования сигнала | Если вы используете Селектор Логгирования Сигнала, чтобы заменить настройки логгирования сигнала, средства управления, чтобы заменить настройки Decimation и Limit data points не поддерживаются. |
Формат отладочного символа компилятора | Ваш набор инструментальных средств должен сгенерировать отладочную информацию в одном из этих форматов:
|
Встроенные параметры | Если вы устанавливаете |
Глобальные переменные | Сигналы, параметры и состояния должны быть заданы как глобальные переменные. Целевые ячейки памяти, где переменные хранятся, должны находиться в диапазоне 0 – 4294967295. |
Структуры параметра | Вы не можете настройки параметров, которые являются структурами. |
Чистый целочисленный код | Чистый целочисленный код поддерживается. Для генерации кода, если Если вы не задаете Если вы задаете
|
Сигналы переменного размера | Загрузка сигналов переменного размера не поддерживается. |
Поддержка компилятора |
|
Обратитесь к гранулярности | Целевой компьютер, который использует адреса слова, не поддерживается. |
Портативные размеры слова | Когда оборудование производственной платформы адресуемо словом, генерация основанного на хосте целевого приложения при помощи портативных размеров слова не поддерживается. Оборудование производственной платформы должно поддержать 8-битные, 16-битные, и 32-битные собственные типы данных. |
Scope and Floating Scope блоки и Средство просмотра Осциллографа | Некоторые типы данных сигнала не поддерживаются. Симуляция производит предупреждение. |
| Блоки Floating Scope и Средство просмотра Осциллографа | Вы не можете использовать блоки Floating Scope и Средства просмотра Осциллографа, чтобы контролировать сигналы в моделях, на которые ссылаются, во время симуляций режима external mode. Чтобы контролировать сигналы модели, на которые ссылаются, включите логгирование сигнала и используйте Инспектора Данных моделирования. |
Осциллографы в моделях, на которые ссылаются, | В иерархии модели, если топ-модель запускается в режиме external mode, не отображены осциллографы в моделях, на которые ссылаются. Чтобы контролировать сигналы в модели, на которую ссылаются, включите логгирование сигнала и используйте Инспектора Данных моделирования. |
Ненулевое время начала симуляции | Ненулевая симуляция запускается, времена не поддерживаются. Используйте значение по умолчанию для Solver> Start time, |
Промежуточные значения шага |
Некоторые блоки Simulink могут сгенерировать несколько значений на шаге времени симуляции. Например:
Для каждого временного шага в симуляции режима external mode Simulink загружает из целевого приложения только окончательные значения таких блоков. Simulink не загружает промежуточные значения, сгенерированные во время шага. |
Ограниченные по объему файлом данные | Ограниченные по объему файлом данные не поддерживаются. Например, элементы данных, к которым вы применяете встроенный пользовательский класс памяти Для получения дополнительной информации о |
Упорядоченная по строкам генерация кода | Код, сгенерированный с упорядоченным по строкам форматом, не поддерживается. |
Параллельное выполнение | Параллельное выполнение не поддерживается. Если System target file является ert.tlc и Target operating system является NativeThreadsExample, вы не можете создать целевое приложение. |
Пример VxWorks® | Если System target file является |
| Сохранение симуляции выход как отдельный объект | При сохранении симуляции режима external mode XCP выход, когда не поддерживается отдельный объект. Симуляция производит предупреждение. |