exponenta event banner

Получение UDP

Получение данных по сети UDP с указанного удаленного компьютера

Библиотека

Панель инструментов управления приборами

  • UDP Receive block

Описание

Блок приема UDP конфигурирует и открывает интерфейс к указанному удаленному адресу с помощью протокола UDP. Конфигурирование и инициализация выполняются один раз в начале выполнения модели. Во время работы модели блок получает данные либо в блокирующем, либо в неблокирующем режиме.

Примечание

Для использования этого блока необходима лицензия как на Toolbox™ управления приборами, так и на программное обеспечение Simulink ®.

Этот блок не имеет входных портов. Он имеет один или два выходных порта в зависимости от выбранного режима блокировки или отсутствия блокировки. При выборе режима блокировки блок будет иметь один выходной порт, соответствующий полученным данным.

Если режим блокировки не выбран, блок будет иметь два выходных порта - порт данных и порт состояния.

Буфер FIFO принимает данные. На каждом шаге времени порт данных выводит запрошенные значения из буфера. В неблочном режиме порт Status указывает, получил ли блок новые данные.

Другие поддерживаемые функции

  • Этот блок поддерживает использование режима Simulink Accelerator™, но не Rapid Accelerator или создание кода.

  • Блок поддерживает использование ссылок на модели, так что модель может включать другие модели Simulink в качестве модульных компонентов.

Дополнительные сведения об этих функциях см. в документации Simulink.

Параметры

Примечание

Переменные MATLAB можно вводить в поля редактирования текста в диалоговом окне Параметры блока приема UDP, за исключением следующих полей: Локальный адрес, Удаленный адрес, строка формата ASCII и Терминатор.

Локальный адрес

Укажите IP-адрес, имя или адрес веб-сервера локального узла. Это то же самое, что и интерфейс UDP localhost собственность. По умолчанию это поле пусто.

Локальный порт

Укажите порт для привязки на локальном компьютере. Значение по умолчанию: -1, который автоматически привязывается к доступному порту.

Включить совместное использование локальных портов

Используется для включения совместного использования портов. Порты UDP могут совместно использоваться другими приложениями, что позволяет нескольким приложениям прослушивать дейтаграммы UDP на этом порту. Можно привязать UDP-объект к определенному LocalPort и в другом приложении привязать сокет UDP к тому же номеру локального порта, чтобы оба могли принимать широковещательные данные UDP. Включение этого параметра позволяет другим UDP-сокетам привязываться к UDP-объектам LocalPort. По умолчанию он отключен.

Удаленный адрес

Укажите IP-адрес, имя или адрес веб-сервера компьютера, с которого необходимо получать данные. Для этого поля установлено значение localhost по умолчанию.

Удаленный порт

Укажите удаленный порт на хосте, к которому необходимо подключиться. Значение порта по умолчанию: 9090. Допустимые значения порта: 1 кому 65535.

Проверка подключения к адресу и порту

Нажмите эту кнопку, чтобы:

  • Проверьте правильность указанного удаленного адреса.

  • Установите соединение с указанным удаленным адресом и портом.

Вывод последних данных

Разрешить прием последних данных из блока приема UDP. Данные обычно принимаются способом FIFO. Если этот параметр включен, вместо использования метода FIFO принимаются последние доступные пакеты. Обратите внимание, что этот параметр отключен, если типом данных является ASCII. По умолчанию этот параметр отключен.

Размер данных

Укажите размер выходных данных или количество значений, которые должны считываться на каждом этапе моделирования. Размер по умолчанию: [1 1].

Тип исходных данных

Укажите тип входных данных для получения из блока. Можно выбрать одно из следующих значений:

  • single

  • double

  • int8

  • uint8 (по умолчанию)

  • int16

  • uint16

  • int32

  • uint32

  • ASCII

Строка формата ASCII

Эта опция доступна только при выборе ASCII в качестве типа данных. Он определяет строку формата для данных. Список форматов см. в разделе fscanf функция.

