В этом примере показано, как передать сигналы сигнала потоком к приложению инструментальной панели App Designer из приложения Simulink Real-Time. Пример создает приложение реального времени из модели slrtpendulum
. Эта модель содержит модели, на которые ссылаются, которые производят сигналы, которые переданы потоком и построены. Инструментальная панель содержит эти компоненты App Designer:
Оси — Чтобы отобразить анимацию для двух инвертированных маятников и систем корзины.
Оси — Чтобы отобразить вывод сигнала для ответов на разрушение маятников.
Пошагово переместите кнопки — Чтобы применить вход (пошаговые перемещения) к корзинам, которые содержат маятники.
К потоковому сигналу и данным о параметре между приложением реального времени и приложением инструментальной панели, приложение использует объект инструментирования.
open_system(docpath(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','slrtpendulum')));
load_system(docpath(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','slrtpendulum_100Hz')));
load_system(docpath(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','slrtpendulum_200Hz')));
Эти задачи генерируют приложение реального времени что потоковые данные к приложению инструментальной панели App Designer.
Запустите целевой компьютер.
Откройте модель slrtpendulum
.
Соедините компьютер разработчика с целевым компьютером. Создайте slrtpendulum
модель.
Разверните приложение реального времени в целевой компьютер.
В Командном Окне MATLAB введите:
set_param('slrtpendulum', 'RTWVerbose', 'off'); tg = slrt('TargetPC1'); rtwbuild('slrtpendulum'); load(tg,'slrtpendulum');
### Starting Simulink Real-Time build procedure for model: slrtpendulum_100Hz ### Starting Simulink Real-Time build procedure for model: slrtpendulum_200Hz ### Starting Simulink Real-Time build procedure for model: slrtpendulum ### Generated code for 'slrtpendulum' is up to date because no structural, parameter or code replacement library changes were found. ### Successful completion of build procedure for model: slrtpendulum ### Created MLDATX ..\slrtpendulum.mldatx
Приложение инструментальной панели App Designer Pendulum
обеспечивает средства управления, чтобы запуститься и взаимодействовать с приложением реального времени slrtpendulum
.
1. Запустите приложение. Запустить приложение App Designer Pendulum.mlapp
и создайте указатель app
В Командном Окне MATLAB введите:
app = Pendulum;
Acquire Group 1 DiscreteInterval = 0.010 SampleTimeString = 0.01 HistoryFlag = 1 signals: slrtpendulum/Reference1:1 cartposition1 pendposition1 Acquire Group 2 DiscreteInterval = 0.005 SampleTimeString = 0.005 HistoryFlag = 1 signals: slrtpendulum/Reference2:1 cartposition2 pendposition2
Когда приложение запускается, оно отображает вывод команды представления AcquiredList. Это представление отображает иерархию сигнала в объекте инструментирования в приложении.
2. Чтобы разрушить равновесие маятника на каждой корзине, нажмите кнопки Nudge. Можно настроить размер пошагового перемещения при помощи выбора значения рядом с каждой кнопкой.
3. Наблюдайте реакции графика на каждое пошаговое перемещение. Когда значение пошагового перемещения становится слишком большим, pedulum не может восстановить свое равновесие.
Функциональность приложения инструментальной панели обеспечивается кодом коллбэка. Для получения дополнительной информации о добавляющих компонентах приложения и вводящем коде коллбэка, смотрите, Добавляет Приложение Инструментальной панели App Designer к Модели Бака.
Комментарии в коде коллбэка в приложении инструментальной панели Pendulum.mlapp
опишите операции коллбэка и предложения программирования. Чтобы просмотреть код коллбэка, откройте Pendulum.mlapp
в App Designer, и затем кликают по вкладке Code View. В Командном окне введите:
edit Pendulum
Задайте пути к блоку для сигналов в моделях, на которые ссылаются,
К потоковым данным из сигналов в моделях, на которые ссылаются, connectLine
и addSignal
функции для объекта инструментирования используют массив ячеек, чтобы передать блок path.
Для примеров смотрите setupInstrumentation(app)
функция в приложении.
Функция updatePlotAxes
Эта функция является коллбэком с тремя аргументами.
Функция использует eventData.ExecTime
получить текущее время на целевом компьютере и использовать то время, чтобы перенести XLims PlotAxes.
Функция updateAnimationCallback
Для каждого AcquireGroup эта функция проверяет, существуют ли новые данные с прошлого раза, когда коллбэк был назван. Если существуют данные, функция обновляет объекты Animation.
Обновите оси, и анимация при помощи получают группы
Часто, модели имеют несколько частот дискретизации.
Чтобы обновиться отображают данные на графике и строят анимацию, данные о группах объектов инструментирования AcquireGroups
. Для slrtpendulum
пример, два AcquireGroups
на уровне различных частот дискретизации.
В коде коллбэка эта обработка отображается как AcquireGroupData
группы сигнала в updateAnimationCallback
функция. Отображения приложения эти группы в инструментировании возражают при помощи команды представления.
app.hInst.AcquireList.view
Приложение инструментальной панели обрабатывает app
обеспечивает доступ, чтобы закрыть приложение.
Закройте приложение. В Командном Окне MATLAB введите:
close(app.UIFigure)
Закройте открытые модели. В Командном окне введите:
bdclose ('all');