UDP Receive

Прием данных по сети UDP от указанной удаленной машины

Библиотека

Instrument Control Toolbox

  • UDP Receive block

Описание

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

Примечание

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

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

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

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

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

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

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

Для получения дополнительной информации об этих функциях см. документацию Simulink.

Параметры

Примечание

Вы можете ввести переменный MATLAB в текстовые поля редактирования в диалоговом окне UDP Receive Block Parameters, за исключением следующих полей: Local address, Remote address, ASCII format string и Terminator.

Local address

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

Local port

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

Enable local port sharing

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

Remote address

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

Remote Port

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

Verify address and port connectivity

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

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

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

Output latest data

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

Data size

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

Source Data type

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

  • single

  • double

  • int8

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

  • int16

  • uint16

  • int32

  • uint32

  • ASCII

ASCII format string

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

Terminator

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

Byte order

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

Enable blocking mode

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

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

В этом примере вы запускаете симуляцию в момент времени (t = 0) и задаете объем данных для приема как 4 (установите в поле Data size диалогового окна UDP Receive Block Parameters). После начала симуляции данные получают асинхронно в буфере FIFO.

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

Симуляция режима блокировки происходит так:

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

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

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

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

Примечание

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

Не блокирующий режим

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

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

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

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

Timeout

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

Block sample time

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

Введенный в R2007b