UART Communication Settings: различия между версиями
(не показано 9 промежуточных версий 2 участников) | |||
Строка 16: | Строка 16: | ||
=== Настройка === | === Настройка === | ||
[[Image: WebUI Change Baud Rate.png |250px|thumb|right| Выбор желаемой скорости обмена в настройках устройства ]] | [[Image: WebUI Change Baud Rate.png |250px|thumb|right| Выбор желаемой скорости обмена в настройках устройства ]] | ||
Увеличим скорость обмена в Modbus-устройствах Wiren Board со значения по умолчанию до 115 200 бит/с: | Увеличим скорость обмена в Modbus-устройствах Wiren Board со значения по умолчанию до 115 200 бит/с: | ||
Строка 28: | Строка 22: | ||
# Откройте [[Wiren_Board_Web_Interface | веб-интерфейс]] контроллера и перейдите '''Settings''' → '''Configs''' → '''Serial Device Driver Configuration'''. | # Откройте [[Wiren_Board_Web_Interface | веб-интерфейс]] контроллера и перейдите '''Settings''' → '''Configs''' → '''Serial Device Driver Configuration'''. | ||
# Выберите нужный порт, в параметрах устройства в группе '''General''' поставьте флажок '''Baud rate''' и выберите желаемую скорость обмена: 115 200 бит/с. Скорость порта пока оставьте прежней. | # Выберите нужный порт, в параметрах устройства в группе '''General''' поставьте флажок '''Baud rate''' и выберите желаемую скорость обмена: 115 200 бит/с. Скорость порта пока оставьте прежней. | ||
# Вверху страницы нажмите на кнопку '''Save''', это | # Вверху страницы нажмите на кнопку '''Save''', это запишет новое значение скорости в устройство. Но так как порт работает на старой скорости, то устройства отвечать не будут. | ||
# Укажите в настройках порта ту же скорость, которую вы выбрали в настройках устройства: 115 200 бит/с. | # Укажите в настройках порта ту же скорость, которую вы выбрали в настройках устройства: 115 200 бит/с. | ||
# Снова сохраните настройки. Теперь настройки | # Снова сохраните настройки. Теперь настройки устройства и порта совпадают, устройство должно начать отвечать. | ||
== Настройка параметров обмена == | == Настройка параметров обмена == | ||
Строка 41: | Строка 34: | ||
Подготовка: | Подготовка: | ||
# Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где будете выполнять команды. | # Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где будете выполнять команды. | ||
# Если вы выполняете команды на контроллере, | # Если вы выполняете команды на контроллере: | ||
#:* откройте консоль контроллера по [[SSH]], | |||
#:* [[Modbus-client#Подготовка к работе | остановите драйвер wb-mqtt-serial]]. | |||
# Можно менять настройки устройств. | # Можно менять настройки устройств. | ||
Строка 53: | Строка 48: | ||
Теперь изменим скорость порта устройства с 9600 бит/с на 115 200 бит/с, для этого запишем в регистр <code>110</code> новое значение, формат которого можно посмотреть в таблице общих регистров: | Теперь изменим скорость порта устройства с 9600 бит/с на 115 200 бит/с, для этого запишем в регистр <code>110</code> новое значение, формат которого можно посмотреть в таблице общих регистров: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 - | modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r110 1152 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 63: | Строка 58: | ||
{{Anchor|unknown-params}} | {{Anchor|unknown-params}} | ||
<!--T:14--> | <!--T:14--> | ||
Бывает так, что параметры подключения устройства неизвестны, то можно или [[Wiren_Board_Device_Modbus_Address#Восстановление доступа| сбросить их к заводским]], или узнать перебором, для этого загрузите на контроллер скрипт [[Media:Perebor.sh.tar.gz|Perebor.sh.tar.gz]] и выполните его. Если адрес, к которому подключено устройство отличается от <code>/dev/ttyRS485-1</code>, измените его в теле скрипта. | |||
<!--T:16--> | <!--T:16--> |
Версия 13:18, 27 мая 2022
Введение
Устройства Wiren Board управляются по протоколу Modbus RTU и на физическом уровне подключаются через интерфейс RS-485.
Параметры порта по умолчанию
Значение по умолчанию |
Название параметра в веб-интерфейсе |
Параметр |
---|---|---|
9600 | Baud rate | Скорость, бит/с |
8 | Data bits | Количество битов данных |
None | Parity | Бит чётности |
2 | Stop bits | Количество стоповых битов |
Изменение скорости обмена
Для ускорения отклика устройств на шине RS485 рекомендуем поднять скорость обмена до 115 200 бит/с.
Отметим, что низкая скорость обмена прощает многие ошибки построения шины, но на высоких скоростях выполнение рекомендаций по построению шины обязательно.
Смена уровня доступа к веб-интерфейсу
Для изменения настроек контроллера вам нужен уровень доступа Администратор, который можно выставить в разделе Настройки → Права доступа.
После завершения настроек рекомендуем поставить уровень доступа Пользователь или Оператор — это поможет не совершить случайных ошибок при ежедневной работе с веб-интерфейсом.
Настройка
Увеличим скорость обмена в Modbus-устройствах Wiren Board со значения по умолчанию до 115 200 бит/с:
- Подключите и настройте все устройства на скорости 9600 бит/с, которая стоит у них по умолчанию.
- Убедитесь, что все работает как надо: данные идут со всех устройств, каналы не горят красным, в системном журнале нет ошибок порта.
- Откройте веб-интерфейс контроллера и перейдите Settings → Configs → Serial Device Driver Configuration.
- Выберите нужный порт, в параметрах устройства в группе General поставьте флажок Baud rate и выберите желаемую скорость обмена: 115 200 бит/с. Скорость порта пока оставьте прежней.
- Вверху страницы нажмите на кнопку Save, это запишет новое значение скорости в устройство. Но так как порт работает на старой скорости, то устройства отвечать не будут.
- Укажите в настройках порта ту же скорость, которую вы выбрали в настройках устройства: 115 200 бит/с.
- Снова сохраните настройки. Теперь настройки устройства и порта совпадают, устройство должно начать отвечать.
Настройка параметров обмена
Чтобы изменить параметры подключения, нам понадобится:
- знать текущие настройки подключения устройства;
- контроллер с утилитой modbus_client или компьютер с адаптером USB-RS485 и программой для работы с Modbus;
- номера регистров, которые описаны в таблице общих регистров.
Подготовка:
- Подключите устройство по шине RS-485 к контроллеру или другому оборудованию, где будете выполнять команды.
- Если вы выполняете команды на контроллере:
- откройте консоль контроллера по SSH,
- остановите драйвер wb-mqtt-serial.
- Можно менять настройки устройств.
Допустим, у нас есть Modbus-устройство Wiren Board с заводскими параметрами подключения, Modbus-адресом 1
и подключённое к порту /dev/ttyRS485-1
.
Изменим адрес устройства, для этого запишем в регистр 128
новый адрес, например 12
:
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12
Теперь изменим скорость порта устройства с 9600 бит/с на 115 200 бит/с, для этого запишем в регистр 110
новое значение, формат которого можно посмотреть в таблице общих регистров:
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r110 1152
Теперь устройство передаёт и принимает данные на скорости 115 200 бит/с.
Остальные параметры меняются аналогично: смотрите, в каком регистре хранится значение и записываете в него новое.
Если параметры подключения неизвестны
Бывает так, что параметры подключения устройства неизвестны, то можно или сбросить их к заводским, или узнать перебором, для этого загрузите на контроллер скрипт Perebor.sh.tar.gz и выполните его. Если адрес, к которому подключено устройство отличается от /dev/ttyRS485-1
, измените его в теле скрипта.
Как это работает: мы обращаемся к регистру 128
, в котором во всех modbus-устройствах Wiren Board хранится modbus-адрес. Вывод скрипта будет содержать строки, подобные этим:
Speed:9600 Stop bits:1 Parity:none Modbus address:0x0001 Speed:9600 Stop bits:2 Parity:none Modbus address:0x0001
Для стоп-битов, скорее всего, вы получите два значения: 1 и 2. Уточнить настройку можно считав значение из регистра 112
с уже известным адресом, скоростью, четностью:
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyAPP1 -a0x01 -t0x03 -r112
или
modbus_client --debug -mrtu -b9600 -pnone -s1 /dev/ttyAPP1 -a0x01 -t0x03 -r112
SUCCESS: read 1 of elements: Data: 0x0002
Если при чтении из регистра 112 вы получаете ошибку — устройство не поддерживает изменение параметров подключения. В этом случае для подключения используется значение по умолчанию,2 стоп-бита.