Терминатор

Эта опция доступна только при выборе ASCII в качестве типа данных. Он может использоваться для установки терминатора для считывания данных. Дополнительные сведения о настройке свойства см. в разделе Terminator.

Порядок байтов

При использовании двоичного формата или формата binblock с более чем 8 битами можно указать порядок байтов инструмента для данных. Ваши варианты: BigEndian или LittleEndian.

Включить режим блокировки

Укажите, требуется ли блокировать моделирование при получении данных. Эта опция выбрана по умолчанию. Снимите этот флажок, если операция чтения не должна блокировать моделирование.

Если включен режим блокировки, модель будет блокировать моделирование, пока она ожидает, когда будут доступны запрошенные данные. Если режим блокировки не включен, моделирование выполняется непрерывно. Блок имеет два выходных порта: Status и Data. Порт данных содержит запрашиваемый набор данных на каждом шаге времени. Порт Status содержит 0 или 1 в зависимости от того, были ли получены новые данные на данном шаге времени. На следующих диаграммах показана разница между получением данных в режиме блокировки и в режиме неблокировки.

В этом примере моделирование запускается в момент времени (t = 0) и указывается объем данных, который должен быть получен как 4 (в поле Размер данных диалогового окна Параметры блока приема UDP). После начала моделирования данные собираются асинхронно в буфере FIFO.

Режим блокировки

Моделирование режима блокировки происходит следующим образом:

  • Во время шага 1: программное обеспечение Simulink запрашивает данные, и буфер имеет четыре доступных значения, блок выполняет запрос без прерывания моделирования. Блок сбрасывает значение буфера на 0.

  • Во время шага 2: программное обеспечение Simulink снова запрашивает данные, и буфер имеет только три значения, поэтому он блокирует моделирование, пока не получит четвертое значение. Когда блок получает четвертое значение, он выполняет запрос и возобновляет моделирование. Блок сбрасывает значение буфера на 0.

  • На шаге 3: Когда программное обеспечение Simulink запрашивает данные, блок имеет пять значений и возвращает первые четыре, которые он получил, и сбрасывает буфер в 1.

Если запрошенные данные не получены в течение периода времени, указанного в поле Timeout (диалогового окна UDP Receive Block Parameters), происходит ошибка программного обеспечения Simulink и моделирование останавливается.

Примечание

В режиме блокировки, если на компьютере имеется несколько UDP-моделей, убедитесь, что блок получения получает данные. Если это не так, то модель может выйти из строя. Этого можно избежать, изменив блок на режим «Без блокировки» или сбросив приоритет блока.

Неблочный режим

Здесь моделирование не блокируется и выполняется непрерывно.

  • Во время шага 1: программное обеспечение Simulink запрашивает данные, и буфер имеет четыре доступных значения, блок выполняет запрос и изменяет Status значение порта в 1, указывая, что новые данные доступны. Data порт в этой точке содержит вновь полученные значения. Блок сбрасывает значение буфера на 0.

  • Во время шага 2: программное обеспечение Simulink снова запрашивает данные, и буфер имеет только три значения, и блок не может вернуть их, так как размер данных указан как 4. Поэтому блок устанавливает Status значение порта в 0, указывая на отсутствие новых данных. Data порт содержит ранее полученное значение, а буфер имеет значение три (количество значений, полученных с момента выполнения последнего запроса).

  • На шаге 3: Когда программное обеспечение Simulink запрашивает здесь данные, буфер теперь имеет пять значений и возвращает первые четыре в том порядке, в котором он получил, и изменяет Status значение порта в 1.

Перерыв

Укажите время, в течение которого модель будет ждать данных в течение каждого шага времени моделирования. Значение по умолчанию: inf (секунды). Это поле недоступно, если режим блокировки не включен.

Время блочной выборки

Укажите время выборки блока во время моделирования. Значение по умолчанию: 0.01 (секунды).

Представлен в R2007b