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.

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

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

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

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

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

  • Этот блок поддерживает использование режима Accelerator™ Simulink, но не Rapid 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

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

Enable blocking mode

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

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

В этом примере вы запускаете симуляцию в момент времени (t = 0) и задаете объем данных для приема как 4 (установите в поле Data size диалогового окна 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, что указывает на доступность новых данных. The Data порт в этой точке содержит вновь полученные значения. Блок устанавливает значение буфера равным 0.

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

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

Timeout

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

Block sample time

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

Введенный в R2007b