WB-MGE v.2 путает пакеты

К преобразователю подключен контроллер по RS-485. Если опрашивать контроллер по Modbus TCP двумя устройствами сразу, то независимо от того какой из мастеров сделал запрос, ответ придет обоим и на одном из опрашиваемых устройств будет ошибка, так как не определен идентификатор транзакции. А если использовать не преобразователь а wirenboard6, то такого не происходит и wb ответы на запрос отправляет кому надо.
Возможно настроить WB-MGE на такую же работу, чтобы не было ошибок?

Добрый день.
Нужно больше информации о настройках. В одной ли сети расположены мастера со шлюзом? Точнее - не преобразуются ли как-то адреса отправителей?
Вообще довольно нестанартное использование - несколько мастеров. Зачем?

Тут не совсем понимаю - в каком режиме контроллер?

Такое поведение было обнаружено, когда потребовалось проверить данные, идущие с контроллера в систему мониторинга через WB-MGE v.2, так как на самом контроллере был только RS-485. В этот ситуации первым мастером выступал мониторинг, вторым мой компьютер при помощи программы Etherway. Как только поключилась, но еще не сделала modbus запроса, сразу посыпались данные, когда начала сама отправлять запросы шли мои данные и какие-то другие. И после каждого ответа не относящегося к моему запросу приходила ошибка: не определен идентификатор транзакции.
Собрали испытательный макет. Ведомое устройство Segnetics SMH2Gi подключен по RS-485 к WB-MGE v.2. Преобразователь подключен к моей сети. Из этой же сети с двух компьютеров отправляю запросы на контроллер через Modbus TCP. Такая же ситуация, ответы идут обоим мастерам, независимо от того, кто отправлял запрос.

Приклепляю настройки преобразователя

Попробую сейчас воспроизвести.

Да, вполне воспроизводится.
Если пытаться несколькими мастерами обращаться к одному устройству через шлюз.
Но это собственно и не совсем штатный режим, если slave сам по себе имеет Modbus TCP - то он сам и ведет разделение по сессиям. А для Modbus RTU - мастер может быть только один. Посмотрел в документацию по модулю, там нет про мультимастера для одного устройства упоминаний.

А что за задача? как правило данные с Modbus забираются и поднимаются наверх, нет нужды их забирать несколько раз.

Приветствую. Работаю вместе с Алисой. Все устройства находятся в одной подсети. Но даже если это не так, и допустим, один из мастеров находится за маршрутизатором, для вашего преобразователя запросы от второго мастера придут с адреса маршрутизатора. Если же оба мастера в другой подсети, запросы от обоих придут с одного IP, но с разных портов. В любом случае, TCP стек на преобразователе в состоянии отличить сессии мастеров. Но обсуждаемый преобразователь не отличает сессии, и получив ответ со стороны 485, посылает преобразованный PDU каждому “мастеру” (то есть дважды!). Вообще говоря, мастер существует только в ветке RTU, и он в обсуждаемой конфигурации один (преобразователь), хотя не запрещены и больше одного. На стороне же TCP обычно преобразователь способен разделить ответы: если в сессии пришёл запрос с каким-то идентификатором транзакции, то ответ с этим идентификатором легко отправить только в ту сессию, а не во все.
Аналогичный преобразователь Moxa с такой задачей легко справляется. А задача проста: на ветке 485 сидят несколько устройств Modbus RTU. И на конвертер по TCP с одного узла приходят запросы к одним устройствам, а с другого - к другим.
Это ведь реализуемо? Раз конвертер в состоянии отправить один PDU двум адресатам, наверное несложно отправить и только одному.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.