Siemens RDF302: различия между версиями

Нет описания правки
 
(не показано 19 промежуточных версий 2 участников)
Строка 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]].
Для отображения устройства в веб-интерфейсе контроллера Wiren Board вам нужно добавить новое serial-устройство и выбрать шаблон '''Siemens RDF302'''.  


Настраивать термостат можно с помощью утилиты [[Modbus-client|modbus_client]] или использовать [[Working with WB devices without a controller|приложения для компьютера на ОС Windows]].
Смотрите также:
* [[RS-485:Configuration via Web Interface | Начальное конфигурирование устройств через веб-интерфейс]]
* [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Примеры написания шаблонов]]


В этой статье мы будем использовать утилиту <code>modbus_client</code>. Синтаксис и параметры командной строки можно посмотреть на странице утилиты в разделе [[Modbus-client#Аргументы командной строки|Аргументы командной строки]].
<gallery mode="traditional" widths ="250px" heights="200px">
Image: Siemens RDF302 Setup.png| Установка параметров Siemens RDF302
Image: Devices View Siemens RDF302.png| Представление Siemens RDF302 в веб-интерфейсе контроллера Wiren Board
Image: Siemens RDF302 DIP-swithes.png| DIP-переключатели. Включен режим удаленного выбора приложения
</gallery>


{{Wbincludes:Modbus: Preparing for work}}
=== Выбор приложения ===
 
== Настройка для работы с ПО ==
[[Image: Devices View Siemens RDF302.png |300px|thumb|right| Представление Siemens RDF302 в веб-интерфейсе]]
 
=== Установка параметров подключения ===
Перед началом работы с термостатом нужно назначить ему 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>1</code> — Even:
<syntaxhighlight lang="bash">
modbus_client --debug -mrtu -b19200 -peven -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0x0045 1
</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-переключатели. Включен режим удаленного выбора приложения]]
 
=== Шаблон устройства ===
'''ВНИМАНИЕ:''' шаблон для термостата Siemens RDF302 включен в поставку драйвера [[Драйвер wb-mqtt-serial|wb-mqtt-serial]], начиная с версии 2.7.0.


Выберите шаблон термостата в разделе «Serial Device Driver Configuration» веб-интерфейса:
Приложение — это набор параметров и алгоритмов которые термостат использует в своей работе.
# Откройте веб-интерфейс и перейдите '''Configs''' → '''Serial Device Driver Configuration'''.
# Выберите один из двух интерфейсов связи и установите параметры интерфейса: Baud rate — 9600 бит/с, Parity — N.
# Нажмите на кнопку '''+ Device''' и в поле '''Device N''' выберите '''Siemens RDF302'''. N — порядковый номер устройства.
# В поле '''Slave id''' укажите modbus-адрес термостата.
# Сохраните настройки нажатием на кнопку '''Save'''.
 
Теперь устройство будет доступно на вкладке '''Devices''', но перед использованием нужно выбрать одно из четырех приложений.
 
