Показать сообщение отдельно
Старый 28.11.2017, 11:25   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Опрос из Pixel контроллера Carel c.pCO по Modbus TCP

Цитата
Сообщение от kps Посмотреть сообщение
Добрый день.

Modbus, точно. Тем более, что речь идет об Ethernet.
Протокол Carel поддерживается только на портах BMS и Fieldbus.

И в любом случае я написал, что тестировал опрос со стороны Insat OPC, все без проблем работает.
Похоже, карел почему-то "забанил" все исходящие порты ниже какого-то номера. Точнее не забанил, а обычно так проявляются различного рода "костыли".

OPC-сервер не выбирает порты выше 49152, исходящий порт выбирается самой операционной системой рандомно из диапазона 1..65535, исключая некоторые предопределённые порты. Т.е. рано или поздно, пцо откажется ответить и OPC-серверу.

Вся логика работы TCP-стеков состоит в том, что при инициации запроса драйвер выбирает первый попавшийся свободный порт и с него отправляет запрос на соединение. Запрос отсылается не абы куда, а уже на чётко предопределённый порт. За разными службами и протоколами зарезервированы определённые порты. Например, протокол http прослушивает 80-й и 8080-й порты, ftp прослушивает порт с номером 21. И так далее.

Модбас прослушивает свой порт, имеющий номер 502. Увидев к нему обращение, он либо открывает первый попавшийся свободный порт из диапазона 1..65535, либо со своего порта, 502-го отвечает на тот порт, с которого пришёл запрос. Именно поэтому Modbus-TCP поддерживает кажущуюся мультимастерность. Это особенность работы протокола TCP, в котором порты не пересекаются до тех порт, пока что-то есть свободное.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием