exponenta event banner

Получение TCP/IP

Получение данных по TCP/IP с указанного удаленного компьютера

Библиотека

Панель инструментов управления приборами

  • TCP/IP Receive block

Описание

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

Примечание

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

Примечание

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

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

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

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

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

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

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

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

Дополнительные сведения об этих функциях см. в документации Simulink.

Параметры

Примечание

Переменные MATLAB можно вводить в поля редактирования текста в диалоговом окне Параметры блока приема TCP/IP, за исключением следующих полей: Удаленный адрес, строка формата ASCII и Терминатор.

Удаленный адрес

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

Порт

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

Проверка подключения к адресу и порту

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

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

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

Размер данных

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

Тип исходных данных

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

  • single

  • double

  • int8

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

  • int16

  • uint16

  • int32

  • uint32

  • ASCII

Строка формата ASCII

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

Терминатор

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

Порядок байтов

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

Включить режим блокировки

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

Если включен режим блокировки, модель будет блокировать моделирование, пока она ожидает, когда будут доступны запрошенные данные. Если режим блокировки не включен, моделирование выполняется непрерывно. Блок имеет два выходных порта: 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, убедитесь, что блок получения получает данные. Если это не так, то модель может выйти из строя. Этого можно избежать, изменив блок на режим «Без блокировки» или сбросив приоритет блока.

Неблочный режим

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

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

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

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

Перерыв

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

Время блочной выборки

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

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