Согласовывая использование ЛЭРС Ethernet 2.0 в одной из региональных систем сбора я получил странный отзыв о режиме TCP client этого контроллера.
Вот он:
“Данный контроллер не поддерживает статически заданный порт При каждом разрыве соединения порт будет меняться, из за этого марсу потребуется заново определять какой прибор подключен на этот IP и порт, и он будет его определять с нуля, а в случае нестабильного интернета со стороны прибора, скорее всего счётчик вообще никогда не определится. Устройства ЛЭРС заточены на работу в режиме сервера.”
Термин “марс” в тексте - это название региональной системы.
Мы работаем с ЛЭРС Ethernet 2.0 и такого не наблюдается. Но для упрощения согласования оборудования мне нужен ответ от тех.поддержки производителя.
Поэтому. Прошу оценить верность утверждения и указать есть ли какие-то особенности использования статического порт в режиме TCP client на ЛЭРС Ethernet 2.0
В рассматриваемом случае TCP соединение выглядит так:
Марс [TCP сервер (IP/port)] <=== ЛЭРС Ethernet 2.0 [TCP клиент (IP/port)]
TCP клиент подключается к TCP серверу по указанным параметрам (IP/port). При разрыве соединения TCP клиент будет предпринимать попытки подключиться именно к этому же адресу/порту.
Как понимать фразу “При каждом разрыве соединения порт будет меняться”?
Из представленной схемы соединения видно, что речь идёт о порте TCP клиента. Правильно я понял вопрос?
Не опровергну. Порт TCP клиенту действительно присваивается из диапазона свободных адресов, определяемых ОС. Алгоритм назначения порта при каждом подключении к одному и тому же TCP серверу также зависит от ОС.
Эта тема о функционале ЛЭРС Ethernet 2.0.
Приведенная выше переписка об использовании ЛЭРС Ethernet 2.0 в режиме TCP client вместо преобразователей типа moxa NPort 5110 в режиме TCP client.
В таком контексте, я думаю, речь может идти только о работе с портом сервера, к которому подключается преобразователь.
Каждый последовательный порт контроллера работает независимо от других и имеет свои настройки. Можно настраивать последовательные порты в любой комбинации клиент/сервер.
В режиме TCP клиента последовательный порт подключается к серверу (программе сбора данных) адрес/порт которого хранится в параметрах этого порта. При этом локальный порт TCP клиента (контроллера) назначается из диапазона свободных портов (контроллера). При обрыве соединения последовательный порт через указанный интервал времени пытается подключиться к серверу, естественно, к тому, который указан в параметрах этого порта, т. е. к тем же IP/port. При удачном соединении локальный порт TCP клиента (контроллера) назначается по алгоритму, заложенному в ОС контроллера. Обычно, это другой номер порта.
Если все три последовательных порта работают в режиме TCP клиент, то они могут подключаться к одному серверу по одному IP, но к разным портам сервера. В таком случае возможен одновременный независимый опрос трёх последовательных портов.
Можно настроить последовательные порты на подключение к разным серверам, тут, я думаю, всё понятно.
И всё-таки фраза “При каждом разрыве соединения порт будет меняться ” не оставляет выбора фантазии - меняется локальный порт клиента, и это стандартное поведение. Или Ваш клиент неправильно формулирует проблему.
Посмотрел документацию “moxa NPort 5110 в режиме TCP client” - там тоже нет статического порта клиента.
Соединения с портов отличных от 5011 явно мусор в публичной сети, они закрываются сразу и по ним нет обмена.
Разговор с Вами привел к пониманию ответа тех.поддержки
И поэтому вопрос. Возможно ли, чтобы для ЛЭРС Ethernet 2.0 в будущей прошивке фиксировался ТСР-порт клиента?
И если да, то насколько это время затратно. Этот функционал бы позволил использовать ЛЭРС Ethernet 2.0 с РИАС МАРС. А это потенциально больше кол-во приборов
Обновление прошивки ЛЭРС Ethernet 2.0 c фиксацией порта в режиме ТСР-клиент вышло (Р10.1.2). Обновлено также Руководство по эксплуатации. Можете скачивать с нашего сайта.