Вынужден вешать на RS-485 много разных устройств различных производителей, большинство из которых работают по собственным протоколам (так что всё приходится опрашивать программно), при этом настройки связи у многих совпадают (9600-8-n-1 - самая распространённая). Устройства опрашиваются по очереди (то есть ПЛК посылает запрос в сеть, ждёт нужный таймаут и затем читает ответ, после чего опрашивает следующее устройство).
Получается, запросы и ответы "слышат" все устройства, и отвечает на них одно нужное устройство только потому, что формат запроса для него не понятен для других устройств, и они молчат. Но что делать если попадётся девайс с таким протоколом, запросы или ответы по которому будут выглядеть корректными ещё каким-то устройствам в сети, в результате они начнут что-то отвечать одновременно с другим устройством, и в сети получится мусор. Как в общем случае избежать этого?
Приходит на ум некий "разветвитель" сети RS-485, который бы имел один входной модуль RS-485 (подключаемый к ПЛК), и много выходных, не связанных друг с другом сетей RS-485, для подключения устройств. ПЛК бы направлял во входной модуль, в соответствии с некими правилами, набор запросов, которые нужно отослать в каждую из выходных сетей, разветвитель бы их рассылал, принимал бы ответы в каждой сети, затем весь этот набор ответов (разделённый в соответствии с некими правилами) отправлял бы в ПЛК. Почему нет ничего подобного? Это же общая проблема, возникающая при автоматизации?