Wiren-board-modbus-baud-rate-change
Устройства 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`.