Настройте и запустите симуляции режима external mode, которые используют канал связи XCP.
Сконфигурируйте и запустите симуляцию режима external mode, которая использует протокол связи XCP. Во время симуляции:
Контролируйте сигнал при помощи блока Scope, блока Dashboard и Инспектора Данных моделирования.
Настройте параметр при помощи блока Dashboard.
Создайте папку для этого примера.
mkdir ext_mode_xcp_example cd ext_mode_xcp_example
Откройте Simulink® и создайте простую модель, xcpExample
, который содержит эти блоки:
Синусоида
Осциллограф
Половина прибора
Кнопка
Дважды кликните блок Sine Wave. Установите Sample time на 0,1, и затем нажмите OK.
Соедините блок Sine Wave с блоком Scope и назовите связь, например, Test Signal
.
Сконфигурируйте сигнал для журналирования:
Щелкните правой кнопкой по Test Signal
.
Из контекстного меню выберите Log Selected Signals
. Если вы не включаете журналирование сигнала, вы не можете просмотреть сигнал при помощи блока Scope или потоковых данных сигнала Инспектору Данных моделирования.
Сконфигурируйте блок 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.
Сохраните модель.
Выберите Simulation> Model Configuration Parameters.
На панели Solver:
В поле Type задайте Fixed-step
.
Под Solver details, в поле Fixed-step size, задают значение, например, 0.1.
На панели Code Generation, набор System target file к grt.tlc
или ert.tlc
(требует Embedded Coder®).
На Code Generation> панель Optimization, набор Default parameter behavior к Tunable
.
На Code Generation> панель Interface, установите флажок External mode.
Установите Transport layer на XCP on TCP/IP
, который задает ext_xcp
для MEX-file name.
В поле Mex-file arguments введите 'localhost' 1 5555
. Эти аргументы указывают что:
Целевой компьютер является вашим компьютером разработчика.
Уровень многословия равняется 1.
Номер порта сервера TCP/IP 5555.
Вы не можете отключить Static memory allocation. Значение Static memory buffer size задает размер ведомой памяти XCP, которая выделяется для журналирования сигнала. В данном примере используйте значение по умолчанию.
Если System target file является ert.tlc
на Code Generation> панель Templates:
Установите флажок Generate an example main program. Генератор кода uses
, чтобы произвести пример основной файл, matlabroot\toolbox\coder\xcp\src\target\ext_mode\include\ext_mode.h
ert_main.c
.
Установите Target operating system на BareBoardExample
.
Нажмите OK. Затем сохраните модель.
Нажмите Ctrl+B. Процесс сборки генерирует исходный код и создает исполняемый файл.
В Windows® процесс сборки создает:
xcpExample.exe
– Исполняемый файл.
xcpExample.pdb
– Файл отладочной информации для сигналов и параметров.
В Linux® процесс сборки помещает отладочную информацию формата DWARF в созданный исполняемый файл ELF, xcpExample
.
Откройте командную строку для своей операционной системы и перейдите к папке ext_mode_xcp_example
.
В командной строке, введите:
xcpExample -w -tf inf -port 5555
Целевое приложение запускается как отдельный процесс на вашем компьютере разработчика:
(Дополнительный) -w
указывает, что целевое приложение вводит состояние ожидания, пока это не получает сообщение от Simulink. Выполнения целевого приложения, но еще не выполняют типовой код.
Если вы не задаете -w
, целевое приложение сразу выполняет типовой код. Типовой кодекс запускается со значениями параметров со времени, когда вы создали модель.
(Дополнительный) -tf inf
указывает, что, когда типовой код выполнен, модель запускается неопределенно. Используйте эту опцию, чтобы заменить параметр модели StopTime
.
Соедините Simulink с целевым приложением:
Выберите Simulation> Mode> External.
На панели инструментов Simulink Editor нажмите Connect to Target button. Simulink загружает текущие значения параметров от модели до целевого приложения.
Чтобы запустить сгенерированный типовой кодекс, щелкните по кнопке Run.
Можно контролировать Test Signal
через:
Блок Scope – Дважды кликает блок.
Инспектор Данных моделирования – Нажимает кнопку Simulation Data Inspector. Когда Инспектор Данных моделирования открывается, установите флажок Test Signal, который отображает переданные потоком данные.
Блок Half-Gauge.
Чтобы изменить амплитуду синусоиды, вращайте указатель на блоке Knob к необходимому значению.
Чтобы настроиться настраиваемый (Simulink) параметры блоков во время симуляции, можно также использовать эти методы:
Если параметры блоков являются переменной в рабочей области MATLAB® из Командного окна, присвойте новое значение переменной. Затем в Редакторе Simulink выберите Simulation> Update Diagram. Simulink загружает новое значение на целевое приложение.
Откройте диалоговое окно Block Parameter. В поле параметра задайте необходимое значение. Когда вы нажимаете Apply или OK, Simulink загружает новое значение параметров на целевое приложение.
Для получения дополнительной информации о параметре, настраивающемся со сгенерированным кодом, см.:
Создайте настраиваемый калибровочный параметр в сгенерированном коде (Embedded Coder)
Если ваша модель содержит график Stateflow®, вы можете действие состояния отображения. Для получения дополнительной информации смотрите Анимационные диаграммы Stateflow (Stateflow).
Чтобы остановить выполнение сгенерированного типового кодекса (прежде чем StopTime
будет достигнут) и отключают целевое приложение, на панели инструментов Simulink Editor, нажимают кнопку Stop.
Если вы хотите отключить целевое приложение от Simulink, не останавливая выполнение кода, нажмите Disconnect from Target button.
Можно запустить целевое приложение с дополнительными аргументами.
Аргумент | Описание |
---|---|
-w | Укажите, что целевое приложение входит и остается в состоянии ожидания, пока оно не получает сообщение от Simulink. Если вы не задаете |
| Замените параметр модели StopTime . -tf inf указывает, что модель запускается неопределенно, когда типовой код выполнен. |
Для основанных на хосте симуляций режима external mode можно задать дополнительные аргументы rtiostream (Embedded Coder)
.
Аргумент | Описание |
---|---|
| Задайте уровень многословия:
|
| Для транспортного уровня Для транспортного уровня На Windows, На Linux, |
| Для транспортного уровня |
Можно управлять симуляцией режима external mode XCP через:
Панель инструментов Simulink Editor.
Меню Simulink Editor.
Панель управления Режима external mode. Чтобы открыть это диалоговое окно, в Редакторе Simulink, выбирают Code> External Mode Control Panel.
Эта таблица дает средства управления, которые можно использовать для симуляции режима external mode XCP.
Действие режима external mode | Панель инструментов | Меню | Панель управления режима external mode |
---|---|---|---|
Установите режим симуляции модели к режиму external mode. | От режима симуляции выпадающий список выберите | Simulation> | Connect Если режим симуляции модели уже не установлен, нажатие по Connect устанавливает режим симуляции на внешний. |
Соедините Simulink с ожиданием или запуском целевого приложения. | Соединитесь с Целевой кнопкой | Simulation> | Connect Когда Simulink соединяется с целевым приложением, изменениями Connect в Disconnect. |
Запустите выполнение в реальном времени сгенерированного кода в целевом окружении. | Кнопка Run | Simulation> Run (горячая клавиша Ctrl+T) | Start Real-Time Code Когда сгенерированный код начинает выполняться, изменения кнопки в Stop Real-Time Code. |
Отключите Simulink от целевого окружения, но не останавливайте подписание в реальном времени кода. | Отключитесь от Целевой кнопки | Simulation> | Disconnect |
Остановите выполнение целевого приложения и отключите Simulink от целевого окружения. | Кнопка Stop | Simulation> Stop (горячая клавиша Ctrl+Shift+T) | Stop Real-Time Code |
Настройте пакет параметров блоков. | Нет данных | Нет данных | Batch download Настроить пакет параметров блоков:
|
Можно использовать команды или скрипты, чтобы запустить симуляции режима 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');
Эта таблица описывает ограничения, которые применяются к симуляциям режима external mode то использование коммуникация XCP.
Функция | Детали |
---|---|
Обновления параметра та структура модели изменения | Вы не можете измениться, например:
Если вы делаете обновления параметра, которые изменяют образцовую структуру, необходимо восстановить целевое приложение. Можно изменить числитель и параметры полинома знаменателя для Передачи Fcn, Дискретная Передача Fcn и Дискретные блоки Фильтра, если количество состояний не изменяется. Вы не можете изменить нулевые записи в Пространстве состояний, Нулевые полюсные, и Дискретные Нулевые полюсные блоки в заданных пользователями или вычисленных параметрах, то есть, 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. Для получения дополнительной информации смотрите Отображающиеся Значения сигналов в Диаграммах модели (Simulink). |
Инициирование сигнала и архивация данных | Signal & Triggering, Arm Trigger, Cancel Trigger, и функции Data Archiving, которые доступны на External Mode Control Panel, не поддержан. |
Потоковая передача сигнала | Динамический выбор сигналов для потоковой передачи не поддержан. Если хотят выбрать различные сигналы для потоковой передачи, необходимо восстановить модель. |
Переопределение настроек журналирования сигнала | Переопределение журналирования сигнала настроек при помощи Селектора Журналирования Сигнала не поддержано. |
Формат отладочного символа компилятора | Ваш набор инструментальных средств должен сгенерировать отладочную информацию в одном из этих форматов:
|
Встроенные параметры | Если вы устанавливаете |
Глобальные переменные | Сигналы, параметры и состояния должны быть заданы как глобальные переменные. Целевые адреса памяти, в которых хранятся переменные, должны находиться в диапазоне 0 – 4294967295. |
Структуры параметра | Вы не можете настройки параметров, которые являются структурами. |
Чистый целочисленный код | Чистый целочисленный код поддерживается. Для генерации кода, если Если вы не задаете Если вы задаете
|
Сигналы переменного размера | Загрузка сигналов переменного размера не поддержана. |
Поддержка компилятора |
|
Операционная система Mac | Вы не можете запустить основанные на хосте симуляции режима external mode XCP в системе Mac, потому что ведомый уровень абстракции платформы XCP по умолчанию поддерживает только системы Windows и Linux. |
Endianess | Целевой компьютер, который использует архитектуру с обратным порядком байтов, не поддержан. |
Обратитесь к гранулярности | Целевой компьютер, который использует адреса слова, не поддержан. |
Определите объем и Пускающий в ход блоки Осциллографа и Средство просмотра Осциллографа | Некоторые типы данных сигнала не поддержаны. Симуляция производит предупреждение. |
Осциллографы в моделях, на которые ссылаются, | В иерархии модели, если топ-модель запускается в режиме external mode и модели, на которую ссылаются, запускается в нормальном или режиме Accelerator, осциллографы в модели, на которую ссылаются, не отображены. |
Ненулевое время начала симуляции | Ненулевая симуляция запускается, времена не поддержаны. Используйте значение по умолчанию для Solver> Start time, то есть, |
Ограниченные по объему файлом данные | Ограниченные по объему файлом данные не поддержаны. Например, элементы данных, к которым вы применяете встроенный пользовательский класс памяти |
Главная строкой генерация кода | Код, сгенерированный с главным строкой форматом, не поддержан. |
Параллельное выполнение | Параллельное выполнение не поддержано. Если System target file является ert.tlc , и Target operating system является NativeThreadsExample , вы не можете создать целевое приложение. |
Пример VxWorks® | Если System target file является |