|
|
Строка 1: |
Строка 1: |
| {{DISPLAYTITLE: Термостат BHT-6000 Series}} | | {{DISPLAYTITLE: Термостат BHT-6000 Series}} |
| [[Image: BHT-6000 Series.png|300px|thumb|right| Термостат BHT-6000 Series, белый]] | | [[Image: BHT-6000 Series.png|300px|thumb|right| Термостат BHT-6000 Series, белый]] |
| == Работа по Modbus ==
| |
| Термостатом можно управлять по протоколу [[Протокол_Modbus|Modbus RTU]]. На физическом уровне он подключается через интерфейс [[RS-485]].
| |
|
| |
| Настраивать термостат можно с помощью утилиты [[Modbus-client|modbus_client]], использовать [[Working with WB devices without a controller|приложение для компьютера на ОС Windows]] или из веб-интерфейса контроллера Wiren Board.
| |
|
| |
| В этой статье мы будем использовать утилиту <code>modbus_client</code>, а подключаться к контроллеру через [[SSH]]. Синтаксис и параметры командной строки можно посмотреть на странице утилиты в разделе [[Modbus-client#Аргументы командной строки|Аргументы командной строки]].
| |
|
| |
| == Подготовка к работе ==
| |
| {{Wbincludes:Modbus: Preparing for work}}
| |
|
| |
| == Изменение настроек термостата ==
| |
| Все настройки, доступные для изменения через RS-485 выведены в [[#Настройка для работы с ПО | веб-интерфейс]], но вы можете их изменять из командной строки с помощью утилиты <code>modbus_client</code>. Для этого нужно записать значения в [[#Таблица modbus-регистров | регистры термостата]]. Если вы никогда не использовали утилиту <code>modbus_client</code>, смотрите раздел [[#Подготовка к работе | Подготовка к работе]].
| |
|
| |
| В примерах термостат подключен к интерфейсу <code>/dev/ttyRS485-1</code>, имеет настройки интерфейса <code>9600/None/1/8</code> и доступен по адресу <code>2</code>.
| |
|
| |
| === Установка параметров подключения ===
| |
| Вы можете перед началом работы с термостатом назначить ему modbus-адрес, но параметры подключения изменить нельзя.
| |
|
| |
| По умолчанию в термостате заданы параметры: Адрес — 1, Скорость — 9600 бит/с, Четность — Even, Бит — 1.
| |
|
| |
| У всех устройств Wiren Board параметры интерфейса по умолчанию: Скорость — 9600 бит/с, Четность — None, Бит — 2. Поэтому для использования термостата на одной линии с ними, в устройствах Wiren Board нужно установить параметр <code>Бит = 1</code>.
| |
|
| |
| '''Modbus-адрес''' термостата устанавливается из сервисного меню и не может быть изменен через RS-485. Настройка делается нажатием кнопок на корпусе термостата:
| |
| # Выключите термостат нажатием на кнопку <code>ON/OFF</code>.
| |
| # Зажмите одновременно кнопки <code>M</code> и <code>Clock</code> на 5 секунд — термостат войдет в сервисный режим.
| |
| # Кратким нажатием на кнопку <code>M</code> выберите параметр <code>C</code>.
| |
| # Кнопками <code>вверх ↑</code> и <code>вниз ↓</code> установите новый адрес термостата.
| |
| # После установки адреса подождите 5 секунд, термостат применит новые настройки и выйдет из сервисного режима.
| |
| # Включите термостат нажатием на кнопку <code>ON/OFF</code>.
| |
|
| |
| Теперь вы можете подключиться к термостату по-новому modbus-адресу.
| |
|
| |
| === Общий алгоритм настройки ===
| |
| # Ищете адрес регистра и функцию записи.
| |
| # Смотрите возможные значения.
| |
| # Записываете в регистр значение, которое попадает в диапазон возможных.
| |
|
| |
| === Блокировка кнопок ===
| |
|
| |
| Мы хотим заблокировать все физические кнопки на термостате:
| |
| # Состояние блокировки хранится в регистре '''Lock buttons''' с адресом <code>0x06</code>. Функция записи — <code>0x06</code>.
| |
| # Возможные значения: 0 — Unlock, 1 — Lock.
| |
| # Теперь запишите значение '''1''' в регистр '''Lock buttons''':
| |
| #:<syntaxhighlight lang="bash">
| |
| ~# modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x06 -r0x06 1
| |
| Data to write: 0x1
| |
| Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
| |
| [02][06][00][06][00][01][A8][38]
| |
| Waiting for a confirmation...
| |
| <02><06><00><06><00><01><A8><38>
| |
| SUCCESS: written 1 elements!
| |
| </syntaxhighlight>
| |
|
| |
| Кнопки термостата заблокированы. Для разблокировки запишите в регистр '''Lock buttons''' значение 0 — Unlock.
| |
|
| |
| ===Чтение и запись значений температуры===
| |
| Значение температуры нужно конвертировать перед записью или после чтения.
| |
|
| |
| Прочитаем значение текущей уставки из регистра '''Set temperature''', 0x04 — получим:
| |
| <syntaxhighlight lang="bash">
| |
| ~# modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x03 -r0x04
| |
| Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
| |
| [02][03][00][04][00][01][C5][F8]
| |
| Waiting for a confirmation...
| |
| <02><03><02><01><2C><FC><09>
| |
| SUCCESS: read 1 of elements:
| |
| Data: 0x012c
| |
| </syntaxhighlight>
| |
|
| |
| В документации к термостату указан '''коэффициент конвертации — 0.1'''. Это значит, что при чтении мы должны умножить полученное значение на коэффициент, а при записи разделить.
| |
|
| |
| Нами было считано значение <code>0x012с</code> — это число 300, умножим его на коэффициент: <code>300 × 0.1 = 30 °С</code>
| |
|
| |
| Теперь запишем в регистр значение 12°C: <code>12 / 0.1 = 120</code>:
| |
| <syntaxhighlight lang="bash">
| |
| ~# modbus_client --debug -mrtu -pnone -s1 /dev/ttyRS485-1 -a2 -t0x06 -r0x04 120
| |
| Data to write: 0x78
| |
| Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 1)
| |
| [02][06][00][04][00][78][C8][1A]
| |
| Waiting for a confirmation...
| |
| <02><06><00><04><00><78><C8><1A>
| |
| SUCCESS: written 1 elements!
| |
| </syntaxhighlight>
| |
|
| |
|
| == Настройка для работы с ПО == | | == Настройка для работы с ПО == |
| [[Image: Devices View BHT-6000 Series.png |300px|thumb|right| Представление BHT-6000 Series в веб-интерфейсе]] | | [[Image: Devices View BHT-6000 Series.png |300px|thumb|right| Представление BHT-6000 Series в веб-интерфейсе]] |
|
| |
|
| Перед настройкой термостата в веб-интерфейсе, установите в нем [[#Установка параметров подключения | параметры подключения]].
| | По умолчанию в термостате заданы параметры: Адрес — 1, Скорость — 9600 бит/с, Четность — Even, Бит — 1. |
|
| |
|
| === Шаблон устройства === | | === Шаблон устройства === |
Строка 169: |
Строка 86: |
| # Выберите один из двух интерфейсов связи и установите параметры интерфейса: Baud rate — 9600 бит/с, Parity — N, Data bits — 8, Stop bits — 1. | | # Выберите один из двух интерфейсов связи и установите параметры интерфейса: Baud rate — 9600 бит/с, Parity — N, Data bits — 8, Stop bits — 1. |
| # Нажмите на кнопку '''+ Device''' и в поле '''Device N''' выберите '''BHT-6000 Series''', где N — порядковый номер устройства. | | # Нажмите на кнопку '''+ Device''' и в поле '''Device N''' выберите '''BHT-6000 Series''', где N — порядковый номер устройства. |
| # В поле '''Slave id''' укажите modbus-адрес термостата. | | # В поле '''Slave id''' укажите [[#Изменение параметров подключения | modbus-адрес]] термостата. |
| # Сохраните настройки нажатием на кнопку '''Save'''. | | # Сохраните настройки нажатием на кнопку '''Save'''. |
|
| |
|
Строка 175: |
Строка 92: |
|
| |
|
| Вы можете изменить шаблон по своему усмотрению — смотрите описание шаблонов в статье [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Драйвер wb-mqtt-serial]]. | | Вы можете изменить шаблон по своему усмотрению — смотрите описание шаблонов в статье [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Драйвер wb-mqtt-serial]]. |
| | |
| | == Изменение параметров подключения == |
| | Перед началом работы с термостатом вы можете назначить ему modbus-адрес, но изменить другие параметры подключения не получится. |
| | |
| | '''Modbus-адрес''' термостата устанавливается из сервисного меню и не может быть изменен по шине RS-485. Настройка делается нажатием кнопок на корпусе термостата: |
| | # Выключите термостат нажатием на кнопку <code>ON/OFF</code>. |
| | # Зажмите одновременно кнопки <code>M</code> и <code>Clock</code> на 5 секунд — термостат войдет в сервисный режим. |
| | # Кратким нажатием на кнопку <code>M</code> выберите параметр <code>C</code>. |
| | # Кнопками <code>вверх ↑</code> и <code>вниз ↓</code> установите новый адрес термостата. |
| | # После установки адреса подождите 5 секунд, термостат применит новые настройки и выйдет из сервисного режима. |
| | # Включите термостат нажатием на кнопку <code>ON/OFF</code>. |
| | |
| | Теперь вы можете подключиться к термостату по-новому modbus-адресу. |
|
| |
|
| == Таблица modbus-регистров== | | == Таблица modbus-регистров== |
| Таблица регистров термостата BHT-6000GALN. | | |
| | Информация о регистрах термостата может быть полезна, если вы хотите автоматизировать работу с помощью [[Движок правил wb-rules 2.0 | сценариев]] или [[Working with WB devices without a controller | управлять термостатом по шине RS-485 без контроллера]]. |
| | |
| | Таблица регистров термостата BHT-6000GALN. Значения температуры при чтении нужно умножить на <code>0.1</code>, а при записи разделить. |
|
| |
|
| {|class="wikitable sortable" | | {|class="wikitable sortable" |