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

Wiren-board-modbus-address-change: различия между версиями

Материал из XIOT Wiki
Добавлена инструкция по смене Modbus адреса Ensystec
COR-05: актуализированы XIOT-PLC, контроллеры и RS-485
Строка 1: Строка 1:
__NOTOC__
Изменение Modbus-адреса через консоль выполняют только по документации на точную модель, аппаратную ревизию и версию прошивки устройства. Номер регистра, допустимый диапазон адресов, функция записи и момент применения настройки у разных устройств могут отличаться.


Все устройства Wirenboard поддерживают смену Modbus-адреса записью нового значения в регистр `128`. Для этого используется утилита `modbus_client`, запускаемая из консоли контроллера.
'''Для кого:''' интеграторы и специалисты по пусконаладке, которым предоставлен доступ к консоли контроллера и документации устройства.


== ⛔ Остановить Modbus-сервис ==
'''Результат:''' устройство отвечает по новому адресу, конфигурация контроллера обновлена, а остальные устройства сегмента продолжают работать без конфликтов адресов.
Перед выполнением команды необходимо остановить сервис `wb-mqtt-serial`, чтобы освободить доступ к порту:


<pre>
'''Проверено:''' 22 августа 2026 года как безопасная модельно-зависимая процедура. Конкретные регистры и команды должны подтверждаться документацией устройства на дату выполнения работ.
service wb-mqtt-serial stop
</pre>


== ⚙ Смена адреса ==
== Когда использовать этот способ ==
Пример: текущее устройство на адресе `1`, нужно установить новый адрес `10`.


<pre>
Консоль подходит для пусконаладки и восстановления, когда изменение адреса предусмотрено производителем, но недоступно через штатный интерфейс настройки. Если производитель предлагает конфигуратор, переключатели или отдельную подтверждённую процедуру, используйте её.
modbus_client \
  -m rtu                # режим работы Modbus RTU
  -b 9600              # текущая скорость устройства
  -p none              # чётность (none/even/odd) — чаще всего none
  -s 1                  # количество стоп-бит (1 или 2)
  /dev/ttyRS485-1      # RS-485 порт контроллера
  -a 1                  # текущий адрес устройства
  -t 0x06              # тип Modbus-запроса: запись одного регистра
  -r 128                # регистр смены адреса
  10                    # новый адрес устройства
</pre>


=== 🧪 Примеры команд ===
Не копируйте регистр и команду от другой модели, даже если устройства имеют похожее название или выпускаются одним производителем.


Смена адреса с 1 на 10 через первый порт (RS-485-1), 9600 бод:
== Что проверить до начала ==
<pre>
modbus_client -m rtu -b 9600 -p none -s 1 /dev/ttyRS485-1 -a 1 -t 0x06 -r 128 10
</pre>


Смена адреса с 3 на 50 через второй порт (RS-485-2), 19200 бод:
# Запишите точное название модели, аппаратную ревизию и версию прошивки.
<pre>
# Откройте актуальную карту регистров или инструкцию производителя именно для этой версии устройства.
modbus_client -m rtu -b 19200 -p none -s 1 /dev/ttyRS485-2 -a 3 -t 0x06 -r 128 50
# Найдите в документации регистр адреса, формат значения, допустимый диапазон, функцию записи и необходимость перезапуска.
</pre>
# Зафиксируйте текущий адрес, скорость, чётность, количество стоп-битов, порт контроллера и настройки устройства в конфигурации.
# Убедитесь, что новый адрес не занят в этом сегменте RS-485.
# Сохраните исходную конфигурацию и подготовьте возможность вернуть прежние параметры.


Смена адреса с 5 на 8 через MOD1, 38400 бод:
Если хотя бы один из этих пунктов неизвестен, запись выполнять нельзя.
<pre>
modbus_client -m rtu -b 38400 -p none -s 1 /dev/ttyMOD1 -a 5 -t 0x06 -r 128 8
</pre>


Смена адреса с 6 на 9 через MOD2, 19200 бод:
== Безопасная подготовка линии ==
<pre>
modbus_client -m rtu -b 19200 -p none -s 1 /dev/ttyMOD2 -a 6 -t 0x06 -r 128 9
</pre>


