TCP/IP Receive

Получите данные по TCP/IP от заданной удаленной машины

Библиотека

Instrument Control Toolbox

  • TCP/IP Receive block

Описание

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

Примечание

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

Примечание

В Библиотеке блоков Instrument Control Toolbox блок TCP/IP Receive теперь называется блоком TCP/IP Client Receive, и блок TCP/IP Send теперь называется блоком TCP/IP Client Send. Обратите внимание на то, что внутреннее название не было изменено, таким образом, нет никакой проблемы совместимости, если у вас есть скрипты или модели с этими именами блока. Оба из блоков для использования в качестве клиентов TCP/IP. Они не работают серверами TCP/IP.

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

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

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

Используйте блок TCP/IP Receive, чтобы считать данные о потоковой передаче по сети TCP/IP, с помощью функциональности Instrument Control Toolbox в Simulink.

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

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

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

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

Параметры

Примечание

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

Remote address

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

Port

Введите удаленный порт в удаленную машину, с которой необходимо соединиться. Значением порта по умолчанию является 80. Значениями действительного порта является 1 к 65535.

Verify address and port connectivity

Нажмите эту кнопку к:

  • Проверяйте, правилен ли заданный удаленный адрес.

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

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 (набор в поле Размера данных диалогового окна TCP/IP Receive Block Parameters). Если симуляция запускается, данные получены асинхронно в буфере FIFO.

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

Timeout

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

Block sample time

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

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