Потоковые данные сигнала от целевого компьютера до инспектора данных моделирования

Этот пример показывает, как создать список сигнала для модели Simulink Real-Time при помощи API сигналов потоковой передачи. После того, как вы создадите приложение реального времени из модели и запустите приложение на целевом компьютере, можно передать данные сигнала потоком Инспектору Данных моделирования от динамически выбранных сигналов.

Создайте объект списка сигнала для блоков

Откройте модель, идентифицируйте программируемые имена блоков в модели и создайте объект списка сигнала. Для получения дополнительной информации смотрите SimulinkRealTime.SignalList.

open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','xpcosc'));
find_system('xpcosc')
mySignals=SimulinkRealTime.SignalList()
ans =

  11×1 cell array

    {'xpcosc'                  }
    {'xpcosc/Gain'             }
    {'xpcosc/Gain1'            }
    {'xpcosc/Gain2'            }
    {'xpcosc/Integrator'       }
    {'xpcosc/Integrator1'      }
    {'xpcosc/Mux'              }
    {'xpcosc/Scope'            }
    {'xpcosc/Signal↵Generator'}
    {'xpcosc/Sum'              }
    {'xpcosc/Outport'          }


mySignals = 

  SignalList with no properties.

Добавьте сигналы сигнализировать об объекте списка

Чтобы добавить сигналы по наименованию в объект списка сигнала, получите информацию параметра для сигналов и используйте информацию о параметре в команде add. Добавление сигналов по наименованию облегчает находить сигналы в Инспекторе Данных моделирования при просмотре данных сигнала.

p = get_param('xpcosc/Integrator','PortHandles');
l = get_param(p.Outport,'Line');
set_param(l,'Name','Integ_out');
add(mySignals,'Integ_out')
p = get_param('xpcosc/Integrator1','PortHandles');
l = get_param(p.Outport,'Line');
set_param(l,'Name','Integ1_out');
add(mySignals,'Integ1_out')

Также можно добавить сигналы в объект списка сигнала блоком path и индексом порта. Чтобы добавить вход блока Integrator модели xpcosc в список сигнала блоком path и индекс порта, команда:

add(mySignals,'xpcosc/Integrator',1);

Просмотрите сигналы в объекте списка сигнала

Чтобы просмотреть сигналы в объекте списка сигнала, используйте команду view.

view(mySignals)
Integ_out
Integ1_out

Создайте модель и запущенный приложение

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

Модель не должна быть открыта для потоковых данных сигнала из приложения реального времени.

evalc('rtwbuild(''xpcosc'')');
bdclose('all');

Установите время остановки и запустите приложение реального времени. Чтобы сгенерировать данные сигнала, запустите приложение в течение 20 секунд.

tg.StopTime=Inf;
start(tg);
pause(20);

Потоковые Данные сигнала Инспектору Данных моделирования

Чтобы выбрать сигналы передать потоком, используйте команду setStreamingSignals. Этот выбор сигнала с объектом списка сигнала является динамическим, потому что выбор происходит после того, как вы создаете и загружаете приложение реального времени.

После того, как вы выбираете сигналы передать потоком, отобразить сигналы в Инспекторе данных моделирования (SDI). Для получения дополнительной информации смотрите setStreamingSignals.

setStreamingSignals(tg,mySignals);
Simulink.sdi.view;

Чтобы прекратить передавать сигналы потоком, используйте команду:

setStreamingSignals(tg,[]);

stop(tg);

Смотрите также

Похожие темы