Трассировка сигнала с целевым осциллографом

Этот пример показывает, как проследить сигналы с целевым осциллографом Simulink® Real-Time™. Целевые осциллографы используются, чтобы проследить или отобразить сигналы на видеомониторе, присоединенном к целевому компьютеру. После того, как скрипт создает и загружает модель осциллятора, xpcosc, к целевому компьютеру, это добавляет четыре осциллографа типа 'цель' к приложению, каждый осциллограф, имеющий различное приобретение DisplayMode. Четыре осциллографа идентифицированы следующими числами осциллографа: 1, 3, 6, и 7. Сигналы 'Генератор Сигнала' (вход осциллятора) и 'Integrator1' (осциллятор вывод) добавлены к и отображены на каждом осциллографе.

  • scs (1): № 1 Осциллографа собирается Перерисовать, Сетка, FreeRun.

  • scs (2): № 3 Осциллографа собирается Перерисовать, NoGrid, Сигнал.

  • scs (3): № 6 Осциллографа установлен в Числовой, - программное обеспечение.

  • scs (4): № 7 Осциллографа собирается Перерисовать, Сетка, Осциллограф.

Этот пример показывает, как использовать Функцию множества, чтобы установить несколько значений свойства объекта в одной команде.

Проверяйте связь между разработкой и целевыми компьютерами

Используйте 'slrtpingtarget', чтобы протестировать связь между разработкой и целевыми компьютерами.

if ~strcmp(slrtpingtarget, 'success')
  error(message('xPCTarget:examples:Connection'));
end

Открытый, сборка и модель загрузки к целевому компьютеру

Откройте модель осциллятора xpcosc. При настройках опции Simulink Real-Time параметра конфигурации модели системный конечный файл был установлен в xpctarget.tlc. Следовательно, создавание модели создаст исполняемое изображение, xpcosc.mldatx, который может быть запущен на компьютере, загруженном с Ядром Simulink Real-Time.

open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','xpcosc'));

Создайте модель и загрузите изображение, xpcosc.mldatx, к целевому компьютеру.

  • Сконфигурируйте для немногословной сборки.

  • Сборка и приложение загрузки.

set_param('xpcosc','RTWVerbose','off');
rtwbuild('xpcosc');
### Starting Simulink Real-Time build procedure for model: xpcosc
Warning: This model contains blocks that do not handle sample time
changes at runtime. To avoid incorrect results, only change
the sample time in the original model, then rebuild the model. 
### Successful completion of build procedure for model: xpcosc
### Created MLDATX ..\xpcosc.mldatx
### Looking for target: TargetPC1
### Download model onto target: TargetPC1

Запустите модель, отобразите целевые данные об осциллографе на графике

Создайте переменную MATLAB®, tg, содержа целевой объект Simulink Real-Time. Этот объект позволяет вам связываться с и управлять целевым компьютером.

  • Создайте целевой объект Simulink Real-Time

  • Установите шаг расчета на 250us

  • Установите время остановки на высокое значение (10 000 с)

tg = SimulinkRealTime.target;
tg.SampleTime = 0.000250;
tg.StopTime   = 10000;
  • Задайте целевые объекты осциллографа 1, 3, 6 и 7: векторизация используется.

scs = addscope(tg, 'target', [1,3,6,7]);

Получите индексы сигналов 'Integrator1', 'Генератор Сигнала'

  • Получите индекс сигнала 'Integrator1'

  • Получите индекс 'Генератора Сигнала сигнала'

  • Добавьте сигналы в объекты scope

signals(1) = getsignalid(tg, 'Integrator1');
signals(2) = getsignalid(tg, 'Signal Generator');
addsignal(scs, signals);

Используйте команду НАБОРА, чтобы одновременно установить свойства для каждого элемента вектора осциллографа

  • Установите фактор десятикратного уменьшения

  • Установите осциллограф 1 свойство.

  • Установите осциллограф 3 свойства.

  • Установите осциллограф 6 свойств.

  • Установите осциллограф 7 свойств.

  • Установите пределы оси Y для каждого осциллографа в векторе.

set(scs,'Decimation',1)
set(scs(1), ...
    {'NumSamples', 'TriggerMode', 'Grid', 'DisplayMode',   'YLimit'}, ...
    {200,          'FreeRun',     'On',   'Redraw', [-10, 10]});
set(scs(2), ...
    {'NumSamples', 'TriggerMode', 'TriggerSignal', 'TriggerLevel', ...
     'TriggerSlope', 'Grid', 'DisplayMode'}, ...
    {500,  'Signal',  getsignalid(tg, 'Signal Generator'),    0.0, ...
     'Rising',       'Off',  'Redraw'});
set(scs(3), 'NumSamples',100, 'TriggerMode', 'Software', 'DisplayMode', 'Numerical');
set(scs(4), ...
    {'NumSamples', 'TriggerMode', 'TriggerScope', 'Grid', 'DisplayMode'}, ...
    {2000,         'Scope',       3,              'On',   'Redraw'});
set(scs([1,2,4]), 'YLimit', 'Auto');
  • Запустите приобретение каждого осциллографа

  • Запустите симуляцию

  • Триггер программного обеспечения определяет объем 6

start(scs);
start(tg);
trigger(scs(3));

Получите изображение видеодисплея целевого компьютера

  • Ожидайте в течение 1 секунды после выполнения

  • Снимок состояния видеодисплея целевого компьютера

pause(1);
tg.viewTargetScreen;

Закройте модель

Когда сделано, близко модель.

  • Модель Close

close_system('xpcosc',0);