ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1468299 Топик полностью
Nikolay_Po (07.10.2024 19:43, просмотров: 48) ответил IBAH на Попробовал так. ОРС сервер посылает UDP адресный запросы на 192.168.0.1:502. А мое устройство отвечает широковещательными UDP на 192.168.0.255:50965. Работает. Ваще не понимаю этой сетевой логики.
Ваш OPC-сервер, послав запрос как ведущий (клиент) Modbus, ждёт на своём интерфейсе IP пакета UDP с портом назначения 50965. Ваш ведомый (сервер) Modbus отвечает, за каким-то хером, широковещательно с портом назначения UDP 50965. Все устройства в сегменте сети, получают этот пакет на свои IP-интерфейсы и проверяют, слушает ли кто на UDP-порте 50965. Разумеется, слушающий порт на OPC-сервере получает этот UDP-пакет и Modbus-драйвер обрабатывает его. 

Если, чудом, другой Modbus-клиент умудриться запросить к этому моменту другого Modbus-сервера в этом сегменте сети и, при этом, для ожидания ответа, случайно, выберет так же порт 50965 (а это вероятно), то оба Modbus-клиента получат и попытаются обработать широковечательный ответ вашего сумасшедшего Modbus-сервера, отвечающего широковещательно.


Вообще, ведомому Modbus не должно быть проблем ответить точно отправителю. Ведь на момент получения запроса, известен адрес отправителя запроса. Поэтому практической ценности, возможность отвечать широковещательно, не несёт не имеет.