16 885
правок
(не показано 18 промежуточных версий 5 участников) | |||
Строка 2: | Строка 2: | ||
== Общая информация == | == Общая информация == | ||
[[Файл: | [[Файл:wb_modbus_address.png|300px|thumb|right|Modbus-адрес, установленный на производстве. Слева наклейка на верхней крышке устройства, справа — на боковой стенке]] | ||
Заводской Modbus-адрес устройства Wiren Board можно узнать на | Заводской Modbus-адрес устройства Wiren Board можно узнать на наклейках, которые находится на корпусе устройства: | ||
* сбоку, где так же указаны ревизия устройства, версия прошивки, серийный номер и QR-код с этими данными; | |||
* на верхней крышке устройства. | |||
Если заводской адрес был изменен, | Если заводской адрес был изменен, самый лучший способ узнать его - подключить устройство к контроллеру и выполнить [[Fast_Modbus#Сканирование_устройств_на_шине|сканирование]]. Или воспользоваться утилитой [[Modbus-client |Modbus_client]], которая доступна для контроллеров Wiren Board и компьютеров с ОС Linux. | ||
'''ВНИМАНИЕ:''' если вы выполняете команды на контроллере, то перед | Если у вас компьютер с ОС Windows, то вы можете [[#Восстановление доступа | восстановить доступ к устройству]]. | ||
'''ВНИМАНИЕ:''' если вы выполняете команды на контроллере, то перед запуском утилиты ''Modbus-client'' [[Modbus-client#Подготовка к работе | остановите драйвер wb-mqtt-serial]], а после окончания — запустите снова. | |||
== Определение адресов всех устройств на шине == | == Определение адресов всех устройств на шине == | ||
===Сканирование шины в веб-интерфейсе=== | |||
Функция сканирования шины. Она доступна в веб-интерфейсе контроллера на вкладке Настройки - Сканирование. | |||
Убедитесь что все устройства подключены к шине и запустите сканирование. | |||
Если вы используете контроллер с устаревшим ПО воспользуйтесь инструкцией ниже. | |||
===Определение адреса методом перебора=== | |||
Если перебрать все доступные адреса и прочитать регистр с сигнатурой устройства — можно получить список устройств на шине: | Если перебрать все доступные адреса и прочитать регистр с сигнатурой устройства — можно получить список устройств на шине: | ||
# Подключите устройства по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где будете выполнять команды. | # Подключите устройства по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где будете выполнять команды. | ||
Строка 39: | Строка 48: | ||
... | ... | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Вариант скрипта с перебором не только адресов но и параметров связи: [[UART_Communication_Settings#unknown-params | Если параметры подключения неизвестны]] | |||
== Изменение адреса устройству с известным адресом == | == Изменение адреса устройству с известным адресом == | ||
Строка 48: | Строка 59: | ||
# Чтобы назначить новый адрес <code>12</code> устройству с адресом <code>1</code> и подключенное к порту <code>/dev/ttyRS485-1</code> выполните команду: | # Чтобы назначить новый адрес <code>12</code> устройству с адресом <code>1</code> и подключенное к порту <code>/dev/ttyRS485-1</code> выполните команду: | ||
#: <syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12 | modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Пример успешного выполнения команды: | Пример успешного выполнения команды: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="console"> | ||
# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12 | |||
Data to write: 0xc | Data to write: 0xc | ||
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | ||
Строка 62: | Строка 73: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Изменение адреса | == Изменение адреса устройству с неизвестным адресом == | ||
С расширением Быстрый Modbus, изменить адрес устройства можно используя адресацию по его серийному номеру. В этом случае не нужно отключать другие устройства от шины. О там как это сделать читайте на странице про [[Fast_Modbus |Быстрый Modbus]]. | |||
Если вы используете устройство со старой версией прошивки используйте инструкцию ниже, а лучше обновите прошивку. | |||
Если вам достаточно изменить адрес устройства, то вы можете сделать это отправив ему широковещательный запрос. | Если вам достаточно изменить адрес устройства, то вы можете сделать это отправив ему широковещательный запрос. | ||
Строка 74: | Строка 88: | ||
# Замените в команде порт <code>/dev/ttyRS485-1</code> на тот, к которому подключены устройства и выполните команду на контроллере: | # Замените в команде порт <code>/dev/ttyRS485-1</code> на тот, к которому подключены устройства и выполните команду на контроллере: | ||
#: <syntaxhighlight lang="bash"> | #: <syntaxhighlight lang="bash"> | ||
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a0 -t0x06 -r128 1 | modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a0 -t0x06 -r128 1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 80: | Строка 94: | ||
Запишем всем устройствам на шине в регистр <code>128 (0x80)</code> новый адрес <code>1</code>: | Запишем всем устройствам на шине в регистр <code>128 (0x80)</code> новый адрес <code>1</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="console"> | ||
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a0 -t0x06 -r128 1 | # modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a0 -t0x06 -r128 1 | ||
Data to write: 0x1 | Data to write: 0x1 | ||
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2) | ||
Строка 91: | Строка 105: | ||
== Восстановление доступа == | == Восстановление доступа == | ||
{{Anchor|restoring-access}} | |||
[[File:Bootloader.gif|300px|thumb|right|Индикация режима загрузчика]] | [[File:Bootloader.gif|300px|thumb|right|Индикация режима загрузчика]] | ||
Вы можете сбросить настройки приемопередатчика Modbus-устройства до заводских: скорость — 9600, чётность (parity) — N, количество стоп-бит — 2, Modbus-адрес — 1. | Вы можете сбросить настройки приемопередатчика Modbus-устройства до заводских: скорость — 9600, чётность (parity) — N, количество стоп-бит — 2, Modbus-адрес — 1. | ||
Строка 96: | Строка 111: | ||
Это может быть полезно, если вам неизвестны все параметры подключения. Для сброса настроек используется утилита [[wb-mcu-fw-flasher]], которая доступна для контроллеров Wiren Board, а также компьютеров с ОС Linux и Windows. | Это может быть полезно, если вам неизвестны все параметры подключения. Для сброса настроек используется утилита [[wb-mcu-fw-flasher]], которая доступна для контроллеров Wiren Board, а также компьютеров с ОС Linux и Windows. | ||
# Подключите '''только одно устройство''' по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где будете выполнять команды. | # Подключите '''только одно устройство''' по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где будете выполнять команды. | ||
# Если вы выполняете команды на контроллере: | # Если вы выполняете команды на контроллере: | ||
Строка 118: | Строка 130: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
root@wirenboard-A4DTZKTB:~# wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a0 -u | root@wirenboard-A4DTZKTB:~# wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a0 -u | ||
/dev/ttyRS485-1 opened successfully. | /dev/ttyRS485-1 opened successfully. | ||
Send reset UART settings and modbus address command... | Send reset UART settings and modbus address command... | ||
Строка 146: | Строка 138: | ||
== Полезные ссылки == | == Полезные ссылки == | ||
* [[UART_Communication_Settings | Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]] | * [[UART_Communication_Settings | Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]] | ||
* [[WB Modbus Devices Firmware Update | Обновление прошивки Modbus-устройств Wiren Board]] | * [[WB Modbus Devices Firmware Update | Обновление прошивки Modbus-устройств Wiren Board]] | ||
Строка 152: | Строка 143: | ||
* [[wb-mcu-fw-flasher | Сервисная утилита wb-mcu-fw-flasher]] | * [[wb-mcu-fw-flasher | Сервисная утилита wb-mcu-fw-flasher]] | ||
* [[Wb-mqtt-serial driver | Описание драйвера wb-mqtt-serial]] | * [[Wb-mqtt-serial driver | Описание драйвера wb-mqtt-serial]] | ||
* [[Fast_Modbus |Описание расширения Быстрый Modbus]] |