Вы можете дополнить шаблон по своему усмотрению — смотрите описание шаблонов в статье [[Драйвер wb-mqtt-serial:Примеры написания шаблонов | Драйвер wb-mqtt-serial]]. Текущую версию шаблона можно взять в нашем репозитории: [https://github.com/wirenboard/wb-mqtt-serial/tree/master/wb-mqtt-serial-templates/config-siemens-rdf302.json config-siemens-rdf302.json].
 
=== Выбор приложения ===
[[Image: Siemens RDF302 Setup.png|300px|thumb|right| Установка параметров Siemens RDF302]]
Приложение — это набор параметров и алгоритмов опираясь на которые термостат выполняет свои функции.


Приложения запрограммированы с завода, всего их четыре:
Приложения запрограммированы с завода, всего их четыре:
Строка 62: Строка 24:
# 4-pipe
# 4-pipe


'''ВНИМАНИЕ:''' для удаленного выбора приложения нужно перевести все 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'''.
Строка 72: Строка 34:
Подробнее о приложениях и параметрах управления читайте в документации к термостату.
Подробнее о приложениях и параметрах управления читайте в документации к термостату.


== Изменение настроек термостата ==
{{Wbincludes:Modbus Aliens}}
Часть важных настроек вынесена в веб-интерфейс, но на этапе пусконаладки может потребоваться изменить конфигурацию входов или изменить режим работы.


Это можно сделать через запись нужных значений в [[#Таблицы modbus-регистров | регистры термостата]].
=== Параметры порта ===
По умолчанию устройство имеет настройки:
* Baud rate — 19 200 бит/с,
* Parity — Even,
* Data bits — 8,
* Stop bits — 1.


В примерах термостат у подключен к интерфейсу <code>/dev/ttyRS485-1</code>, имеет настройки интерфейса <code>9600/None/2/8</code> и доступен по адресу <code>2</code>.
Параметры порта <code>Baud rate</code> и <code>Parity</code> можно настроить записав в регистры выбранные значения:
 
{|class="wikitable sortable" style="text-align:center;"
=== Общий алгоритм настройки ===
! Параметр
# Ищете адрес регистра, функцию записи.
! Адрес, Hex
# Смотрите возможные значения.
! Тип регистра
# Записываете в регистр значение, которое попадает в диапазон возможных.
! По умолчанию
 
! Возможные значения
=== Блокировка кнопок ===
|-
 
| style="text-align:left;" | Baud Rate
Мы хотим заблокировать все физические кнопки на термостате:
| 0x0043
# Состояние блокировки хранится в регистре '''Button lock command''' с адресом <code>0x006B</code>. Функция записи — <code>0x06</code>.
| Holding
# Возможные значения: число от ноля до четырех. Мы хотим заблокировать все кнопки: 4 — Lock all buttons.
| 2
# Теперь запишите нужное значение в регистр '''Button lock command''':
| style="text-align:left;" | 0 = 4800 бит/с<br>1 = 9600 бит/с<br>2 = 19200 бит/с<br>3 = 38400 бит/с
#:<syntaxhighlight lang="bash">
|-
~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r0x006B 4
| style="text-align:left;" | Parity
Data to write: 0x4
| 0x0045
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
| Holding
[01][06][00][6B][00][04][F9][D5]
| 1
Waiting for a confirmation...
| style="text-align:left;" | 0 = Odd<br>1 = Even<br>2 = No parity
<01><06><00><6B><00><04><F9><D5>
|}
SUCCESS: written 1 elements!
=== Modbus-адрес ===
</syntaxhighlight>
По умолчанию в термостате задан 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
|}


Кнопки термостата заблокированы. Для разблокировки запишите в регистр '''Button lock command''' значение 0 — Unlock.
=== Карта регистров ===
Таблицы регистров термостата Siemens RDF302. Значения температуры при чтении нужно умножить на <code>0.02</code>, а при записи разделить. Подробнее о параметрах и регистрах читайте в документации.


===Управление вентилятором в ручном режиме===
==== Служебные регистры ====
 
Теперь переключим вентилятор в ручной режим и установим среднюю скорость вращения:
# Значение режима вентилятора хранится в регистре '''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>
 
== Таблицы modbus-регистров==
Ниже представлены таблицы регистров термостата Siemens RDF302. В отличие от таблиц в руководстве, адреса регистров указаны в новом шестнадцатеричном формате. Подробнее о параметрах и регистрах читайте в документации.
 
=== Служебные регистры ===
{|class="wikitable sortable"
{|class="wikitable sortable"
!width="17%"| '''Назначение'''
!width="17%"| '''Назначение'''
Строка 375: Строка 309:
|}
|}


=== Регистры общего назначения ===
==== Регистры общего назначения ====


{|class="wikitable sortable"
{|class="wikitable sortable"
Строка 820: Строка 754:
|}
|}


== Документация ==
== Полезные ссылки ==
Документацию можете загрузить на [https://hit.sbt.siemens.com/RWD/app.aspx?RC=HQEU&lang=en&MODULE=Catalog&ACTION=ShowProduct&KEY=S55770-T238 сайте производителя].
* [https://hit.sbt.siemens.com/RWD/app.aspx?RC=RU&lang=ru&MODULE=Catalog&ACTION=ShowProduct&KEY=S55770-T238 Страница устройства на сайте производителя].
* [https://hit.sbt.siemens.com/RWD/modules/kernel/UI/slow/GetBinData.aspx?DTP=Data+Sheet+for+Product&SID=A6V10350334&EXT=.pdf&VALUE=Assets%5cA6V10350334_Semi%2520flush-mount%2520room%2520thermostats%2520with%2520RS485%2520Modbu_en.pdf&KEY=3&RT=1609410796583 Описание термостата, схемы монтажа. PDF, EN]
* [https://hit.sbt.siemens.com/RWD/modules/kernel/UI/slow/GetBinData.aspx?DTP=Basic+Documentation&SID=A6V10350338&EXT=.pdf&VALUE=Assets%5cA6V10350338_Semi-flush%2520mount%2520room%2520thermostats%2520with%2520RS485%2520Modbu_en.pdf&KEY=3&RT=1609410796584 Руководство по работе с устройством по протоколу Modbus. PDF, EN]
 
{{Wbincludes:Device Page Footer}}
translator, wb_editors
4251

правка