Цель к Целевой Передаче с помощью UDP

Этот пример показывает, как использовать блоки UDP, чтобы отправить данные между двумя целевыми компьютерами. Модель TargetToTargetRealtimeUDP1 работает на TargetPC1. Модель TargetToTargetRealtimeUDP2 работает на TargetPC2. Обе модели отправляют и получают пакеты данных сигнала.

Примечание: При рассмотрении UDP как протокол для того, чтобы передать данные к/от среде Simulink® Real-Time™, важно знать о следующем:

  • UDP является протоколом без установления соединения, который не проверяет, чтобы подтвердить, что пакеты были переданы или получены. Пакеты данных могут быть потеряны или пропущены.

  • Для получения дополнительной информации об использовании UDP с Simulink Real-Time см. документацию относительно поддержки ввода-вывода UDP.

Щелкните здесь, чтобы открыть этот пример: TargetToTargetUDP.

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

Щелкните здесь, чтобы открыть модель 1: TargetToTargetRealtimeUDP1.

Откройте модель.

mdlOpen = 0;
systems = find_system('type', 'block_diagram');
if ~any(strcmp('TargetToTargetRealtimeUDP1', systems))
  mdlOpen = 1;
  open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','TargetToTargetRealtimeUDP1'));
end

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

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

  • Сконфигурируйте параметры UDP для TargetPC1.

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

set_param('TargetToTargetRealtimeUDP1','RTWVerbose','off');
set_param('TargetToTargetRealtimeUDP1/UDP Configure','PCIBus','5')
set_param('TargetToTargetRealtimeUDP1/UDP Configure','PCISlot','0')
set_param('TargetToTargetRealtimeUDP1/UDP Configure','PCIFunction','0')
rtwbuild('TargetToTargetRealtimeUDP1');
### Starting Simulink Real-Time build procedure for model: TargetToTargetRealtimeUDP1
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: TargetToTargetRealtimeUDP1
### Created MLDATX ..\TargetToTargetRealtimeUDP1.mldatx
### Looking for target: TargetPC1
### Download model onto target: TargetPC1

Закройте модель, если мы открыли ее.

if (mdlOpen)
  bdclose('TargetToTargetRealtimeUDP1');
end

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

Щелкните здесь, чтобы открыть модель 2: TargetToTargetRealtimeUDP2.

Откройте модель.

mdlOpen = 0;
systems = find_system('type', 'block_diagram');
if ~any(strcmp('TargetToTargetRealtimeUDP2', systems))
  mdlOpen = 1;
  open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','TargetToTargetRealtimeUDP2'));
end

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

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

  • Сконфигурируйте параметры UDP для TargetPC2.

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

set_param('TargetToTargetRealtimeUDP2','RTWVerbose','off');
set_param('TargetToTargetRealtimeUDP2/UDP Configure','PCIBus','8')
set_param('TargetToTargetRealtimeUDP2/UDP Configure','PCISlot','10')
set_param('TargetToTargetRealtimeUDP2/UDP Configure','PCIFunction','0')
rtwbuild('TargetToTargetRealtimeUDP2');
### Starting Simulink Real-Time build procedure for model: TargetToTargetRealtimeUDP2
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: TargetToTargetRealtimeUDP2
### Created MLDATX ..\TargetToTargetRealtimeUDP2.mldatx
### Looking for target: TargetPC2
### Download model onto target: TargetPC2

Закройте модель, если мы открыли ее.

if (mdlOpen)
  bdclose('TargetToTargetRealtimeUDP2');
end

Запустите обе Модели

Используя переменные объекта Simulink Real-Time tg1 и tg2, запустите модели.

  • Запустите модель TargetPC1. Объект Simulink является tg.

  • Запустите модель TargetPC2. Объект Simulink является tg2.

  • Запуститесь в течение 5 секунд.

start(tg);
start(tg2);
pause(5);

Остановите обе Модели

Используя переменные объекта Simulink Real-Time tg1 и tg2, остановите модели.

  • Остановите модель TargetPC1. Объект Simulink является tg.

  • Остановите модель TargetPC2. Объект Simulink является tg2.

stop(tg);
stop(tg2);

Сгенерируйте график TargetPC1

tg.viewTargetScreen();

Сгенерируйте график TargetPC2

tg2.viewTargetScreen();