Симуляция режима external mode с коммуникацией XCP

Настройте и запустите симуляции режима external mode, которые используют канал связи XCP.

Запустите симуляцию режима external mode XCP из редактора Simulink

Сконфигурируйте и запустите симуляцию режима external mode, которая использует протокол связи XCP. Во время симуляции:

  • Контролируйте сигнал при помощи блока Scope, блока Dashboard и Инспектора Данных моделирования.

  • Настройте параметр при помощи блока Dashboard.

Сконфигурируйте контроль сигнала и параметр, настраивающийся для режима external mode XCP

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

    mkdir ext_mode_xcp_example
    cd ext_mode_xcp_example

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

    • Синусоида

    • Осциллограф

    • Половина прибора

    • Кнопка

  3. Дважды кликните блок Sine Wave. Установите Sample time на 0,1, и затем нажмите OK.

  4. Соедините блок Sine Wave с блоком Scope и назовите связь, например, Test Signal.

  5. Сконфигурируйте сигнал для журналирования:

    1. Щелкните правой кнопкой по Test Signal.

    2. Из контекстного меню выберите Log Selected Signals. Если вы не включаете журналирование сигнала, вы не можете просмотреть сигнал при помощи блока Scope или потоковых данных сигнала Инспектору Данных моделирования.

  6. Сконфигурируйте блок Half Gauge, чтобы контролировать значение Test Signal:

    1. Дважды кликните блок Half Gauge.

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

    3. В диалоговом окне Block Parameters:

      • Соедините блок с Test Signal.

      • В поле Maximum введите значение, например, 1.

    4. Нажмите OK.

  7. Сконфигурируйте блок Knob, чтобы настроить параметр Amplitude блока Sine Wave:

    1. Дважды кликните блок Knob.

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

    3. В диалоговом окне Block Parameters:

      • Соедините блок с параметром Amplitude блока Sine Wave.

      • В полях Minimum и Maximum введите значения, например, 0.1 и 1 соответственно.

    4. Нажмите OK.

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

Создайте целевое приложение для режима external mode XCP

  1. Выберите Simulation> Model Configuration Parameters.

  2. На панели Solver:

    1. В поле Type задайте Fixed-step.

    2. Под Solver details, в поле Fixed-step size, задают значение, например, 0.1.

  3. На панели Code Generation, набор System target file к grt.tlc или ert.tlc (требует Embedded Coder®).

  4. На Code Generation> панель Optimization, набор Default parameter behavior к Tunable.

  5. На Code Generation> панель Interface, установите флажок External mode.

  6. Установите Transport layer на XCP on TCP/IP, который задает ext_xcp для MEX-file name.

  7. В поле Mex-file arguments введите 'localhost' 1 5555. Эти аргументы указывают что:

    • Целевой компьютер является вашим компьютером разработчика.

    • Уровень многословия равняется 1.

    • Номер порта сервера TCP/IP 5555.

  8. Вы не можете отключить Static memory allocation. Значение Static memory buffer size задает размер ведомой памяти XCP, которая выделяется для журналирования сигнала. В данном примере используйте значение по умолчанию.

  9. Если 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.

  10. Нажмите OK. Затем сохраните модель.

  11. Нажмите Ctrl+B. Процесс сборки генерирует исходный код и создает исполняемый файл.

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

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

  • xcpExample.pdb – Файл отладочной информации для сигналов и параметров.

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

Запустите целевое приложение

  1. Откройте командную строку для своей операционной системы и перейдите к папке ext_mode_xcp_example.

  2. В командной строке, введите:

    xcpExample -w -tf inf -port 5555

    Целевое приложение запускается как отдельный процесс на вашем компьютере разработчика:

    • (Дополнительный) -w указывает, что целевое приложение вводит состояние ожидания, пока это не получает сообщение от Simulink. Выполнения целевого приложения, но еще не выполняют типовой код.

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

    • (Дополнительный) -tf inf указывает, что, когда типовой код выполнен, модель запускается неопределенно. Используйте эту опцию, чтобы заменить параметр модели StopTime.

  3. Соедините Simulink с целевым приложением:

    1. Выберите Simulation> Mode> External.

    2. На панели инструментов Simulink Editor нажмите Connect to Target button. Simulink загружает текущие значения параметров от модели до целевого приложения.

  4. Чтобы запустить сгенерированный типовой кодекс, щелкните по кнопке Run.

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

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

  • Блок Scope – Дважды кликает блок.

  • Инспектор Данных моделирования – Нажимает кнопку Simulation Data Inspector. Когда Инспектор Данных моделирования открывается, установите флажок Test Signal, который отображает переданные потоком данные.

  • Блок Half-Gauge.

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

Чтобы настроиться настраиваемый (Simulink) параметры блоков во время симуляции, можно также использовать эти методы:

  • Если параметры блоков являются переменной в рабочей области MATLAB® из Командного окна, присвойте новое значение переменной. Затем в Редакторе Simulink выберите Simulation> Update Diagram. Simulink загружает новое значение на целевое приложение.

  • Откройте диалоговое окно Block Parameter. В поле параметра задайте необходимое значение. Когда вы нажимаете Apply или OK, Simulink загружает новое значение параметров на целевое приложение.

