Фильтрация использования данных о Ethernet EtherType.
В этом примере показано, как использовать блоки в библиотеке xpcethernetlib
отфильтровать данные о Ethernet на основе EtherType отправителя. EtherType является полем в Ethernet сетевой стандарт и указывает, какой протокол транспортируется в пакете Ethernet. Данные сигнала отправляются моделью передатчика, xpcEnetDemo3Tx
, работая на одном целевом компьютере, TargetPC1, к модели получателя, xpcEnetDemo3Rx
, работая на втором целевом компьютере, TargetPC2. Блок "Filter Type" используется, чтобы задать EtherTypes, который будет принят. В этом простом примере пакетам данных, содержащим один из трех различных EtherTypes, позволяют пройти через соответствующие блоки Типа Фильтра в модели получателя. Принятые Типы Эфира:
EtherType: 88CD
(SERCOS-III)
EtherType: 88A4
(EtherCAT®)
EtherType: 0800
(IPv4)
Примечания:
В этом примере, только пакеты с EtherTypes 88CD
(SERCOS-III) и 88A4
(EtherCAT) переданы, получены и построены.
Действительный SERCOS-III и пакеты EtherCAT не передаются. Только поле EtherType в пакете Ethernet собирается эмулировать эти типы.
Чтобы запустить этот пример, вы будете нуждаться в двух целевых компьютерах, каждом с установленным и сконфигурировали выделенную карту Ethernet (в дополнение к карте Ethernet, используемой в подключении Ethernet между разработкой и целевыми компьютерами). Обратитесь к документации Simulink® Real-Time™ относительно основанных на модели коммуникаций Ethernet для деталей. После того, как сконфигурированный, устанавливает Шину PCI и Паз в блоке "Real-Time Ethernet Configuration" xpcEnetDemo3Tx
и xpcEnetDemo3Rx
к той из карты Ethernet, установленной в TargetPC1 и TargetPC2 соответственно.
Щелкните здесь, чтобы открыть модель Tx: xpcEnetDemo3Tx
. Эта модель управляет генератором с сигналом прямоугольной волны и отправляет сигналы ввода и вывода генератора в целевой компьютер Rx. Вход генератора (прямоугольная волна) передается как пакет SERCOS-III и генератор, выход передается как пакет EtherCAT. Откройте модель.
mdlOpen = 0; systems = find_system('type', 'block_diagram'); if ~any(strcmp(systems, 'xpcEnetDemo3Tx')) mdlOpen = 1; open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','xpcEnetDemo3Tx')); end
Создайте модель и загрузите на целевой компьютер Tx, TargetPC1.
Сконфигурируйте для немногословной сборки.
Установите настройку Ethernet совпадать с настройками целевого компьютера.
Сборка и приложение загрузки.
Закройте модель, если мы открыли ее.
set_param('xpcEnetDemo3Tx','RTWVerbose','off'); set_param('xpcEnetDemo3Tx/Real-time Ethernet Configuration','Driver','Intel Gigabit','Bus','5','Slot','0'); evalc('rtwbuild(''xpcEnetDemo3Tx'')'); tgTx = slrt('TargetPC1'); load(tgTx,'xpcEnetDemo3Tx'); if (mdlOpen) bdclose('xpcEnetDemo3Tx'); end
Щелкните здесь, чтобы открыть модель Rx: xpcEnetDemo3Rx
. Эта модель фильтрует пакеты на основе заданного EtherType и распаковывает полученные данные для отображения в целевых осциллографах. Откройте модель.
mdlOpen = 0; systems = find_system('type', 'block_diagram'); if ~any(strcmp(systems, 'xpcEnetDemo3Rx')) mdlOpen = 1; open_system(fullfile(matlabroot,'toolbox','rtw','targets','xpc','xpcdemos','xpcEnetDemo3Rx')); end
Создайте модель и загрузите на целевой компьютер Rx, TargetPC2.
Сконфигурируйте для немногословной сборки.
Установите настройку Ethernet совпадать с настройками целевого компьютера.
Сборка и приложение загрузки.
Закройте модель, если мы открыли ее.
set_param('xpcEnetDemo3Rx','RTWVerbose','off'); set_param('xpcEnetDemo3Rx/Real-time Ethernet Configuration','Driver','Intel Gigabit','Bus','8','Slot','10'); evalc('rtwbuild(''xpcEnetDemo3Rx'')'); tgRx = slrt('TargetPC2'); load(tgRx,'xpcEnetDemo3Rx'); if (mdlOpen) bdclose('xpcEnetDemo3Rx'); end
Используя переменные объекта Simulink Real-Time tgTx
и tgRx
, запустите модели.
Запустите модель Tx.
Запустите модель Rx.
Позвольте моделям, запущенным в течение по крайней мере 5 секунд.
start(tgTx); start(tgRx); pause(5);
Просмотрите видеодисплей целевого компьютера Tx. Это отображает график данных сигнала, который отправляется в целевой компьютер Rx через необработанный Ethernet. Используйте команду:
tgTx.viewTargetScreen;
Voew видеодисплей целевого компьютера Rx. Это отображает график данных сигнала, полученных от целевого компьютера Tx через необработанный Ethernet. Обратите внимание на то, что данные с EtherTypes SERCOS-III и EtherCAT проходят через фильтры. Используйте команду:
tgRx.viewTargetScreen;
Когда сделано, мешайте моделям запуститься.
Остановите модель Tx.
Остановите модель Rx.
stop(tgTx); stop(tgRx);