Смена Modbus адреса Ensystec через консоль Wiren Board

Материал из XIOT Wiki
Перейти к навигации Перейти к поиску

Смена 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

См. также

Источник — https://wiki.xiot.ru/index.php?title=Смена_Modbus_адреса_Ensystec_через_консоль_Wiren_Board&oldid=3556