Цитата:
Сообщение от 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, в котором порты не пересекаются до тех порт, пока что-то есть свободное.