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

Wiren-board-modbus-baud-rate-change

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


Устройства Wirenboard поддерживают изменение скорости Modbus по записи значения в регистр `0x81`. Это позволяет перевести устройство, например, с 9600 на 19200 бод или выше.

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

Перед сменой параметров необходимо остановить `wb-mqtt-serial`, чтобы освободить порт:

service wb-mqtt-serial stop

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

Пример: текущее устройство на скорости 9600 бод и адресе `1`. Хотим установить скорость 19200.

modbus_client -m rtu -b 9600 -p none -s 1 /dev/ttyRS485-1 -a 1 -t 0x06 -r 0x81 4

Пояснение параметров:

  • `-b 9600` — текущая скорость устройства (её нельзя менять в команде!).
  • `-a 1` — текущий адрес устройства.
  • `-r 0x81` — регистр смены скорости.
  • `4` — новое значение скорости (код 19200 бод, см. таблицу ниже).

🔢 Таблица значений для скорости

Значение Скорость
1 1200
2 2400
3 4800
4 9600
5 19200
6 38400
7 57600
8 115200

✅ Проверка связи

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

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

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

🔄 Возврат Modbus-сервиса

После смены скорости и проверки запустите сервис обратно:

service wb-mqtt-serial start

⚠ Важно

  • После выполнения команды устройство сразу переходит на новую скорость.
  • Убедитесь, что на шине нет других устройств с тем же адресом — иначе смена не сработает.
  • После смены не забудьте обновить настройки порта в интерфейсе XIOT или в `wb-mqtt-serial.conf`.

📚 См. также