Обмен данными UDP с разделяемым Советом Ethernet

Этот пример показывает, как настроить двухсторонний обмен данными с платой Ethernet, которая совместно используется со связью между разработкой и целевыми компьютерами. Используя эту настройку, можно связаться между двумя системами Simulink® Real-Time™ между Simulink Real-Time и продуктами Simulink, или между двумя моделями Simulink. Когда один или обе из систем запускаются как модель Simulink нев реальном времени, убедиться установить шаг расчета.

Этот пример не требует блока UDP Configure, потому что пример использует связь между разработкой и целевыми компьютерами. Чтобы выполнить передачу данных UDP в реальном времени со специализированной платой Ethernet, смотрите Цель, чтобы Предназначаться для Передачи с помощью UDP.

Модели в качестве примера называют udpsendreceiveA и udpsendreceiveB. Замените порт и примеры IP-адреса с портами и адресами как требуется вашей сетью.

Переданные данные

Модели передают два различных набора данных между ними, один набор данных от udpsendreceiveA до udpsendreceiveB и другой набор данных в противоположном направлении.

В данном примере входные параметры сгенерированы с Simulink Постоянные блоки, которые используют функцию MATLAB® случайных чисел (rand). Программное обеспечение Simulink Coder™ использует эту функцию во время генерации кода, чтобы сгенерировать случайные числа. Чтобы сгенерировать вектор uint8 (3x3), используйте функцию MATLAB:

uint8(255 * rand(3,3))

потому что 255 является максимальным значением для 8-битного целого числа без знака. Другие значения сгенерированы так же.

udpsendreceiveA к udpsendreceiveB

Данные о UDP отправляют, 75 байтов шириной. Данные, чтобы передать находятся в следующих форматах.

  • [3 3] uint8 (9 байтов)

  • [1 1] uint16 (2 байта)

  • [2 4] double (64 байта)

Когда упаковано, данные выравниваются на 1-байтовых контурах.

udpsendreceiveB к udpsendreceiveA

Данные о UDP, которые будут отправлены, 79 байтов шириной. Данные, чтобы передать находятся в следующих форматах.

  • [4 1] single (16 байтов)

  • [2 2] double (32 байта)

  • [2 2] uint32 (16 байтов)

  • [5 3] int8 (15 байтов)

Когда упаковано, данные выравниваются на 2-байтовых контурах. Байт клавиатуры с нулевым знаком добавляется во время упаковки.

Настройте udpsendreceiveA

Итоговый udpsendreceiveA показывают в фигуре.

Таблицы приводят параметры для отправления и получают стороны модели.

udpsendreceiveA отправляет сторону

Блок

Параметр

Значение

Упаковка байта

Output port (packed) data type

'uint8'

Input port (unpacked) data types (cell array)

{'uint8', 'uint16', 'double'}

Byte alignment

1

UDP отправляет

Local IP address

Use host-target connection

Local port

-1 (выбирает автоматически)

To IP address

192.168.0.2

To port

25000

Sample time (-1 for inherited)

0.01

  • Входной порт Length получает вывод блока Width, который вычисляет ширину сигнала, соединенного с портом Data.

  • Настройки блока Byte Packing совпадают с блоком Byte Unpacking udpsendreceiveB.

udpsendreceiveA получает сторону

Блок

Параметр

Значение

UDP получает

Local IP address

Use host-target connection

Local port

25000

Receive width

80

Receive from any source

off

From IP address

192.168.0.1

Sample time (-1 for inherited)

0.01

Распаковка байта

Output port (unpacked) data types (cell array)

{'single', 'double', 'uint32', 'int8'}

Output port (unpacked) dimensions (cell array)

{4, [2 2], [2 2], [5 3]}

Byte alignment

2

  • Второй выходной порт блока UDP Receive отправляется в терминатор строки. Можно использовать этот вывод, чтобы определить, когда пакет прибыл. То же самое верно для выходных параметров блока Byte Unpack, который в действительной модели использовался бы в модели.

  • Receive width блока UDP Receive совпадает с шириной выходного порта блока Byte Packing в udpsendreceiveB.

  • Настройки блока Byte Unpacking совпадают с настройками блока Byte Packing udpsendreceiveB.

  • Количеством распакованных байтов является 79. Выравниванием байта является 2, таким образом, блок Byte Unpacking принимает, что входной вектор включает клавиатуру 0, чтобы выровнять вектор на четном контуре.

Настройте udpsendreceiveB

Итоговую модель udpsendreceiveB показывают в фигуре.

Таблицы приводят параметры для получить стороны и отправить стороны модели.

udpsendreceiveB получает сторону

Блок

Параметр

Значение

UDP получает

Local IP address

Use host-target connection

Local port

25000

Receive width

75

Receive from any source

off

From IP address

192.168.0.2

Sample time (-1 for inherited)

0.01

Распаковка байта

Output port (unpacked) data types (cell array)

{'uint8', 'int16', 'double'}

Output port (unpacked) dimensions (cell array)

{[3 3], 1, [2 4]}

Byte alignment

1

  • Второй выходной порт блока UDP Receive отправляется в терминатор строки. Можно использовать этот вывод, чтобы определить, когда пакет прибыл. То же самое верно для выходных параметров блока Byte Unpack, который в действительной модели использовался бы в модели.

  • Receive width блока UDP Receive совпадает с шириной выходного порта блока Byte Packing в udpsendreceiveA.

  • Настройки блока Byte Unpacking совпадают с блоком Byte Packing в udpsendreceiveA.

udpsendreceiveB отправляет сторону

Блок

Параметр

Значение

Упаковка байта

Output port (packed) data type

'uint8'

Input port (unpacked) data types (cell array)

{'single', 'double', 'uint32', 'int8'}

Byte alignment

2

UDP отправляет

Local IP address

Use host-target connection

Local port

-1 (выбирает автоматически)

To IP address

192.168.0.1

To port

25000

Sample time (-1 for inherited)

0.01

  • Входной порт Length получает вывод блока Width, который вычисляет ширину сигнала, соединенного с портом Data.

  • Настройки блока Byte Packing совпадают с настройками блока Byte Unpacking udpsendreceiveA.

  • Количеством распакованных байтов является 79. Выравниванием байта является 2, таким образом, блок Byte Packing заполняет выходной вектор 0, чтобы выровняться на четном контуре.

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

| | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте