Перейти к содержанию

Wiren-board-modbus-baud-rate-change

Материал из XIOT Wiki


Устройства Wirenboard (например, WB-MR, WB-MSW, WB-MAO) позволяют изменить скорость работы по Modbus RTU, записав новое значение в регистр `110` (в десятичной системе). Значение указывается в десятках бит/с: например, для 9600 бод — `96`, для 115200 — `1152`.

⛔ Остановить Modbus-сервис

Перед выполнением команды необходимо остановить сервис, использующий RS-485:

service wb-mqtt-serial stop

⚙ Смена скорости

Пример: текущее устройство работает на скорости 9600 бод, адрес `1`. Требуется изменить скорость на 115200 бод:

modbus_client -m rtu -b 9600 -p none -s 2 /dev/ttyRS485-1 -a 1 -t 0x06 -r 110 1152

Пояснение:

  • `-b 9600` — текущая скорость устройства (её нельзя указывать произвольно!)
  • `-s 2` — количество стоп-бит (у устройств WB чаще всего 2)
  • `-r 110` — регистр смены скорости
  • `1152` — новая скорость в десятках бит/с (115200 → 1152)

🔢 Таблица кодов скорости

Код в регистре Скорость (бит/с)
12 1200
24 2400
48 4800
96 9600
192 19200
384 38400
576 57600
1152 115200

✅ Проверка

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

modbus_client -m rtu -b 115200 -p none -s 2 /dev/ttyRS485-1 -a 1 -t 0x03 -r 0x00 -c 1

Если команда возвращает `Data: 0xXXXX` — всё успешно.

🔄 Запуск сервиса обратно

service wb-mqtt-serial start

⚠️ Важно

  • Устройство сразу переключается на новую скорость.
  • Значение `1152` — это не частота, а "115200 делённое на 100".
  • Убедитесь, что настройки скорости и стоп-бит совпадают на всех устройствах в шине.
  • После изменения скорости необходимо вручную поменять параметры порта в конфигурации контроллера.


📚 См. также