Получите данные по сети 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.
Задайте IP-адрес, имя или адрес веб-сервера локального хоста. Это совпадает со свойством localhost
интерфейса UDP. Это поле пусто по умолчанию.
Задайте порт, чтобы привязать локальную машину. Значением по умолчанию является -1
, который автоматически связывает с доступным портом.
Используйте, чтобы включить совместное использование порта. Порты UDP могут быть совместно использованы другими приложениями, чтобы позволить, чтобы несколько приложений слушали дейтаграммы UDP на том порте. Можно связать объект UDP с определенным номером LocalPort
, и в другом приложении связывают сокет UDP с тем же самым локальным номером порта, таким образом, оба могут получить широковещательные данные о UDP. Включение этой опции позволяет другим сокетам UDP связывать с объектом UDP LocalPort
. Это прочь по умолчанию.
Задайте IP-адрес, имя или адрес веб-сервера машины, из которой необходимо получить данные. Это поле установлено в localhost
по умолчанию.
Задайте удаленный порт на хосте, с которым необходимо соединиться. Значением порта по умолчанию является 9090
. Значениями действительного порта является 1
к 65535
.
Нажмите эту кнопку к:
Проверяйте, правилен ли заданный удаленный адрес.
Установите связь с заданным удаленным адресом и портом.
Включите, чтобы получить последние данные из блока UDP Receive. Данные обычно получаются способом FIFO. Когда включено, последние доступные пакеты получены, вместо того, чтобы использовать метод FIFO. Обратите внимание на то, что эта опция отключена, когда тип данных является ASCII. Эта опция прочь по умолчанию.
Задайте размер выходных данных или количество значений, которые должны быть считаны на каждом шаге времени симуляции. Размером по умолчанию является [1 1]
.
Задайте тип входных данных, чтобы получить от блока. Можно выбрать из следующих значений:
single
double
int8
uint8
(значение по умолчанию)
int16
uint16
int32
uint32
ASCII
Эта опция только доступна, когда вы выбираете ASCII как свой тип данных. Это задает строку формата для данных. Для списка форматов смотрите, что fscanf
функционирует.
Эта опция только доступна, когда вы выбираете ASCII как свой тип данных. Это может использоваться, чтобы установить терминатор строки для чтения данных. Для получения дополнительной информации об установке свойства, смотрите Terminator
.
При использовании двоичного файла или binblock формата больше чем с 8 битами, можно задать порядок байтов инструмента для данных. Вашими опциями является BigEndian
или LittleEndian
.
Задайте, хотите ли вы блокировать симуляцию при получении данных. Эта опция выбрана по умолчанию. Снимите этот флажок, если вы не хотите, чтобы операция чтения блокировала симуляцию.
Если вы позволите блокировать режим, модель блокирует симуляцию, в то время как это ожидает запрошенных данных, чтобы быть доступным. Если вы не позволяете блокировать режим, симуляция запускается постоянно. Блок имеет два выходных порта, Состояние и Данные. Порт данных содержит требуемый набор данных на каждом временном шаге. Порт 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
.
Задайте количество времени, что модель будет ожидать данных во время каждого шага времени симуляции. Значением по умолчанию является inf
(секунды). Это поле недоступно, если вы не позволили блокировать режим.
Задайте время выборки блока во время симуляции. Значением по умолчанию является 0.01
(секунды).
Запросите Инструмент, Последовательную конфигурацию, Последовательный Получают, Последовательный Отправляют, TCP/IP Получают, TCP/IP Отправляют, К Инструменту, UDP Отправляют