Конфликт устройств с одним ID на разных портах RS485


#1

Есть два одинаковых slave modbus устройства с одним ID. Были подключены к разным портам и проблем не было. Понадобилось заменить старый контроллер на новый и теперь одновременно эти устройства не работают. Почему так происходит? Оба Wiren 5. На старом wb-mqtt-serial 1.14.6 на новом 1.26.5.

И ещё одна проблема вылезла, на новом контроллере A1_IN и A2_IN постоянно мигают и грузят систему, что работать с ней становится не возможно. К этим входам подключены аналоговые датчики. На старой системе, опять же, проблем таких не наблюдалось. Проблема, конечно, решается отключением этих входов из конфиг файла, но хотелось бы понять, почему так происходит.


#2

#3

Ребята, вы хоть ответьте, нормально, что на разных портах конфликт устройств с одним ID или нет?


#4

Добрый день!

Простите за задержку, ответственный сотрудник заболел. Постараемся ответить в ближайшее время.


Конфигурация устройств и названия топиков
#5

Проблема подтвердилась, разработчики уведомлены, но исправление будет в лучшем случае через 2 месяца.

Есть два варианты временных решений:

  1. Изменить адреса Modbus-устройств, чтобы они были разными.
  2. Оставить адреса одинаковыми, но при настройке устройств через веб-интерфейс (пункт “Serial Device Driver Configuration”) в настройках каждого из этих двух устройств:
    – нажать Properties рядом с именем устройства,
    – поставить галочки Device name и MQTT id of the device,
    – в появившееся поле Device name вписать название для отображения в веб-интерфейса (например, “Реле на первом порту”), а в MQTT id of the device вписать любой идентификатор латиницей (но разные для этих двух устройств).

#6

К сожалению, способ с Device name и MQTT id не помогает. всё так-же выдает ошибку
user.notice serial: FATAL: Serial protocol error: device address collision for slave id 16 (“16”)

Понятно, что сменить адрес было бы логично, но, по определённым причинам, такой возможности нет.

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

И что можете сказать по второй ошибке: A1_IN и A2_IN постоянно мигают и грузят систему?


#7

Здравствуйте. Эта ошибка была исправлена в версии 1.29.1. Обновитесь командами:

apt-get update
apt-get install libwbmqtt0 wb-mqtt-serial

После этого версии должны быть wb-mqtt-serial 1.40.4 и libwbmqtt 1.7.1
При этом Device Name и MQTT id должны быть переопределены как Вам подсказал @poglazov poglazov - этот недочет еще не исправлен.


#8

Да, я свой вариант обхода проблемы проверял именно с wb-mqtt-serial 1.40.4