Ensystec-modbus-address-change: различия между версиями
Admin (обсуждение | вклад) Добавлена инструкция по смене Modbus адреса Ensystec |
Admin (обсуждение | вклад) Английские адреса Wiki: обновление ссылок с сохранением русских подписей |
||
| (не показано 6 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Смена Modbus адреса Ensystec через консоль Wiren Board}} | |||
__NOTOC__ | __NOTOC__ | ||
= Смена Modbus адреса Ensystec через консоль Wiren Board = | = Смена Modbus адреса Ensystec через консоль Wiren Board = | ||
Инструкция для смены Modbus-адреса '''Ensystec Leak Protect''' через SSH-консоль контроллера '''Wiren Board'''. | |||
В примере ниже: | |||
* Ensystec подключён к <code>RS485-2</code>; | |||
* текущий адрес устройства — <code>247</code>; | |||
* новый адрес — <code>11</code>. | |||
== | == Параметры Ensystec == | ||
{| class="wikitable" | {| class="wikitable" | ||
| Строка 26: | Строка 28: | ||
|} | |} | ||
Новый адрес записывается в регистр <code>0x0F</code> обычным числом: для адреса <code>11</code> записывается значение <code>11</code>. | |||
== | == Определить порт RS-485 == | ||
Откройте веб-интерфейс Wiren Board и перейдите в раздел '''Устройства'''. Найдите Ensystec и посмотрите, в какой группе RS-485 он находится. | |||
= | {| class="wikitable" | ||
! Группа в веб-интерфейсе !! Порт в командах | |||
|- | |||
| <code>RS485-1</code> || <code>/dev/ttyRS485-1</code> | |||
|- | |||
| <code>RS485-2</code> || <code>/dev/ttyRS485-2</code> | |||
|- | |||
| <code>MOD1</code> || <code>/dev/ttyMOD1</code> | |||
|- | |||
| <code>MOD2</code> || <code>/dev/ttyMOD2</code> | |||
|- | |||
| <code>MOD3</code> || <code>/dev/ttyMOD3</code> | |||
|} | |||
Если устройство находится не на <code>RS485-2</code>, замените <code>/dev/ttyRS485-2</code> в командах на нужный порт. | |||
== Подключиться по SSH == | |||
<pre> | <pre> | ||
| Строка 43: | Строка 56: | ||
</pre> | </pre> | ||
Замените <code>192.168.88.27</code> на IP-адрес своего контроллера. | |||
== | == Остановить опрос Modbus == | ||
<pre> | <pre> | ||
| Строка 61: | Строка 64: | ||
</pre> | </pre> | ||
== Проверить текущий адрес == | |||
Прочитать регистр <code>0x0F</code> на текущем адресе <code>247</code>: | |||
<pre> | <pre> | ||
| Строка 71: | Строка 72: | ||
</pre> | </pre> | ||
Ожидаемый | Ожидаемый ответ для адреса <code>247</code>: | ||
<pre> | <pre> | ||
SUCCESS: read 1 of elements: | SUCCESS: read 1 of elements: | ||
Data: | Data: 0x00f7 | ||
</pre> | </pre> | ||
На некоторых версиях устройства значение может отображаться как <code>0xfff7</code>. Важен младший байт <code>f7</code>, то есть адрес <code>247</code>. | |||
== | == Записать новый адрес 11 == | ||
<pre> | <pre> | ||
modbus_client --debug -mrtu -a247 -t0x06 -r0x0F -b9600 -d8 -pnone -s2 /dev/ttyRS485-2 | modbus_client --debug -mrtu -a247 -t0x06 -r0x0F -b9600 -d8 -pnone -s2 /dev/ttyRS485-2 11 | ||
</pre> | </pre> | ||
| Строка 94: | Строка 93: | ||
</pre> | </pre> | ||
== Проверить новый адрес == | |||
Прочитать регистр <code>0x0F</code> на новом адресе <code>11</code>: | |||
<pre> | <pre> | ||
| Строка 104: | Строка 101: | ||
</pre> | </pre> | ||
Ожидаемый | Ожидаемый ответ: | ||
<pre> | <pre> | ||
SUCCESS: read 1 of elements: | SUCCESS: read 1 of elements: | ||
Data: | Data: 0x000b | ||
</pre> | </pre> | ||
Проверить, что старый адрес <code>247</code> больше не отвечает: | |||
<pre> | <pre> | ||
| Строка 117: | Строка 114: | ||
</pre> | </pre> | ||
Ожидаемый | Ожидаемый ответ: | ||
<pre> | <pre> | ||
| Строка 123: | Строка 120: | ||
</pre> | </pre> | ||
== | == Изменить адрес в веб-интерфейсе Wiren Board == | ||
Откройте веб-интерфейс Wiren Board: '''Устройства''' → Ensystec → настройки устройства. Укажите Modbus-адрес <code>11</code>, сохраните и примените конфигурацию. | |||
== Запустить опрос Modbus == | |||
<pre> | <pre> | ||
| Строка 147: | Строка 130: | ||
</pre> | </pre> | ||
После запуска проверьте в веб-интерфейсе Wiren Board, что Ensystec отображается без ошибки связи. | |||
== Если текущий адрес уже не 247 == | |||
Если адрес устройства уже был изменён, используйте текущий адрес вместо <code>247</code> в командах чтения и записи. Например, для смены адреса с <code>12</code> на <code>11</code>: | |||
<pre> | <pre> | ||
systemctl stop wb-mqtt-serial | systemctl stop wb-mqtt-serial | ||
modbus_client --debug -mrtu -a12 -t0x06 -r0x0F -b9600 -d8 -pnone -s2 /dev/ttyRS485-2 11 | |||
modbus_client --debug -mrtu - | |||
modbus_client --debug -mrtu -a11 -t0x03 -r0x0F -c1 -b9600 -d8 -pnone -s2 /dev/ttyRS485-2 | modbus_client --debug -mrtu -a11 -t0x03 -r0x0F -c1 -b9600 -d8 -pnone -s2 /dev/ttyRS485-2 | ||
systemctl start wb-mqtt-serial | systemctl start wb-mqtt-serial | ||
</pre> | </pre> | ||
== См. также == | == См. также == | ||
* [[Описание и схема подключения блока защиты от протечек воды Ensystec]] | * [[Ensystec-leak-protection-wiring|Описание и схема подключения блока защиты от протечек воды Ensystec]] | ||
* [[Смена Modbus адреса у устройств Wiren Board через консоль]] | * [[Wiren-board-modbus-address-change|Смена Modbus адреса у устройств Wiren Board через консоль]] | ||
* [https://wiki.wirenboard.com/wiki/images/4/44/Ensystec_Leak_Protect_MODBUS_RTU.pdf Таблица регистров Ensystec Leak Protect Modbus RTU] | * [https://wiki.wirenboard.com/wiki/images/4/44/Ensystec_Leak_Protect_MODBUS_RTU.pdf Таблица регистров Ensystec Leak Protect Modbus RTU] | ||
Текущая версия от 22:24, 2 октября 2026
Смена Modbus адреса Ensystec через консоль Wiren Board
Инструкция для смены Modbus-адреса Ensystec Leak Protect через SSH-консоль контроллера Wiren Board.
В примере ниже:
- Ensystec подключён к
RS485-2; - текущий адрес устройства —
247; - новый адрес —
11.
Параметры Ensystec
| Параметр | Значение |
|---|---|
| Интерфейс | RS-485, Modbus RTU |
| Скорость | 9600 бод |
| Формат | 8N2: 8 бит данных, без чётности, 2 стоп-бита |
| Заводской Modbus-адрес | 247 |
| Регистр адреса | holding-регистр 0x0F
|
| Функция записи | 0x06, Write Single Register
|
Новый адрес записывается в регистр 0x0F обычным числом: для адреса 11 записывается значение 11.
Определить порт RS-485
Откройте веб-интерфейс Wiren Board и перейдите в раздел Устройства. Найдите Ensystec и посмотрите, в какой группе RS-485 он находится.
| Группа в веб-интерфейсе | Порт в командах |
|---|---|
RS485-1 |
/dev/ttyRS485-1
|
RS485-2 |
/dev/ttyRS485-2
|
MOD1 |
/dev/ttyMOD1
|
MOD2 |
/dev/ttyMOD2
|
MOD3 |
/dev/ttyMOD3
|
Если устройство находится не на RS485-2, замените /dev/ttyRS485-2 в командах на нужный порт.
Подключиться по SSH
ssh root@192.168.88.27
Замените 192.168.88.27 на IP-адрес своего контроллера.
Остановить опрос Modbus
systemctl stop wb-mqtt-serial
Проверить текущий адрес
Прочитать регистр 0x0F на текущем адресе 247:
modbus_client --debug -mrtu -a247 -t0x03 -r0x0F -c1 -b9600 -d8 -pnone -s2 /dev/ttyRS485-2
Ожидаемый ответ для адреса 247:
SUCCESS: read 1 of elements: Data: 0x00f7
На некоторых версиях устройства значение может отображаться как 0xfff7. Важен младший байт f7, то есть адрес 247.
Записать новый адрес 11
modbus_client --debug -mrtu -a247 -t0x06 -r0x0F -b9600 -d8 -pnone -s2 /dev/ttyRS485-2 11
Ожидаемый результат:
SUCCESS: written 1 elements!
Проверить новый адрес
Прочитать регистр 0x0F на новом адресе 11:
modbus_client --debug -mrtu -a11 -t0x03 -r0x0F -c1 -b9600 -d8 -pnone -s2 /dev/ttyRS485-2
Ожидаемый ответ:
SUCCESS: read 1 of elements: Data: 0x000b
Проверить, что старый адрес 247 больше не отвечает:
modbus_client --debug -mrtu -a247 -t0x03 -r0x0F -c1 -o300 -b9600 -d8 -pnone -s2 /dev/ttyRS485-2
Ожидаемый ответ:
ERROR Connection timed out: select
Изменить адрес в веб-интерфейсе Wiren Board
Откройте веб-интерфейс Wiren Board: Устройства → Ensystec → настройки устройства. Укажите Modbus-адрес 11, сохраните и примените конфигурацию.
Запустить опрос Modbus
systemctl start wb-mqtt-serial
После запуска проверьте в веб-интерфейсе Wiren Board, что Ensystec отображается без ошибки связи.
Если текущий адрес уже не 247
Если адрес устройства уже был изменён, используйте текущий адрес вместо 247 в командах чтения и записи. Например, для смены адреса с 12 на 11:
systemctl stop wb-mqtt-serial modbus_client --debug -mrtu -a12 -t0x06 -r0x0F -b9600 -d8 -pnone -s2 /dev/ttyRS485-2 11 modbus_client --debug -mrtu -a11 -t0x03 -r0x0F -c1 -b9600 -d8 -pnone -s2 /dev/ttyRS485-2 systemctl start wb-mqtt-serial