UDP получает

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

Библиотека

Instrument Control Toolbox

Описание

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

Примечание

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

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

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

Буфер Метода "первым пришел - первым вышел" (FIFO) получает данные. На каждом временном шаге Порт данных выводит требуемые значения от буфера. В не блокирующемся режиме порт Status указывает, получил ли блок новые данные.

Параметры

Примечание

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

Local address

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

Local port

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

Enable local port sharing

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

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

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

Enable blocking mode

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

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

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

Блокирование режима

Блокирующаяся симуляция режима происходит как это:

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

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

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

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

Примечание

В блокирующемся режиме, если у вас есть больше чем одна модель UDP на вашем компьютере, гарантируют, что блок Receive получает данные. Если это не, то ваша образцовая ошибка силы. Можно избежать этого или изменением блока к режиму Nonblocking или путем сброса Приоритета блока (Simulink).

Неблокирование режима

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

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

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

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

Timeout

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

Block sample time

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

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

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