Смена адреса с 100 на 1 через второй порт, 115200 бод:
# Остановите опрос нужного последовательного порта штатным способом, предусмотренным текущей версией ПО контроллера. Убедитесь, что другой процесс не обращается к порту.
<pre>
# Обесточьте линию перед изменением проводки.
modbus_client -m rtu -b 115200 -p none -s 1 /dev/ttyRS485-2 -a 100 -t 0x06 -r 128 1
# Оставьте подключённым только настраиваемое устройство. Остальные устройства сегмента отключите или обесточьте, чтобы исключить ответ нескольких устройств с одинаковым адресом.
</pre>
# Проверьте полярность линии, сигнальный проводник опорного потенциала и питание по схемам контроллера и устройства.
# Подайте питание и сначала подтвердите чтением, что отвечает именно нужное устройство. Читайте идентификационный или диагностический регистр, указанный его производителем.


'''Важно:''' всегда указывайте правильный текущий адрес. На шине должно быть только одно устройство с указанным адресом.
'''Ожидаемый результат подготовки:''' порт не опрашивается другим процессом, на линии осталось одно идентифицированное устройство, а исходные параметры записаны для восстановления.


== ✅ Проверка ==
== Изменение адреса ==
Проверка связи с устройством по новому адресу:


<pre>
# Настройте консольную утилиту на текущие параметры связи устройства.
modbus_client -m rtu -b 9600 -p none -s 1 /dev/ttyRS485-1 -a 10 -t 0x03 -r 0 -c 1
# Выполните одну адресную запись с функцией, регистром и кодированием значения из документации производителя.
</pre>
# Не используйте широковещательную запись и не перебирайте неизвестные регистры.
# Дождитесь времени применения настройки или перезапустите устройство только в том случае, если это прямо предусмотрено документацией.


'''Что делает эта команда:'''
В статье намеренно нет универсальной команды: готовая команда без привязки к модели и ревизии может изменить другой параметр или сделать устройство недоступным.
* `-a 10` — обращение к устройству с новым адресом `10`
* `-t 0x03` — чтение holding-регистров
* `-r 0` — начальный регистр (0)
* `-c 1` — количество регистров — 1


'''Результат:'''
== Проверка результата и возврат линии в работу ==
Если устройство отвечает, появится строка:


<pre>
# Выполните чтение по новому адресу с теми же параметрами порта.
Data: 0xXXXX
# Сверьте идентификатор, модель или серийный номер, если устройство позволяет их прочитать.
</pre>
# Убедитесь, что старый адрес больше не отвечает и новый адрес не конфликтует с другим устройством.
# Измените адрес устройства в конфигурации контроллера.
# Подключите остальные устройства, затем возобновите опрос порта штатным способом.
# Проверьте обмен со всеми устройствами сегмента и отсутствие ошибок связи.


Значение может быть любым — главное, что есть ответ. Это означает, что адрес установлен успешно.
'''Ожидаемый результат проверки:''' нужное устройство однозначно определяется по новому адресу, конфликтов нет, штатный опрос всего сегмента восстановлен.


== 🔄 Запуск Modbus-сервиса ==
== Если устройство перестало отвечать ==
После завершения настроек запустите сервис обратно:


<pre>
# Снова остановите опрос и оставьте подключённым только это устройство.
service wb-mqtt-serial start
# Верните консольной утилите исходные параметры связи и проверьте прежний адрес.
</pre>
# Затем проверьте новый адрес, не меняя одновременно скорость, чётность и стоп-биты.
# Выполните обычное отключение и включение питания только по инструкции производителя.
# Аппаратный сброс используйте как последнюю меру и только по документации точной модели: он может удалить остальные настройки.
 
Не записывайте значения в предполагаемые регистры в попытке «найти» адрес. Если исходные параметры неизвестны, обратитесь к документации производителя или в техническую поддержку.
 
== Что зафиксировать после работы ==
 
Запишите старый и новый адрес, модель и ревизию устройства, версию документации, параметры порта, дату изменения и результат проверки. Обновите маркировку, таблицу адресов и исполнительную документацию проекта.
 
== См. также ==


== ⚠ Важно ==
* Регистр `128` (десятичный) используется во всех устройствах Wirenboard для смены адреса.
* Изменения применяются сразу после записи.
* При смене адреса убедитесь, что только одно устройство подключено по указанному адресу.
== 📚 См. также ==
* [[Смена скорости Modbus в устройствах Wiren Board через консоль]]
* [[Смена скорости Modbus в устройствах Wiren Board через консоль]]
* [[Смена Modbus адреса Ensystec через консоль Wiren Board]]
* [[Смена Modbus адреса Ensystec через консоль Wiren Board]]

Версия от 12:43, 22 августа 2026

