Помощ в написании шаблона wallpad

подскажите, куда копать.

Купил выключатели Wallpad, пытаюсь сам научиться делать шаблоны. Они работают по Modbus. Когда отправляю команды через modbus_client, команды исполняются, но ответа нет, и данные прочитать тоже не получается.
Продавец выслал инструкцию
С регистрами

В чем может быть проблема?

Добрый день!

Уверены, что там Modbus? Прикрепите документацию, пожалуйста.

работа с выключателями.docx (19,7 КБ)
wallpad RS485 protocol.pdf (2,2 МБ)

Конкретно команда на управление подсветками давала отклик что успешно выполнена
на демонстрационный режим исполнялась, но ответ не приходил

Мы не компетентны помогать со сторонним оборудованием, которое мы не поддерживаем. Тем не менее, могу попытаться помочь.

В документе на русском не вижу описания ответа от выключателя.

В документе с описанием протокола описан нестандартный modbus.

Как вы поняли что ответ не приходит? Что выводится в консоль?

С нестандартным modbus можно использовать вместо modbus_client - serial_tool.
Также рекомендую включать --debug в modbus_client в непонятных ситуациях.

Добрый день!

При выполнении команды для включения подсветки, команда проходит успешно:

modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x06 -r0x1003 0x0000

Ответ:

[02][06][10][03][00][00][7D][39]
SUCCESS: written 1 elements!

Однако при попытке чтения состояния кнопки возникает ошибка с контрольной суммой:

modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x03 -r0x1003

[02][03][10][03][00][01][70][F9]
ERROR Resource temporarily unavailable: read
ERROR occured!

В мануале указано, что устройство поддерживает два типа: 1 байт и 2 байта это же и слияет на контрольную сумму . Я пробовал использовать второй тип (2 байта), но ошибка не исчезла.

Можете, пожалуйста, помочь с корректировкой команды или пояснить, в чем может быть проблема?

Заранее благодарю за помощь.

-1 -a2 -t0x03 -r0x100BXU:~# modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
[02][03][10][0B][00][01][F1][3B]
Waiting for a confirmation…
<02><03><00><02><00>
ERROR CRC received 0x200 != CRC calculated 0xD0F0
ERROR occured!
root@wirenboard-A3PJASXU:~#

файл работа с выключателями я переводил от них только pdf

И так насколько я понял разница в стандартном или не стандартном modbus это разница в запрограммированном регистре на распознание нажатия
А как узнать какие регистры понимает wirenboard для того чтобы с помощью того же modbus client можно было записать новые значения в eeprom

Мануал - это какой-то третий документ, который вы не прикрепили?
А как вы переключали тип? В описании протокола эта возможность указана только для термостата

Не могу сказать, в чём проблема. Предполагаю, что может быть нестандартный модбас или проблемы с физическим подключением - это в первую очередь следует проверить.

А общались с поддержкой поставщика или производителя wallpad на этот счёт?

Да, я думаю, что бессмысленно воевать с этим устройством.

Продавец перестал мне отвечать на мои гневные запросы.

Я думал, что это актуально для всех устройств в мануале, который прикрепил, но вчера оно ответило, что все ок: устройство переведено в режим мастер-слейв.

Пришло, что команда исполнена, но прочитать все равно не дает.

  • Линия очень короткая (около 50 см), использую качественный кабель (КИС), так что вариант с обрывом или помехами кажется маловероятным.
  • Базовые функции устройства работают: удаётся управлять, например, подсветкой через стандартные регистры. Это говорит о том, что связь в целом устанавливается.
  • Пробовал отправлять тестовые команды — они тоже доходят. В частности, команда на включение «Master Slave» с таймаутом 1500 мс успешно отработала, устройство вернуло корректный ответ, но все равно на опрос не отвечает
  • Однако при попытках использовать другие инструменты (например, Modbus Poll) через USB-свисток (или иные RTU-адаптеры) — устройство вообще не реагирует ни на один запрос.
  • Вероятнее всего как вы и говорили , у этого прибора «нестандартная» реализация Modbus, изначально ориентированная на внутренний китайский рынок (например, для контроллеров типа Delta или HollySys), где могут использоваться нестандартные коды функций, другая адресация, изменённый порядок байт или дополнительные поля.

Ну и есть вероятность недостатка знаний, потому что все что пишу получал знания на ходу в гугле, может быть, что-то упустил

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

Адреса регистров не влияют. Для каждого устройства они свои

Вроде стандартные (пруф):
image

Порядок байт можно потом программно обработать.

а таймаут пробовали задавать в modbus_client?

Если ещё захотите поразбираться с этим, есть вариант работы с нестандартными протоколами:

А, про нестандартную адресацию, поняла, это редко встречается, если устройство реагирует, значит стандартная адресация. Вот тут описано подробно: Протокол Modbus — Wiren Board

Позвали в wechat, должен связаться инженер и рассказать что не так делаю

1 лайк

Хорошо. Я пока отмечу решённой, чтобы не светилось - можете потом дополнить для истории. Или, если будут ещё вопросы, снять галочку или создать новую тему.

Хочу сообщить, что я пообщался с китайским инженером по поводу поставки устройств. Он уточнил, что устройства поставляются с конфигурацией 7 байт, однако, насколько я понял, нам необходима конфигурация 8 байт. Инженер подтвердил, что может предоставить прошивку на 8 байт, но только после окончания празднования Китайского Нового года.А при заказе можно уточнить чтобы была на 8 байт

Имеется ввиду количество бит данных? Попробуйте в Modbus_client 7 бит сделать тогда.

В их инструкции 8 бит написано: