cthutq
November 18, 2025, 9:03pm
1
Пытаюсь подключить датчик
С учетом ограничения скорости на уровне 57600 подключаю к порту RS485-2
Выбрал шаблон, скинул пультом датчик до заводских настроек, с пульта установил скорость 9600,Modbus-адрес датчика-1
Адрес устройства-1
контроль четности- нет
В параметрах установил- опрашивать устройство
После этого настроил RS485-2
9600 N 8 2
Но WB не видит датчик
" Нет связи с устройством. Проверьте физическое подключение шины RS-485 и настройки связи порта и устройства, которые должны быть одинаковы"
При этом датчик подключен напрямую к выходу RS485-2 на WB
На RS485-1 скорость поднята до максимальной, устройство с адресом 1 также есть
Подскажите- что и где можно еще проверить?
Добрый день!
Рекомендую выполнить отладку с помощью утилиты modbus_client с остановленным драйвером wb-mqtt-serial.
Убедитесь, что настройки порта совпадают. Количество стоп-бит соответствет?
Доп питание для интерфейса не требуется ?
Вышлите фото подключения и настройки датчика.
cthutq
November 19, 2025, 7:04am
5
Питание на датчик подал напрямую с БП
Rs 485- к выходу RS485-2 на WB( белый зеленый провода)
Думаю, что тут нужно удостовериться в том, что настройки порта на самом датчике применились и совпадают с настройками порта контроллера.
Если физически подключено все верно и настройки с пульта заданы, то попробуйте просканировать шину на разных возможных скоростях, как в инструкции:
cthutq
November 19, 2025, 7:40am
7
Адрес устройства в датчике тоже находится в 128 регистре?
Карты регистров под рукой нет, но вот данные из шаблона :
“title”: “device_id”,
“id”: “device_id”,
“reg_type”: “holding”,
“address”: “0x07”,
“min”: 1,
“max”: 247,
“default”: 1,
“group”: “settings”,
“order”: 1
cthutq
November 19, 2025, 2:36pm
9
Получил следующее
~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r128
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 2)
[01][03][00][80][00][01][85][E2]
Waiting for a confirmation…
<01><83><02>
ERROR Illegal data address
ERROR occured!
~# for i in {1…247}; do echo -n "$i - "; D=modbus_client -mrtu /dev/ttyRS485-2 --debug -b9600 -pnone -s2 -a$i -t3 -o100 -r200 -c6 2>/dev /null | grep Data: | awk 'gsub("Data:","")' | sed -e 's/0x00/\\\x/g' -e 's/\s//g'; echo -e $D; done
С 1 по 247- “-”
Прошу прощения, но моих знаний недостаточно…
hexprof
November 19, 2025, 2:38pm
10
DmitryKur:
“address”: “0x07”,
Адрес в регистре 7, а не 128
cthutq
November 19, 2025, 2:55pm
11
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r7
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 2)
[01][03][00][07][00][01][35][CB]
Waiting for a confirmation…
<01><03><02><00><01><79><84>
SUCCESS: read 1 of elements:
Data: 0x0001
Адрес, как понимаю, подтверждает -1
cthutq
November 19, 2025, 2:56pm
12
Определение адреса методом перебора- а в этом варианте по прежнему пусто
hexprof
November 19, 2025, 2:56pm
13
cthutq:
-r200
А Вы это изменили на 7? Ну либо на 0.
На регистр, который заведомо есть в устройстве.
cthutq
November 19, 2025, 3:00pm
14
~# for i in {1…247}; do echo -n "$i - "; D=modbus_client -mrtu /dev/ttyRS485-2 --debug -b9600 -pnone -s2 -a$i -t3 -o100 -r7 -c6 2>/dev/n ull | grep Data: | awk 'gsub("Data:","")' | sed -e 's/0x00/\\\x/g' -e 's/\s//g'; echo -e $D; done
1 - 0x25800x0258
Пропустил строку, виноват
cthutq
November 19, 2025, 7:19pm
15
root@wirenboard-ABT4KBQW:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r7
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 2)
[01][03][00][07][00][01][35][CB]
Waiting for a confirmation…
<01><03><02><00><01><79><84>
SUCCESS: read 1 of elements:
Data: 0x0001
root@wirenboard-ABT4KBQW:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r9
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 2)
[01][03][00][09][00][01][54][08]
Waiting for a confirmation…
<01><03><02><00><00><44>
SUCCESS: read 1 of elements:
Data: 0x0000
root@wirenboard-ABT4KBQW:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-2 -a1 -t0x03 -r8
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 2)
[01][03][00][08][00][01][05][C8]
Waiting for a confirmation…
<01><03><02><25><80><74>
SUCCESS: read 1 of elements:
Data: 0x2580
Data: 0x2580 - по этому адресу по шаблону должна быть скорость обмена?
Если так- что означает эта величина?
Впишите сюда текст цитаты
hexprof
November 19, 2025, 9:37pm
16
0x2580 (hex) = 9600 (dec)
Проще говоря это 9600, переведенное в 16-тиричную систему исчисления
cthutq
November 20, 2025, 2:32am
18
В настройках датчика тогда ок
Скорость 9600
Адрес 1
N
?
Добрый день! Очень хорошо, что вам удалось проверить связь.
Теперь настройте аналогично порт в wb-mqtt-serial и должно все получиться.
hexprof
November 20, 2025, 6:23am
20
cthutq:
Бит четности 0х0000 -0?
Это бит четности. 0=NONE. Параметр -pnone в Вашей команде. Оно же N в записи 8N1