Может ли PMP20 одновременно быть клиентом и сервером в сети?

Проверено экспертом Опубликовано: 21.10.2024 4317 просмотров Помогло 82%

Да, и руководство разбирает именно такой пример: после включения питания контроллер поднимает сразу три независимые задачи связи — клиентскую, серверную и работающую без установления соединения. Каждая живёт на своём номере сокета и со своими регистрами.

Как это выглядит в примере. Адрес контроллера 192.168.0.60, адрес удалённого устройства 192.168.0.100.

  • Сокет 1, клиент. Контроллер сам устанавливает соединение с портом 1000 удалённого устройства. Раз в секунду отправляет младшие байты регистров с D1000 по D1549 и принимает ответ в регистры с D1600 по D1999.
  • Сокет 2, сервер. Контроллер прослушивает свой порт 1001 и ждёт подключения. После установления связи раз в секунду отправляет данные из регистров с D2000 по D2549 и принимает в регистры с D2600 по D2999.
  • Сокет 3, без установления соединения. Локальный порт 1002, удалённый адрес 192.168.0.100, удалённый порт 3000. Обмен идёт с регистрами с D3000 по D3549 на отправку и с D3600 по D3999 на приём.

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

Что важно для проекта. Три задачи не мешают друг другу, потому что у каждой свой номер сокета, свой локальный порт и своя область регистров. Именно так строится узел, который одновременно опрашивает подчинённое оборудование и сам отдаёт данные диспетчерской: контроллер выступает клиентом в одну сторону и сервером в другую.

Помните про общие лимиты: сокетов не больше 64, соединений каждого типа не больше 32.

Прикреплённая документация

Георгий Жуков Георгий Жуков Ведущий инженер

Этот ответ был полезен?

Не нашли ответ?

Инженер сервисной службы ответит на почту. Вопросы, которые повторяются, мы публикуем в базе знаний — без ваших контактов.

Вопрос из раздела Может ли PMP20 одновременно быть клиентом и сервером в сети?