В этом примере показано, как настроить двусторонний обмен данными с помощью платы Ethernet, совместно используемой для соединения между разработчиками и целевыми компьютерами. С помощью этой конфигурации можно взаимодействовать между двумя системами Simulink ® Real-Time™, между продуктами Simulink в реальном времени и Simulink или между двумя моделями Simulink. Если одна или обе системы работают как модель Simulink не реального времени, обязательно задайте время выборки .
В этом примере не требуется настраивать выделенную плату Ethernet, поскольку в этом примере используется соединение между разработчиками и целевыми компьютерами.
Примеры моделей имеют имена slrt_ex_udpsendreceiveA и slrt_ex_udpsendreceiveB. Замените примеры портов и IP-адресов портами и адресами в соответствии с требованиями сети. В этом примере используется целевой компьютер, расположенный по IP-адресу 192.168.7.5 и использует компьютер разработки, расположенный по IP-адресу 192.168.7.2.
Модели переносят два различных набора данных между ними, один набор данных из slrt_ex_udpsendreceiveA кому slrt_ex_udpsendreceiveB и другой набор данных в противоположном направлении.
В этом примере входные данные генерируются с помощью блоков Simulink Constant, использующих функцию случайных чисел MATLAB ® (rand). Программа Simulink Coder™ использует эту функцию во время генерации кода для генерации случайных чисел. Создание вектора uint8 (3x3), используйте функцию MATLAB:
uint8(255 * rand(3,3))
потому что 255 - максимальное значение для 8-разрядного целого числа без знака. Другие значения генерируются аналогично.
slrt_ex_udpsendreceiveA кому slrt_ex_udpsendreceiveBШирина передаваемых данных UDP составляет 75 байт. Данные для переноса находятся в следующих форматах:
[3 3] из uint8 (9 байт)
[1 1] из uint16 (2 байта)
[2 4] из double (64 байта)
При упаковке данные выравниваются по 1-байтовым границам.
slrt_ex_udpsendreceiveB кому slrt_ex_udpsendreceiveAПередаваемые данные UDP имеют ширину 79 байт. Данные для переноса находятся в следующих форматах:
[4 1] из single (16 байт)
[2 2] из double (32 байта)
[2 2] из uint32 (16 байт)
[5 3] из int8 (15 байт)
При упаковке данные выравниваются по 2-байтовым границам. Во время упаковки добавляется байт площадки с нулевым значением.
slrt_ex_udpsendreceiveAФинал slrt_ex_udpsendreceiveA показано на рисунке.
В таблицах перечислены параметры для сторон передачи и приема модели.

slrt_ex_udpsendreceiveA Сторона отправкиБлок | Параметр | Стоимость |
|---|---|---|
Упаковка байтов | Тип данных выходного порта (упакованный) |
|
Типы данных входного порта (распакованные) (массив ячеек) |
| |
Выравнивание байтов |
| |
Отправка UDP | Локальный IP-адрес |
|
Локальный порт |
| |
По IP-адресу |
| |
К порту |
| |
Время выборки (-1 для унаследованных) |
|
Length входной порт принимает выход блока Width, который вычисляет ширину сигнала, подключенного к Data порт.
Параметры блока упаковки байтов соответствуют блоку распаковки байтов slrt_ex_udpsendreceiveB.
slrt_ex_udpsendreceiveA Сторона полученияБлок | Параметр | Стоимость |
|---|---|---|
Получение UDP | Локальный IP-адрес |
|
Локальный порт |
| |
Ширина приема |
| |
Получение из любого источника |
| |
От IP-адреса |
| |
Время выборки (-1 для унаследованных) |
| |
Распаковка байтов | Типы данных выходного порта (распакованные) (массив ячеек) |
|
Размеры выходного порта (распакованный) (массив ячеек) |
| |
Выравнивание байтов |
|
Второй выходной порт блока приема UDP посылается в терминатор. Этот вывод можно использовать для определения момента поступления пакета. То же самое справедливо для выходов блока распаковки байтов.
Ширина приема блока приема UDP соответствует ширине выходного порта блока упаковки байтов в slrt_ex_udpsendreceiveB.
Параметры блока распаковки байтов соответствуют параметрам блока упаковки байтов slrt_ex_udpsendreceiveB.
Количество распакованных байтов: 79. Выравнивание байтов: 2. Блок распаковки байтов предполагает, что входной вектор включает площадку 0 для выравнивания вектора по четной границе.
slrt_ex_udpsendreceiveBФинал slrt_ex_udpsendreceiveB модель показана на рисунке.
В таблицах перечислены параметры приемной стороны и передающей стороны модели.

slrt_ex_udpsendreceiveB Сторона полученияБлок | Параметр | Стоимость |
|---|---|---|
Получение UDP | Локальный IP-адрес |
|
Локальный порт |
| |
Ширина приема |
| |
Получение из любого источника |
| |
От IP-адреса |
| |
Время выборки (-1 для унаследованных) |
| |
Распаковка байтов | Типы данных выходного порта (распакованные) (массив ячеек) |
|
Размеры выходного порта (распакованный) (массив ячеек) |
| |
Выравнивание байтов |
|
Второй выходной порт блока приема UDP посылается в терминатор. Этот вывод можно использовать для определения момента поступления пакета. То же самое справедливо для выходов блока распаковки байтов.
Ширина приема блока приема UDP соответствует ширине выходного порта блока упаковки байтов в slrt_ex_udpsendreceiveA.
Параметры блока распаковки байтов соответствуют блоку упаковки байтов в slrt_ex_udpsendreceiveA.
slrt_ex_udpsendreceiveB Сторона отправкиБлок | Параметр | Стоимость |
|---|---|---|
Упаковка байтов | Тип данных выходного порта (упакованный) |
|
Типы данных входного порта (распакованные) (массив ячеек) |
| |
Выравнивание байтов |
| |
Отправка UDP | Локальный IP-адрес |
|
Локальный порт |
| |
По IP-адресу |
| |
К порту |
| |
Время выборки (-1 для унаследованных) |
|
Length входной порт принимает выход блока Width, который вычисляет ширину сигнала, подключенного к Data порт.
Параметры блока упаковки байтов соответствуют параметрам блока распаковки байтов slrt_ex_udpsendreceiveA.
Количество распакованных байтов: 79. Выравнивание байтов: 2. Блок Byte Packing вставляет выходной вектор с помощью 0 для выравнивания по четной границе.