Конфликт Modbus устройств за TCP переобразователем

Здравствуйте!

За шлюзом WB-MGE v.1 подключил два устройства по RS-485: WB-MIR v.2 и WB-MS v.2 (у которого прошивка msv2G42). Одновременно подключенные эти устройства не работают. От них (если подключиться через socat к TCP шлюзу) непрерывно сыпятся повторяющиеся два байта: 5e 40. Почему-то в ответ со стороны WB контроллера им на каждую такую пару байт улетает 00. socat использую для создания порта /dev/ttyRS485-5, с которым никто в это время не работает (отключаю на это время TCP порт в wb-mqtt-serial.conf, проверял с помощью fuser).

Если одно из устройств отключено, то второе исправно работает. Расстояния по RS-485 небольшие: до MIR от шлюза сантиметров 10, потом от MIR до MS ещё метров 15. Подключены витой парой, питание у всех трёх устройств общее 12В от хорошего БП. Прошивки обновил (через шлюз и socat) до последних стабильных (2.29.11 у MIR и 2.30.0 у MS v.2). Но ничего не помогло — не хотят вместе работать.

Что бы это могло значить? Адреса, конечно разные: 183 и 198, скорость на обоих 115200.

Добрый день.
Попробовал воспроизвести.
Шлюз, два устройства:


Адреса, естественно, разные.

Ну и ошибок на шине нет, устройства опрашиваются.


А зачем манипуляции с socat, собственно? Ведь wb-mqtt-serial имеет отличный debug лог.

Да, тоже не могу понять, что с ними происходит.

А socat возник случайно. Хотел вычислить modbus адреса устройств, пробросил порт, начал сканировать, а в том окне, где socat был запущен, заметил постоянный поток данных. Ну и далее через него прошивался, потому и посмотрел. В том числе, при отключенном опросе в wb-mqtt-serial, чтобы понять, генерируют ли они какой-то трафик без опроса со стороны WB контроллера.

То есть, у вас в прошивку никуда не заложено спамить 5e 40 в случае какого-нибудь ахтунга? Тогда вообще не понимаю, что это за флуд.

Как настроен MGE? Первая версия - без modbus TCP как я понимаю? И - точно MGE, не MIO-E?
MIO-E имеет свой Modbus адрес.

Нет, сами устройства без опроса от мастера не гененруют ничего в шину. И даже с быстрым modbus - тоже, нужен запрос от мастера. Какой порт настроен для шлюза?

Шлюз MGE, первой версии. На нём TCP порт настроен 20108, а со стороны WB контроллера он штатно добавляется с типом tcp:

    {
      "address" : "192.168.x.y",
      "devices" : 
      [
[тут настройки двух устройств]
      ],
      "enabled" : true,
      "port" : 20108,
      "port_type" : "tcp"
    }

На время обновления прошивки через socat добавлял порт /dev/ttyRS485-5, которого в другое время в системе нет.

Опять же, по отдельности всё работает, если бы был конфликт, то у какого-то одного из них, и он не работал бы ни в каком случае.

Схема подключения:

Боюсь без логов предположить что-то определенное не получится. Так что жду лог wb-mqtt-serial.

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