Для получения дополнительной информации о параметре, настраивающемся со сгенерированным кодом, см.:

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

Остановите целевое приложение

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

Если вы хотите отключить целевое приложение от Simulink, не останавливая выполнение кода, нажмите Disconnect from Target button.

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

Можно запустить целевое приложение с дополнительными аргументами.

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

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

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

-tf timeЗамените параметр модели StopTime. -tf inf указывает, что модель запускается неопределенно, когда типовой код выполнен.

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

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

-verbose level

Задайте уровень многословия:

  • 0 - Никакая информация

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

-port number

Для транспортного уровня XCP on TCP/IP задайте номер порта сервера TCP/IP. Целочисленное значение между 256 и 65535. Значение по умолчанию 17725.

Для транспортного уровня XCP on Serial задайте ID последовательного порта. Например:

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

На Linux, '/dev/ttyS0', и т.д.

-baud value

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

Графические средства управления для симуляций режима external mode XCP

Можно управлять симуляцией режима external mode XCP через:

  • Панель инструментов Simulink Editor.

  • Меню Simulink Editor.

  • Панель управления Режима external mode. Чтобы открыть это диалоговое окно, в Редакторе Simulink, выбирают Code> External Mode Control Panel.

Эта таблица дает средства управления, которые можно использовать для симуляции режима external mode XCP.

Действие режима external modeПанель инструментовМенюПанель управления режима external mode

Установите режим симуляции модели к режиму external mode.

От режима симуляции выпадающий список выберите External.

Simulation>
Режим
> External

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

Настроить пакет параметров блоков:

  1. В Панели управления Режима external mode выберите Batch download.

  2. В Редакторе Simulink измените необходимые параметры блоков.

  3. Когда вы изменяете параметры, Панель управления Режима external mode отображает это сообщение рядом с Download:

    Parameter changes pending...
    Simulink хранит измененные параметры локально.

  4. Нажмите Download. Simulink загружает пакет измененных параметров к целевому приложению.

Запустите симуляцию режима external mode XCP из командной строки

Можно использовать команды или скрипты, чтобы запустить симуляции режима external mode XCP. Используйте get_param и команды set_param, чтобы получить и установить значения параметров модели.

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

  1. Установите режим симуляции модели к режиму external mode.

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

  2. Соедините Simulink с целевым приложением.

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

  3. Запустите сгенерированный типовой кодекс.

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

  4. Чтобы настроить параметр, измените его значение переменных рабочей области посредством команды строки. Например, если значение параметров блоков задано как объект 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');

Ограничения режима external mode XCP

Эта таблица описывает ограничения, которые применяются к симуляциям режима external mode то использование коммуникация XCP.

ФункцияДетали

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

Вы не можете измениться, например:

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

  • Шаг расчета или количество шагов расчета

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

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

  • Параметры к блоку Fcn

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

Можно изменить числитель и параметры полинома знаменателя для Передачи 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, не поддержан.

Потоковая передача сигнала

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

Переопределение настроек журналирования сигналаПереопределение журналирования сигнала настроек при помощи Селектора Журналирования Сигнала не поддержано.

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

Ваш набор инструментальных средств должен сгенерировать отладочную информацию в одном из этих форматов:

  • КАРЛИК

  • 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 не поддержан.

Операционная система Mac

Вы не можете запустить основанные на хосте симуляции режима external mode XCP в системе Mac, потому что ведомый уровень абстракции платформы XCP по умолчанию поддерживает только системы Windows и Linux.

Endianess

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

Обратитесь к гранулярности

Целевой компьютер, который использует адреса слова, не поддержан.

Определите объем и Пускающий в ход блоки Осциллографа и Средство просмотра Осциллографа

Некоторые типы данных сигнала не поддержаны. Симуляция производит предупреждение.

Осциллографы в моделях, на которые ссылаются,

В иерархии модели, если топ-модель запускается в режиме external mode и модели, на которую ссылаются, запускается в нормальном или режиме Accelerator, осциллографы в модели, на которую ссылаются, не отображены.

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

Ненулевая симуляция запускается, времена не поддержаны. Используйте значение по умолчанию для Solver> Start time, то есть, 0.0.

Ограниченные по объему файлом данные

Ограниченные по объему файлом данные не поддержаны. Например, элементы данных, к которым вы применяете встроенный пользовательский класс памяти FileScope. Симуляция производит предупреждение.

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

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

Параллельное выполнение

Параллельное выполнение не поддержано. Если System target file является ert.tlc, и Target operating system является NativeThreadsExample, вы не можете создать целевое приложение.

Пример VxWorks®

Если System target file является ert.tlc, и Target operating system является VxWorksExample, вы не можете создать целевое приложение.

Похожие темы

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