WB не видит датчик присутствия MTDХ62-MB

Пытаюсь подключить датчик
С учетом ограничения скорости на уровне 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.

Убедитесь, что настройки порта совпадают. Количество стоп-бит соответствет?
Доп питание для интерфейса не требуется ?

Вышлите фото подключения и настройки датчика.


Питание на датчик подал напрямую с БП
Rs 485- к выходу RS485-2 на WB( белый зеленый провода)

Думаю, что тут нужно удостовериться в том, что настройки порта на самом датчике применились и совпадают с настройками порта контроллера.

Если физически подключено все верно и настройки с пульта заданы, то попробуйте просканировать шину на разных возможных скоростях, как в инструкции:

Адрес устройства в датчике тоже находится в 128 регистре?

Карты регистров под рукой нет, но вот данные из шаблона:

“title”: “device_id”,
“id”: “device_id”,
“reg_type”: “holding”,
“address”: “0x07”,
“min”: 1,
“max”: 247,
“default”: 1,
“group”: “settings”,
“order”: 1

Получил следующее
~# 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- “-”

Прошу прощения, но моих знаний недостаточно…

Адрес в регистре 7, а не 128

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

Определение адреса методом перебора- а в этом варианте по прежнему пусто

А Вы это изменили на 7? Ну либо на 0.
На регистр, который заведомо есть в устройстве.

~# 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

Пропустил строку, виноват

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 - по этому адресу по шаблону должна быть скорость обмена?
Если так- что означает эта величина?

Впишите сюда текст цитаты

0x2580 (hex) = 9600 (dec)
Проще говоря это 9600, переведенное в 16-тиричную систему исчисления


Ок, спасибо

Адрес 1
Скорость 9600

Бит четности 0х0000 -0?

В настройках датчика тогда ок
Скорость 9600
Адрес 1
N
?

Добрый день! Очень хорошо, что вам удалось проверить связь.
Теперь настройте аналогично порт в wb-mqtt-serial и должно все получиться.

Это бит четности. 0=NONE. Параметр -pnone в Вашей команде. Оно же N в записи 8N1