|
|
Строка 1: |
Строка 1: |
| {{DISPLAYTITLE: Термостат Siemens RDF302 }} | | {{DISPLAYTITLE: Термостат Siemens RDF302 }} |
| [[Image: Siemens RDF302.png|300px|thumb|right| Термостат Siemens RDF302]] | | [[Image: Siemens RDF302.png|300px|thumb|right| Термостат Siemens RDF302]] |
| == Работа по Modbus == | | == Представление в веб-интерфейсе == |
| Термостатом можно управлять по протоколу [[Протокол_Modbus|Modbus RTU]]. На физическом уровне он подключается через интерфейс [[RS-485]].
| |
| | |
| Настраивать термостат можно с помощью утилиты [[Modbus-client|modbus_client]] или использовать [[Working with WB devices without a controller|приложение для компьютера на ОС Windows]].
| |
| | |
| В этой статье мы будем использовать утилиту <code>modbus_client</code>, а подключаться к контроллеру через [[SSH]]. Синтаксис и параметры командной строки можно посмотреть на странице утилиты в разделе [[Modbus-client#Аргументы командной строки|Аргументы командной строки]].
| |
| | |
| == Подготовка к работе ==
| |
| {{Wbincludes:Modbus: Preparing for work}}
| |
| | |
| == Изменение настроек термостата ==
| |
| Часть важных настроек вынесена в шаблон и их можно изменить в веб-интерфейсе, но на этапе пусконаладки может потребоваться изменить конфигурацию входов или изменить режим работы. Это можно сделать через запись нужных значений в [[#Таблицы modbus-регистров | регистры термостата]].
| |
| | |
| В примерах термостат у подключен к интерфейсу <code>/dev/ttyRS485-1</code>, имеет настройки интерфейса <code>9600/None/2/8</code> и доступен по адресу <code>2</code>.
| |
| | |
| '''ВНИМАНИЕ:''' доступность параметров зависит от выбранного приложения и режимов работы, подробнее читайте в [[#Документация |документации к термостату]].
| |
| | |
| === Установка параметров подключения ===
| |
| Перед началом работы с термостатом нужно назначить ему modbus-адрес и задать параметры подключения.
| |
| | |
| По умолчанию в термостате заданы параметры: Адрес — 1, Скорость — 19200 бит/с, Четность — Even.
| |
| | |
| Так как у всех устройств Wiren Board параметры интерфейса по умолчанию: Скорость — 9600 бит/с, Четность — None, то в термостате нужно выставить такие же параметры. Это позволит работать термостату на одной шине с другими устройствами Wiren Board.
| |
| | |
| Выберите новую скорость интерфейса RS-485 термостата, для этого запишите в регистр P68(0x0043) значение <code>1</code> — 9600 бит/с:
| |
| <syntaxhighlight lang="bash">
| |
| modbus_client --debug -mrtu -b19200 -peven -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0x0043 1
| |
| </syntaxhighlight>
| |
| | |
| Установите четность, для этого запишите в регистр P70(0x0045) значение <code>2</code> — No parity (None):
| |
| <syntaxhighlight lang="bash">
| |
| modbus_client --debug -mrtu -b19200 -peven -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0x0045 2
| |
| </syntaxhighlight>
| |
| | |
| Теперь укажите новый modbus-адрес, для этого запишите в регистр P81(0x0050) новый адрес, например — <code>2</code>:
| |
| <syntaxhighlight lang="bash">
| |
| modbus_client --debug -mrtu -b19200 -peven -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0x0050 2
| |
| </syntaxhighlight>
| |
| | |
| Чтобы применить новые настройки — перезагрузите термостат, для этого отключите питание или снимите и поставьте назад лицевую панель. После перезагрузки термостат будет доступен по указанному выше адресу и с выбранными параметрами интерфейса связи.
| |
| [[Image: Siemens RDF302 DIP-swithes.png|200px|thumb|right| DIP-переключатели. Включен режим удаленного выбора приложения]]
| |
| | |
| === Общий алгоритм настройки ===
| |
| # Ищете адрес регистра, функцию записи.
| |
| # Смотрите возможные значения.
| |
| # Записываете в регистр значение, которое попадает в диапазон возможных.
| |
| | |
| === Блокировка кнопок ===
| |
| | |
| Мы хотим заблокировать все физические кнопки на термостате:
| |
| # Состояние блокировки хранится в регистре '''Button lock command''' с адресом <code>0x006B</code>. Функция записи — <code>0x06</code>.
| |
| # Возможные значения: число от ноля до четырех. Мы хотим заблокировать все кнопки: 4 — Lock all buttons.
| |
| # Теперь запишите нужное значение в регистр '''Button lock command''':
| |
| #:<syntaxhighlight lang="bash">
| |
| ~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r0x006B 4
| |
| Data to write: 0x4
| |
| Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
| |
| [01][06][00][6B][00][04][F9][D5]
| |
| Waiting for a confirmation...
| |
| <01><06><00><6B><00><04><F9><D5>
| |
| SUCCESS: written 1 elements!
| |
| </syntaxhighlight>
| |
| | |
| Кнопки термостата заблокированы. Для разблокировки запишите в регистр '''Button lock command''' значение 0 — Unlock.
| |
| | |
| ===Управление вентилятором в ручном режиме===
| |
| | |
| Теперь переключим вентилятор в ручной режим и установим среднюю скорость вращения:
| |
| # Значение режима вентилятора хранится в регистре '''Fan command value''' с адресом <code>0x0065</code>. Функция записи — <code>0x06</code>.
| |
| # Возможные значения: 0 — Auto, 33 — Low Fan, 66 — Mid Fan, 100 — High Fan.
| |
| # Теперь запишите нужное значение в регистр '''Fan command value''':
| |
| #:<syntaxhighlight lang="bash">
| |
| ~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r0x0065 66
| |
| Data to write: 0x42
| |
| Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
| |
| [01][06][00][65][00][42][19][E4]
| |
| Waiting for a confirmation...
| |
| <01><06><00><65><00><42><19><E4>
| |
| SUCCESS: written 1 elements!
| |
| </syntaxhighlight>
| |
| | |
| Вентилятор будет вращаться со средней скоростью. Чтобы вернуть вентилятор в автоматический режим, запишите в регистр '''Fan command value''' значение 0 — Auto.
| |
| | |
| ===Чтение и запись значений температуры===
| |
| Значение температуры нужно конвертировать перед записью или после чтения.
| |
| | |
| Если мы прочитаем значение текущей уставки из регистра Room Temperature: Comfort setpoint, 0x0066 — получим:
| |
| <syntaxhighlight lang="bash">
| |
| ~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x03 -r0x0066
| |
| Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
| |
| [01][03][00][66][00][01][64][15]
| |
| Waiting for a confirmation...
| |
| <01><03><02><04><1A><3B><4F>
| |
| SUCCESS: read 1 of elements:
| |
| Data: 0x03b6
| |
| </syntaxhighlight>
| |
| | |
| 0x03b6 — это число 950. Посмотрев этот параметр на самом термостате видим, что там указано 19°С. Вычисляем коэффициент: <code>19 / 950 = 0.02</code>. Это значит, что при записи нам нужно разделить число на наш коэффициент, а при чтении умножить. Запишем в регистр значение 12°C: <code>12 / 0.02 = 600</code>:
| |
| <syntaxhighlight lang="bash">
| |
| :~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r0x0066 600
| |
| Data to write: 0x258
| |
| Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
| |
| [01][06][00][66][02][58][69][4F]
| |
| Waiting for a confirmation...
| |
| <01><06><00><66><02><58><69><4F>
| |
| SUCCESS: written 1 elements!
| |
| </syntaxhighlight>
| |
| | |
| == Настройка для работы с ПО ==
| |
| [[Image: Devices View Siemens RDF302.png |300px|thumb|right| Представление Siemens RDF302 в веб-интерфейсе]] | | [[Image: Devices View Siemens RDF302.png |300px|thumb|right| Представление Siemens RDF302 в веб-интерфейсе]] |
|
| |
|
| Перед настройкой термостата в веб-интерфейсе, установите в нем [[#Установка параметров подключения | параметры подключения]].
| | Для отображения устройства в веб-интерфейсе контроллера Wiren Board вам нужно добавить новое serial-устройство и выбрать шаблон '''Siemens RDF302'''. |
| === Шаблон устройства ===
| |
| '''ВНИМАНИЕ:''' шаблон для термостата Siemens RDF302 включен в поставку драйвера [[Драйвер wb-mqtt-serial|wb-mqtt-serial]], начиная с версии 2.7.0. Текущую версию шаблона можно также скачать из нашего репозитория: [https://github.com/wirenboard/wb-mqtt-serial/tree/master/wb-mqtt-serial-templates/config-siemens-rdf302.json config-siemens-rdf302.json].
| |
| | |
| Выберите шаблон термостата в разделе «Serial Device Driver Configuration» веб-интерфейса:
| |
| # Откройте веб-интерфейс и перейдите '''Configs''' → '''Serial Device Driver Configuration'''.
| |
| # Выберите один из двух интерфейсов связи и установите параметры интерфейса: Baud rate — 9600 бит/с, Parity — N, Data bits — 8, Stop bits — 2.
| |
| # Нажмите на кнопку '''+ Device''' и в поле '''Device N''' выберите '''Siemens RDF302''', где N — порядковый номер устройства.
| |
| # В поле '''Slave id''' укажите modbus-адрес термостата.
| |
| # Сохраните настройки нажатием на кнопку '''Save'''.
| |
|
| |
|
| Теперь устройство будет доступно на вкладке '''Devices''', но перед использованием нужно выбрать одно из [[#Выбор приложения | четырех приложений]].
| | Смотрите также: |
| | | * [[RS-485:Configuration via Web Interface | Начальное конфигурирование устройств через веб-интерфейс]] |
| Вы можете дополнить шаблон по своему усмотрению — смотрите описание шаблонов в статье [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Драйвер wb-mqtt-serial]].
| | * [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Примеры написания шаблонов]] |
|
| |
|
| === Выбор приложения === | | === Выбор приложения === |
| | [[Image: Siemens RDF302 DIP-swithes.png|200px|thumb|right| DIP-переключатели. Включен режим удаленного выбора приложения]] |
| [[Image: Siemens RDF302 Setup.png|300px|thumb|right| Установка параметров Siemens RDF302]] | | [[Image: Siemens RDF302 Setup.png|300px|thumb|right| Установка параметров Siemens RDF302]] |
| Приложение — это набор параметров и алгоритмов которые термостат использует в своей работе. | | Приложение — это набор параметров и алгоритмов которые термостат использует в своей работе. |
Строка 139: |
Строка 23: |
| '''ВНИМАНИЕ:''' для удаленного выбора приложения нужно перевести все DIP-переключатели на плате термостата в положение OFF — этот режим включен по умолчанию. | | '''ВНИМАНИЕ:''' для удаленного выбора приложения нужно перевести все DIP-переключатели на плате термостата в положение OFF — этот режим включен по умолчанию. |
|
| |
|
| Выбрать приложение можно в настройках термостата в разделе «Serial Device Driver Configuration» веб-интерфейса: | | Выбрать приложение можно в настройках термостата в разделе '''Serial Device Driver Configuration''' веб-интерфейса: |
| # Откройте веб-интерфейс и перейдите '''Configs''' → '''Serial Device Driver Configuration'''. | | # Откройте веб-интерфейс и перейдите '''Settings''' → '''Configs''' → '''Serial Device Driver Configuration'''. |
| # Выберите интерфейс связи, к которому подключено устройство. | | # Выберите интерфейс связи, к которому подключено устройство. |
| # Найдите в перечне устройств термостат и в поле '''Plant type''' выберите одно из четырех приложений. Сразу можете установить параметры управления в поле '''P01. Control sequence'''. | | # Найдите в перечне устройств термостат и в поле '''Plant type''' выберите одно из четырех приложений. Сразу можете установить параметры управления в поле '''P01. Control sequence'''. |
Строка 147: |
Строка 31: |
| Подробнее о приложениях и параметрах управления читайте в документации к термостату. | | Подробнее о приложениях и параметрах управления читайте в документации к термостату. |
|
| |
|
| == Таблицы modbus-регистров== | | {{Wbincludes:Modbus Aliens}} |
| Ниже представлены таблицы регистров термостата Siemens RDF302. В отличие от таблиц в руководстве, адреса регистров указаны в новом шестнадцатеричном формате. Подробнее о параметрах и регистрах читайте в документации.
| | |
| | === Параметры порта === |
| | По умолчанию устройство имеет настройки: |
| | * Baud rate — 19 200 бит/с, |
| | * Parity — Even, |
| | * Data bits — 8, |
| | * Stop bits — 1. |
| | |
| | Параметры порта <code>Baud rate</code> и <code>Parity</code> можно настроить записав в регистры выбранные значения: |
| | {|class="wikitable sortable" style="text-align:center;" |
| | ! Параметр |
| | ! Адрес, Hex |
| | ! Тип регистра |
| | ! По умолчанию |
| | ! Возможные значения |
| | |- |
| | | style="text-align:left;" | Baud Rate |
| | | 0x0043 |
| | | Holding |
| | | 2 |
| | | style="text-align:left;" | 0 = 4800 бит/с<br>1 = 9600 бит/с<br>2 = 19200 бит/с<br>3 = 38400 бит/с |
| | |- |
| | | style="text-align:left;" | Parity |
| | | 0x0045 |
| | | Holding |
| | | 1 |
| | | style="text-align:left;" | 0 = Odd<br>1 = Even<br>2 = No parity |
| | |} |
| | === Modbus-адрес === |
| | По умолчанию в термостате задан modbus-адрес — <code>1</code>, изменить его можно записав в регистр значение от 1 до 247: |
| | {|class="wikitable sortable" style="text-align:center;" |
| | ! Параметр |
| | ! Адрес, Hex |
| | ! Тип регистра |
| | ! По умолчанию |
| | ! Возможные значения |
| | |- |
| | | style="text-align:left;" | Device address |
| | | 0x0050 |
| | | Holding |
| | | 1 |
| | | style="text-align:left;" | 1…247 |
| | |} |
| | |
| | === Карта регистров === |
| | Таблицы регистров термостата Siemens RDF302. Значения температуры при чтении нужно умножить на <code>0.02</code>, а при записи разделить. Подробнее о параметрах и регистрах читайте в документации. |
|
| |
|
| === Служебные регистры === | | ==== Служебные регистры ==== |
| {|class="wikitable sortable" | | {|class="wikitable sortable" |
| !width="17%"| '''Назначение''' | | !width="17%"| '''Назначение''' |
Строка 377: |
Строка 306: |
| |} | | |} |
|
| |
|
| === Регистры общего назначения === | | ==== Регистры общего назначения ==== |
|
| |
|
| {|class="wikitable sortable" | | {|class="wikitable sortable" |