Отправка и получение данных по сети TCP/IP

В этом примере показано, как создать простую модель с использованием блоков Instrument Control Toolbox™ в библиотеке блоков в сочетании с другими блоками в Simulink® библиотека. Этот пример также иллюстрирует, как отправить данные на эхо-сервер с помощью TCP/IP и считать эти данные обратно в вашу модель.

В этом примере вы создаете эхо-сервер на своей машине, который моделирует отправку сигнала в блок TCP/IP Send и эхо-сигнал результата назад в блок Send, чтобы отправить данные. Затем вы используете блок TCP/IP Receive, чтобы считать эти же данные обратно в свою модель.

Примечание

Имена блоков не показаны по умолчанию в модели. Чтобы отобразить скрытые имена блоков во время работы в модели, установите флажок Display и снимите Hide Automatic Names.

Шаг 1: Создайте эхо-сервер

Откройте порт на вашем компьютере, чтобы работать как эхо-сервер, который можно использовать для отправки и приема сигналов с помощью TCP/IP. Чтобы создать эхо-сервер, запустите следующую команду в MATLAB®.

echotcpip('on',50000)

Порт 50000 откроется на вашей машине, чтобы работать как эхо-сервер и включить его.

Шаг 2: Создайте новую модель

Чтобы запустить Simulink и создать новую модель, введите следующее в командной строке MATLAB.

simulink

На начальной странице Simulink нажмите Blank Model и затем Create Model. Откроется пустое окно Editor.

На панели инструментов щелкните Save, чтобы назначить имя вашей новой модели.

Шаг 3: Откройте библиотеку блоков

На панели инструментов щелкните Library Browser на вкладке Simulation.

Откроется браузер библиотеки Simulink. Левая панель содержит дерево доступных библиотек блоков в алфавитном порядке. Нажмите Instrument Control Toolbox.

Чтобы использовать блок, добавьте его к существующей модели или создайте новую модель.

Шаг 4: Перетащите блоки Instrument Control Toolbox в модель

Чтобы использовать блок в модели, перетащите блок в Редактор Simulink. Для этой модели вам нужен один образец блоков TCP/IP Send и TCP/IP Receive в вашей модели.

Шаг 5. Перетащите Sine wave и блоки Scope, чтобы завершить модель

Этот пример требует еще двух блоков. Один блок отображает данные, полученные от блока TCP/IP Receive, а другой - данные, которые будут отправлены в блок TCP/IP Send.

Блоку TCP/IP Send нужен источник данных, чтобы данные были поданы. Добавьте блок Sine Wave (Simulink) в модель, чтобы отправить сигналы в блок TCP/IP Send. Чтобы получить доступ к блоку Sine Wave, разверните узел Simulink в дереве браузера и щелкните запись Sources библиотеки. Из блоков на правой панели перетащите Sine Wave блок в модель и поместите его налево от TCP/IP Send блока.

Чтобы отобразить данные, полученные блоком TCP/IP Receive, используйте блок Scope (Simulink). Чтобы получить доступ к этому блоку, щелкните запись Sinks библиотеки в узле развернутого Simulink в дереве браузера. Из блоков на правой панели перетащите Display блок в модель и поместите его справа от TCP/IP Receive блока.

Шаг 6: Соедините блоки

Выполните соединение между блоком Sine Wave и блоком TCP/IP Send. Быстрый способ создать соединение - выбрать блок Sine Wave, нажать и удерживать клавишу Ctrl, а затем кликнуть блок TCP/IP Send. Точно так же выполните соединение между выходом портом блока TCP/IP Receive и входа портом блока Scope.

Шаг 7: Задайте значения Параметров блоков

Установите параметры для блоков в вашей модели, дважды кликнув по блоку.

Сконфигурируйте блок отправки

Дважды кликните блок TCP/IP Send, чтобы открыть диалоговое окно его параметров. Установите значение поля Remote address localhost и поле Port для 50000, поскольку это адрес, на который вы устанавливаете эхо-сервер, когда вы запускаете его.

Нажмите Apply, а затем OK.

Сконфигурируйте блок приема

Дважды кликните блок Receive, чтобы открыть диалоговое окно его параметров. Установите значение поля Remote address localhost и поле Port для 50000. Измените Data type на double. Для поля Block sample time задано значение 0.01 по умолчанию. Блок, шаг расчета здесь, должен совпадать с блоком в Sine Wave, поэтому подтвердите, что они оба установлены на 0.01.

Нажмите OK.

Сконфигурируйте блок Sine wave

Дважды кликните блок Sine Wave, чтобы открыть диалоговое окно его параметров. Установите значение поля Sample time 0.01.

Нажмите OK.

Шаг 8: Задайте приоритеты блоков

Чтобы запустить симуляцию правильно, задайте порядок, в котором Simulink обрабатывает блоки. Щелкните правой кнопкой мыши блок и выберите Properties. Введите номер приоритета в поле Priority. В данном примере установите приоритет TCP/IP Send равным 1 и TCP/IP Receive к 2.

Внимание

Вы должны задать правильный приоритет для блоков в вашей модели. В противном случае вы увидите неожиданные результаты.

Вам также нужно задать два параметра на модели. На панели инструментов Simulink щелкните Model Settings из раздела Prepare на вкладке Simulation. В диалоговом окне Параметров конфигурации установите значение в поле Type Fixed-step и установите значение поля Solver discrete (no continuous states).

Нажмите OK.

Шаг 9: Запустите симуляцию

Чтобы запустить симуляцию, нажмите зеленую кнопку Run на панели инструментов Редактор. Можно использовать опции панели инструментов, чтобы указать, как долго запускать симуляцию и остановить выполняемую симуляцию.

Во время выполнения симуляции строка состояния в нижней части Редактор обновляет прогресс симуляции.

Шаг 10: Просмотр результата

Дважды кликните блок Scope, чтобы просмотреть сигнал на графике, когда он получен блоком TCP/IP Receive.

Дополнительные сведения о блоках Instrument Control Toolbox см. в справочной документации по блокам.

См. также

|

Похожие темы