Добавление устройства стороннего производителя по modbus

я так понимаю мне нужно мучать китайца и узнать как поменять стоп бит с 1 на 2?

Попробуйте опросить ваше устройство с помощью утилиты modbus_client, правильно задав настройки обмена, нужно убедиться, что устройство нормально отвечает. При этом в аргументах утилиты верно укажите параметры обмена, аналогичные тем, что заданы на стороннем устройстве.
Перед использованием утилиты modbus_client нужно остановить драйвер wb-mqtt-serial:

systemctl stop wb-mqtt-serial

Тут есть несколько вариантов: изменить настройки стороннего устройства аналогично остальным устройствам на шине, изменить настройки остальных устройств на шине аналогично настройкам обмена стороннего устройства, подключить стороннее устройство на другой порт, у которого задать требуемые параметры обмена.


читаю клиентом

Полагаю, что команда должна быть примерно такая (для настроек обмена по умолчанию устройства 4800, n ,8, 1):

modbus_client --debug -mrtu -b4800 -pnone -s1 /dev/ttyRS485-1 -a1 -t0x03 -r40001


вот так прочитало

а14 поставил, адрес устройства 14

Я не очень понимаю, почему адрес регистра указываете 4001, а не 40001.
Регистр нужно прописывать как -r, посмотрите пример.

ошибся


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


данные получает

я если пойму хоть с одним устройством обещаю вас больше не мучать :joy::joy: уже легче понимать будет мне

Смотри, что есть на AliExpress! RS485 Modbus водонепроницаемый датчик температуры и влажности за 438,98 руб.
https://sl.aliexpress.ru/p?key=Ua4yko

может это поможет вам понять и помочь мне, ссылка на девайс, там есть описание

Нужно опции указывать через “-”: -r40001. Скопируйте команду, ниже и вставьте в консоль:

modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a14 -t0x03 -r40001


еще такие сделал запросы

Да, вот это то, что читает драйвер контроллера - везде нули. Теперь все правильно.
То есть информация читается драйвером правильно. А адреса 0 и 1 что дают?


сюда ставить?

Да вот так попробуйте:

modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a14 -t0x03 -r0
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a14 -t0x03 -r1


с 0 также

не то