В симуляции режима external mode можно настроить параметры в реальном времени и контролировать сигналы целевого приложения. Используя приложение Run on Custom Hardware, можно настроить и запустить свои компьютеры разработчика или пользовательские симуляции оборудования режима external mode, которые используют канал связи XCP.
Для симуляции режима external mode вы:
Создайте целевое приложение на своем компьютере разработчика.
Развертывание целевого приложения на целевом компьютере.
Подключите Simulink® к целевому приложению, работающему на целевом компьютере.
Запустите выполнение сгенерированного кода на целевом компьютере.
Сконфигурируйте и запустите симуляцию режима external mode, которая использует протокол связи XCP. Во время симуляции:
Отслеживайте сигнал с помощью блока Возможностей, блока Dashboard и Данных моделирования Inspector.
Настройте параметр с помощью блока 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
.
В диалоговом окне Параметров блоков:
Соедините блок с Test Signal
.
В Maximum поле введите значение, например 1
.
Нажмите OK.
Сконфигурируйте блок Knob, чтобы настроить параметр Amplitude блока Sine Wave:
Дважды кликните Knob блок.
В редакторе Simulink выберите блок Sine Wave.
В диалоговом окне Параметров блоков:
Соедините блок с параметром 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, доступных в
Генератор кода создает пример, который показывает, как можно обеспечить XCP режима external mode целевое подключение для голой платы, которая не работает под управлением операционной системы.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 - нажмите кнопку Данные Моделирования Inspector. Когда откроются Данные моделирования Inspector, установите флажок Test Signal, который отображает потоковые данные.
Half-Gauge блок.
Чтобы изменить амплитуду синусоиды, поверните указатель мыши на блоке Knob на необходимое значение.
Эта таблица описывает больше способов настройки параметров настраиваемых блоков во время симуляции.
Подход | Подробнее |
---|---|
Model Data Editor | Чтобы настроить параметры через Model Data Editor:
Для получения дополнительной информации см. «Настройка свойств данных при помощи Model Data Editor». |
Параметры блоков диалоговое окно | Чтобы настройки параметров через диалоговое окно Параметров блоков:
|
MATLAB® рабочая область | Если параметрами блоков являются переменные рабочего пространства MATLAB:
Для получения дополнительной информации см. раздел «Создание и редактирование переменных». |
Для получения дополнительной информации о настройке параметра сгенерированным кодом, смотрите Симуляция Режима external mode с TCP/IP или Последовательная Связь и Создайте Настраиваемый Параметр Калибровки в Сгенерированном Коде (Embedded Coder).
Если ваша модель содержит Stateflow® график, можно просмотреть активность состояния. Для получения дополнительной информации см. «Анимируйте диаграммы Stateflow» (Stateflow).
Чтобы остановить выполнение сгенерированного кода модели перед StopTime
достигается и отключает целевое приложение, на панели редакторов нажмите кнопку Stop.
Если вы хотите отключить целевое приложение от Simulink, не останавливая выполнение кода, нажмите. Затем, под Step By Step Commands, нажмите Disconnect.
Для симуляций режима external mode XCP можно сконфигурировать триггер, который начинает загрузку данных целевого приложения для контроля сигналов в 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
.
Чтобы контролировать сигналы в Simulation Data Inspector, в разделе Review Results, нажмите кнопку Data Inspector.
С панели управления режима external mode можно приостановить или возобновить логгирование и мониторинг сигналов. В Connection and triggering разделе нажмите Cancel Trigger или Arm Trigger соответственно.
Чтобы остановить выполнение целевого приложения и отключить Simulink от целевого окружения, нажмите Stop Real-Time Code.
Для получения информации о контроле сигналов и опциях триггера смотрите XCP External Mode Панель и 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');
Чтобы настроить параметр, измените его значение переменных рабочей области с помощью команды 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');
The 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');
Для получения дополнительной информации смотрите Запуск симуляций программно.
Diagnostic Viewer отображает сообщения об ошибке, произведенные 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, не поддерживаются. Для сбора и экспорта данных можно использовать Данные моделирования Inspector. |
Переопределяющие настройки логгирования сигналов | Если вы используете Signal Logging Selector для переопределения настроек логгирования сигналов, элементы управления для переопределения настроек Decimation и Limit data points не поддерживаются. |
Формат символа отладки компилятора | Ваш набор инструментальных средств должен сгенерировать отладку информацию в одном из следующих форматов:
|
Встроенные параметры | Если вы задаете |
Глобальные переменные | Сигналы, параметры и состояния должны быть заданы как глобальные переменные. Целевые местоположения памяти, в которых хранятся переменные, должны лежать в 0 - 4294967295 области значений. |
Параметрические структуры | Вы не можете настроить параметры, которые являются структурами. |
Чистый целочисленный код | Поддерживается чистый целочисленный код. Для генерации кода, если Если вы не задаете Если вы задаете
|
Сигналы переменного размера | Загрузка сигналов переменного размера не поддерживается. |
Поддержка компилятора |
|
Адресная зернистость | Целевой компьютер, использующее адреса слов, не поддерживается. |
Переносные размеры слов | Когда производственное целевое оборудование является адресуемым по слову, генерация целевого приложения на основе хоста с использованием портативных размеров слов не поддерживается. Производственное целевое оборудование должно поддерживать 8-битные, 16-битные и 32-битные собственные типы данных. |
Scope и Floating Scope блоки и Средство Просмотра | Некоторые типы данных сигналов не поддерживаются. Симуляция выдаёт предупреждение. |
Floating Scope блоки и Средство Просмотра | Вы не можете использовать блоки Floating Scope и Средства Просмотра для мониторинга сигналов в ссылочных моделях во время симуляций режима external mode. Чтобы контролировать опорные сигналы модели, включите логгирование сигнала и используйте Данные Моделирования Inspector. |
Возможности в ссылочных моделях | В иерархии модели, если верхняя модель запускается в режиме external mode, возможности в ссылочных моделях не отображаются. Чтобы контролировать сигналы в пределах опорной модели, включите логгирование сигнала и используйте Данные моделирования Inspector. |
Ненулевое время начала симуляции | Ненулевое время начала симуляции не поддерживается. Используйте значение по умолчанию для Solver > Start time, |
Промежуточные значения шага |
Некоторые блоки Simulink могут сгенерировать несколько значений во временном шаге симуляции. Для примера:
Для каждого временного шага в симуляции режима external mode Simulink загружает из целевого приложения только окончательные значения таких блоков. Simulink не загружает промежуточные значения, сгенерированные во время шага. |
Данные с разбиением на файлы | Данные в области файлов не поддерживаются. Например, элементы данных, к которым вы применяете встроенный пользовательский класс памяти Для получения дополнительной информации о |
Генерация кода основной строки | Код, сгенерированный в формате основной строки, не поддерживается. |
Параллельное выполнение | Параллельное выполнение не поддерживается. Если System target file ert.tlc а Target operating system есть NativeThreadsExample , вы не можете создать целевое приложение. |
VxWorks® пример | Если System target file |
Сохранение выходов симуляции как одного объекта | Сохранение выходных данных симуляции режима external mode XCP в виде одного объекта не поддерживается. Симуляция выдаёт предупреждение. |