Свяжитесь между двумя моделями Simulink® Real-Time™ по Ethernet.
Этот пример показывает, как использовать блоки в библиотеке xpcethernetlib
, чтобы связаться между двумя целевыми компьютерами по Ethernet. Данные сигнала отправляются моделью передатчика, xpcEnetDemo1Tx
, работая на одном целевом компьютере, TargetPC1, к модели получателя, xpcEnetDemo1Rx
, работая на втором целевом компьютере, TargetPC2. Блоки в xpcethernetlib
включают "необработанный" Ethernet для IO в реальном времени.
Чтобы запустить этот пример, вы будете нуждаться в двух целевых компьютерах, каждом с установленным и сконфигурировали выделенную карту Ethernet (в дополнение к карте Ethernet, используемой для подключения Ethernet между разработкой и целевыми компьютерами). Обратитесь к документации Simulink Real-Time относительно основанных на модели коммуникаций Ethernet для деталей. После того, как сконфигурированный, устанавливает Шину PCI и Слот в блоке "Real-Time Ethernet Configuration" xpcEnetDemo1Tx
и xpcEnetDemo1Rx
к той из карты Ethernet, установленной в TargetPC1 и TargetPC2 соответственно.
Щелкните здесь, чтобы открыть модель Tx: xpcEnetDemo1Tx
. Эта модель управляет осциллятором с сигналом прямоугольной волны и отправляет сигналы ввода и вывода осциллятора в целевой компьютер Rx с помощью необработанного Ethernet.
Откройте модель.
mdlOpen = 0; systems = find_system('type', 'block_diagram'); if ~any(strcmp(systems, 'xpcEnetDemo1Tx')) mdlOpen = 1; open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','xpcEnetDemo1Tx')) end
Создайте модель и загрузите на целевой компьютер Tx, TargetPC1.
Сконфигурируйте для немногословной сборки.
Сборка и приложение загрузки.
Закройте модель, если мы открыли ее.
set_param('xpcEnetDemo1Tx','RTWVerbose','off'); evalc('rtwbuild(''xpcEnetDemo1Tx'')'); if (mdlOpen) bdclose('xpcEnetDemo1Tx'); end
Щелкните здесь, чтобы открыть модель Rx: xpcEnetDemo1Rx
. Эта модель получает данные, отправленные xpcEnetDemo1Tx
, и распаковывает данные для отображения в целевом осциллографе. Откройте модель.
mdlOpen = 0; systems = find_system('type', 'block_diagram'); if ~any(strcmp(systems, 'xpcEnetDemo1Rx')) mdlOpen = 1; open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','xpcEnetDemo1Rx')) end
Создайте модель и загрузите на целевой компьютер Rx, TargetPC2.
Сконфигурируйте для немногословной сборки.
Сборка и приложение загрузки.
Закройте модель, если мы открыли ее.
set_param('xpcEnetDemo1Rx','RTWVerbose','off'); evalc('rtwbuild(''xpcEnetDemo1Rx'')'); if (mdlOpen) bdclose('xpcEnetDemo1Rx'); end
Используя переменные объекта Simulink Real-Time tgTx
и tgRx
, запустите модели.
Запустите модель Tx.
Запустите модель Rx.
Позвольте моделям, запущенным в течение по крайней мере 5 секунд.
start(tgTx); start(tgRx); pause(5);
Просмотрите видеодисплей целевого компьютера Tx. Это отображает график данных сигнала, который отправляется в целевой компьютер Rx через необработанный Ethernet. Используйте команду:
tgTx.viewTargetScreen
Просмотрите видеодисплей целевого компьютера Rx. Это отображает график данных сигнала, который получен от целевого компьютера Tx через необработанный Ethernet. Используйте команду:
tgRx.viewTargetScreen
Когда сделано, мешайте моделям запуститься.
Остановите модель Tx.
Остановите модель Rx.
stop(tgTx); stop(tgRx);