Изменение Modbus-адреса через консоль выполняют только по документации на точную модель, аппаратную ревизию и версию прошивки устройства. Номер регистра, допустимый диапазон адресов, функция записи и момент применения настройки у разных устройств могут отличаться.

Для кого: интеграторы и специалисты по пусконаладке, которым предоставлен доступ к консоли контроллера и документации устройства.

Результат: устройство отвечает по новому адресу, конфигурация контроллера обновлена, а остальные устройства сегмента продолжают работать без конфликтов адресов.

Проверено: 22 августа 2026 года как безопасная модельно-зависимая процедура. Конкретные регистры и команды должны подтверждаться документацией устройства на дату выполнения работ.

Когда использовать этот способ

Консоль подходит для пусконаладки и восстановления, когда изменение адреса предусмотрено производителем, но недоступно через штатный интерфейс настройки. Если производитель предлагает конфигуратор, переключатели или отдельную подтверждённую процедуру, используйте её.

Не копируйте регистр и команду от другой модели, даже если устройства имеют похожее название или выпускаются одним производителем.

Что проверить до начала

  1. Запишите точное название модели, аппаратную ревизию и версию прошивки.
  2. Откройте актуальную карту регистров или инструкцию производителя именно для этой версии устройства.
  3. Найдите в документации регистр адреса, формат значения, допустимый диапазон, функцию записи и необходимость перезапуска.
  4. Зафиксируйте текущий адрес, скорость, чётность, количество стоп-битов, порт контроллера и настройки устройства в конфигурации.
  5. Убедитесь, что новый адрес не занят в этом сегменте RS-485.
  6. Сохраните исходную конфигурацию и подготовьте возможность вернуть прежние параметры.

Если хотя бы один из этих пунктов неизвестен, запись выполнять нельзя.

Безопасная подготовка линии

  1. Остановите опрос нужного последовательного порта штатным способом, предусмотренным текущей версией ПО контроллера. Убедитесь, что другой процесс не обращается к порту.
  2. Обесточьте линию перед изменением проводки.
  3. Оставьте подключённым только настраиваемое устройство. Остальные устройства сегмента отключите или обесточьте, чтобы исключить ответ нескольких устройств с одинаковым адресом.
  4. Проверьте полярность линии, сигнальный проводник опорного потенциала и питание по схемам контроллера и устройства.
  5. Подайте питание и сначала подтвердите чтением, что отвечает именно нужное устройство. Читайте идентификационный или диагностический регистр, указанный его производителем.

Ожидаемый результат подготовки: порт не опрашивается другим процессом, на линии осталось одно идентифицированное устройство, а исходные параметры записаны для восстановления.

Изменение адреса

  1. Настройте консольную утилиту на текущие параметры связи устройства.
  2. Выполните одну адресную запись с функцией, регистром и кодированием значения из документации производителя.
  3. Не используйте широковещательную запись и не перебирайте неизвестные регистры.
  4. Дождитесь времени применения настройки или перезапустите устройство только в том случае, если это прямо предусмотрено документацией.

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

Проверка результата и возврат линии в работу

  1. Выполните чтение по новому адресу с теми же параметрами порта.
  2. Сверьте идентификатор, модель или серийный номер, если устройство позволяет их прочитать.
  3. Убедитесь, что старый адрес больше не отвечает и новый адрес не конфликтует с другим устройством.
  4. Измените адрес устройства в конфигурации контроллера.
  5. Подключите остальные устройства, затем возобновите опрос порта штатным способом.
  6. Проверьте обмен со всеми устройствами сегмента и отсутствие ошибок связи.

Ожидаемый результат проверки: нужное устройство однозначно определяется по новому адресу, конфликтов нет, штатный опрос всего сегмента восстановлен.

Если устройство перестало отвечать

  1. Снова остановите опрос и оставьте подключённым только это устройство.
  2. Верните консольной утилите исходные параметры связи и проверьте прежний адрес.
  3. Затем проверьте новый адрес, не меняя одновременно скорость, чётность и стоп-биты.
  4. Выполните обычное отключение и включение питания только по инструкции производителя.
  5. Аппаратный сброс используйте как последнюю меру и только по документации точной модели: он может удалить остальные настройки.

Не записывайте значения в предполагаемые регистры в попытке «найти» адрес. Если исходные параметры неизвестны, обратитесь к документации производителя или в техническую поддержку.

Что зафиксировать после работы

Запишите старый и новый адрес, модель и ревизию устройства, версию документации, параметры порта, дату изменения и результат проверки. Обновите маркировку, таблицу адресов и исполнительную документацию проекта.

См. также