UART Communication Settings: различия между версиями
Fizikdaos (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
<languages/> | <languages/> | ||
{{DISPLAYTITLE:Настройка параметров | {{DISPLAYTITLE:Настройка параметров подключения по RS-485 для Modbus-устройств Wiren Board}} | ||
<translate> | <translate> | ||
== | == Введение == | ||
Устройства Wiren Board управляются по протоколу Modbus RTU и на физическом уровне подключаются через интерфейс [[RS-485]]. | |||
{{Wbincludes:Modbus Default Settings}} | |||
== Настройка параметров == | |||
Чтобы изменить параметры подключения, нам понадобится: | |||
* знать текущие настройки подключения устройства; | |||
* контроллер с утилитой [[modbus_client]] или компьютер с адаптером USB-RS485 и [[Working_with_WB_devices_without_a_controller | программой для работы с Modbus]]; | |||
* номера регистров, которые описаны в [[Common_Modbus_Registers | таблице общих регистров]]. | |||
Подготовка: | |||
# Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где будете выполнять команды. | |||
# Если вы выполняете команды на контроллере: | |||
#:* откройте консоль контроллера по [[SSH]], | |||
#:* [[Modbus-client#Подготовка к работе | остановите драйвер wb-mqtt-serial]]. | |||
# Можно менять настройки устройств. | |||
Допустим, у нас есть Modbus-устройство Wiren Board с заводскими параметрами подключения, Modbus-адресом <code>1</code> и подключённое к порту <code>/dev/ttyRS485-1</code>. | |||
< | Изменим адрес устройства, для этого запишем в регистр <code>128</code> новый адрес, например <code>12</code>: | ||
<syntaxhighlight lang="bash"> | |||
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12 | |||
</syntaxhighlight> | |||
< | Теперь изменим скорость порта устройства с 9600 бит/с на 115 200 бит/с, для этого запишем в регистр <code>110</code> новое значение, формат которого можно посмотреть в таблице общих регистров: | ||
<syntaxhighlight lang="bash"> | |||
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r110 1152 | |||
</syntaxhighlight> | |||
Теперь устройство передаёт и принимает данные на скорости 115 200 бит/с. | |||
Остальные параметры меняются аналогично: смотрите, в каком регистре хранится значение и записываете в него новое. | |||
== Если параметры подключение неизвестны == | |||
<!--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--> | ||
Как это работает: мы обращаемся к регистру <code>128</code>, в котором во всех modbus-устройствах Wiren Board хранится modbus-адрес. Вывод скрипта будет содержать строки, подобные этим: | |||
Speed:9600 Stop bits:1 Parity:none Modbus address:0x0001 | Speed:9600 Stop bits:1 Parity:none Modbus address:0x0001 | ||
Speed:9600 Stop bits:2 Parity:none Modbus address:0x0001 | Speed:9600 Stop bits:2 Parity:none Modbus address:0x0001 | ||
<!--T:17--> | <!--T:17--> | ||
Для стоп-битов, скорее всего, вы получите два значения: 1 и 2. Уточнить настройку можно считав значение из регистра 112 с уже известным адресом, скоростью, четностью: | Для стоп-битов, скорее всего, вы получите два значения: 1 и 2. Уточнить настройку можно считав значение из регистра <code>112</code> с уже известным адресом, скоростью, четностью: | ||
<!--T:18--> | <!--T:18--> | ||
Строка 97: | Строка 62: | ||
<!--T:22--> | <!--T:22--> | ||
Если при чтении из регистра 112 вы получаете ошибку | Если при чтении из регистра 112 вы получаете ошибку — устройство не поддерживает изменение параметров подключения. В этом случае для подключения используется значение по умолчанию,2 стоп-бита. | ||
</translate> | </translate> |