Показать сообщение отдельно
Старый 28.11.2017, 11:25   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 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 сейчас на форуме   Ответить с цитированием