Смена Modbus адреса Ensystec через консоль Wiren Board
Смена 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