Свяжитесь между двумя моделями 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.
Сконфигурируйте для немногословной сборки.
Установите настройку Ethernet совпадать с настройками целевого компьютера
Сборка и приложение загрузки.
Закройте модель, если мы открыли ее.
set_param('xpcEnetDemo1Tx','RTWVerbose','off'); set_param('xpcEnetDemo1Tx/Real-time Ethernet Configuration','Driver','Intel Gigabit','Bus','5','Slot','0') evalc('rtwbuild(''xpcEnetDemo1Tx'')'); tgTx = slrt('TargetPC1'); load(tgTx,'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.
Сконфигурируйте для немногословной сборки.
Установите настройку Ethernet совпадать с настройками целевого компьютера
Сборка и приложение загрузки.
Закройте модель, если мы открыли ее.
set_param('xpcEnetDemo1Rx','RTWVerbose','off'); set_param('xpcEnetDemo1Rx/Real-time Ethernet Configuration','Driver','Intel Gigabit','Bus','8','Slot','10') evalc('rtwbuild(''xpcEnetDemo1Rx'')'); tgRx = slrt('TargetPC2'); load(tgRx,'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);