UART Communication Settings: различия между версиями

Материал из Wiren Board
Строка 49: Строка 49:
Теперь изменим скорость порта устройства с 9600 бит/с на 115 200 бит/с, для этого запишем в регистр <code>110</code> новое значение, формат которого можно посмотреть в таблице общих регистров:
Теперь изменим скорость порта устройства с 9600 бит/с на 115 200 бит/с, для этого запишем в регистр <code>110</code> новое значение, формат которого можно посмотреть в таблице общих регистров:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r110 1152
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a12 -t0x06 -r110 1152
</syntaxhighlight>
</syntaxhighlight>



Версия 14:50, 2 мая 2023

Другие языки:

Введение

Устройства Wiren Board управляются по протоколу Modbus RTU и на физическом уровне подключаются через интерфейс RS-485.

Параметры порта по умолчанию

Значение
по умолчанию
Название параметра
в веб-интерфейсе
Параметр
9600 Baud rate Скорость, бит/с
8 Data bits Количество битов данных
None Parity Бит чётности
2 Stop bits Количество стоповых битов

Изменение скорости обмена

Для ускорения отклика устройств на шине RS485 рекомендуем поднять скорость обмена до 115 200 бит/с.

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

Смена уровня доступа к веб-интерфейсу

Уровень «Администратор»

Для изменения настроек контроллера вам нужен уровень доступа Администратор, который можно выставить в разделе НастройкиПрава доступа.

После завершения настроек рекомендуем поставить уровень доступа Пользователь или Оператор — это поможет не совершить случайных ошибок при ежедневной работе с веб-интерфейсом.

Настройка

Выбор желаемой скорости обмена в настройках устройства

Увеличим скорость обмена в Modbus-устройствах Wiren Board со значения по умолчанию до 115 200 бит/с:

  1. Подключите и настройте все устройства на скорости 9600 бит/с, которая стоит у них по умолчанию.
  2. Убедитесь, что все работает как надо: данные идут со всех устройств, каналы не горят красным, в системном журнале нет ошибок порта.
  3. Откройте веб-интерфейс контроллера и перейдите SettingsConfigsSerial Device Driver Configuration.
  4. Выберите нужный порт, в параметрах устройства в группе General поставьте флажок Baud rate и выберите желаемую скорость обмена: 115 200 бит/с. Скорость порта пока оставьте прежней.
  5. Вверху страницы нажмите на кнопку Save, это запустит запись нового значения скорости в устройство.
  6. Как только новое значение будет записано, каналы устройства на вкладке Devices станут красными. Если вы меняли настройки нескольких устройств, дождитесь, пока они все не «покраснеют».
  7. Укажите в настройках порта ту же скорость, которую вы выбрали в настройках устройства: 115 200 бит/с.
  8. Снова сохраните настройки. Теперь настройки устройств и порта совпадают, устройства должны начать отвечать.

Настройка параметров обмена

Чтобы изменить параметры подключения, нам понадобится:

Подготовка:

  1. Подключите устройство по шине RS-485 к контроллеру или другому оборудованию, где будете выполнять команды.
  2. Если вы выполняете команды на контроллере:
  3. Можно менять настройки устройств.

Допустим, у нас есть Modbus-устройство Wiren Board с заводскими параметрами подключения, Modbus-адресом 1 и подключённое к порту /dev/ttyRS485-1.

Изменим адрес устройства, для этого запишем в регистр 128 новый адрес, например 12:

modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12

Теперь изменим скорость порта устройства с 9600 бит/с на 115 200 бит/с, для этого запишем в регистр 110 новое значение, формат которого можно посмотреть в таблице общих регистров:

modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a12 -t0x06 -r110 1152

Теперь устройство передаёт и принимает данные на скорости 115 200 бит/с.

Остальные параметры меняются аналогично: смотрите, в каком регистре хранится значение и записываете в него новое.

Если параметры подключения неизвестны

Бывает так, что параметры подключения устройства неизвестны, то можно или сбросить их к заводским, или узнать перебором, для этого загрузите на контроллер скрипт Perebor.sh.tar.gz и выполните его. Если адрес, к которому подключено устройство отличается от /dev/ttyRS485-1, измените его в теле скрипта.

Как это работает: мы обращаемся к регистру 128, в котором во всех modbus-устройствах Wiren Board хранится modbus-адрес. Вывод скрипта будет содержать строки, подобные этим:

Speed:9600      Stop bits:1     Parity:none     Modbus address:0x0001
Speed:9600      Stop bits:2     Parity:none     Modbus address:0x0001

Для стоп-битов, скорее всего, вы получите два значения: 1 и 2. Уточнить настройку можно считав значение из регистра 112 с уже известным адресом, скоростью, четностью:

modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyAPP1 -a0x01 -t0x03 -r112

или

modbus_client --debug -mrtu -b9600 -pnone -s1 /dev/ttyAPP1 -a0x01 -t0x03 -r112
   SUCCESS: read 1 of elements:
   Data: 0x0002

Если при чтении из регистра 112 вы получаете ошибку — устройство не поддерживает изменение параметров подключения. В этом случае для подключения используется значение по умолчанию,2 стоп-бита.