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

Материал из Wiren Board
Строка 4: Строка 4:
Термостатом можно управлять по протоколу [[Протокол_Modbus|Modbus RTU]]. На физическом уровне он подключается через интерфейс [[RS-485]].
Термостатом можно управлять по протоколу [[Протокол_Modbus|Modbus RTU]]. На физическом уровне он подключается через интерфейс [[RS-485]].


Настраивать термостат можно с помощью утилиты [[Modbus-client|modbus_client]] или использовать [[Working with WB devices without a controller|приложения для компьютера на ОС Windows]].
Настраивать термостат можно с помощью утилиты [[Modbus-client|modbus_client]] или использовать [[Working with WB devices without a controller|приложение для компьютера на ОС Windows]].


В этой статье мы будем использовать утилиту <code>modbus_client</code>. Синтаксис и параметры командной строки можно посмотреть на странице утилиты в разделе [[Modbus-client#Аргументы командной строки|Аргументы командной строки]].
В этой статье мы будем использовать утилиту <code>modbus_client</code>. Синтаксис и параметры командной строки можно посмотреть на странице утилиты в разделе [[Modbus-client#Аргументы командной строки|Аргументы командной строки]].

Версия 13:50, 31 декабря 2020

Термостат Siemens RDF302

Работа по Modbus

Термостатом можно управлять по протоколу Modbus RTU. На физическом уровне он подключается через интерфейс RS-485.

Настраивать термостат можно с помощью утилиты modbus_client или использовать приложение для компьютера на ОС Windows.

В этой статье мы будем использовать утилиту modbus_client. Синтаксис и параметры командной строки можно посмотреть на странице утилиты в разделе Аргументы командной строки.

Wbincludes:Modbus: Preparing for work

Настройка для работы с ПО

Представление Siemens RDF302 в веб-интерфейсе

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

Перед началом работы с термостатом нужно назначить ему modbus-адрес и задать параметры подключения.

По умолчанию в термостате заданы параметры: Адрес — 1, Скорость — 19200 бит/с, Четность — Even.

Так как у всех устройств Wiren Board параметры интерфейса по умолчанию: Скорость — 9600 бит/с, Четность — None, то в термостате нужно выставить такие же параметры. Это позволит работать термостату на одной шине с другими устройствами Wiren Board.

Выберите новую скорость интерфейса RS-485 термостата, для этого запишите в регистр P68(0x0043) значение 1 — 9600 бит/с:

modbus_client --debug -mrtu -b19200 -peven -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0x0043 1

Установите четность, для этого запишите в регистр P70(0x0045) значение 1 — Even:

modbus_client --debug -mrtu -b19200 -peven -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0x0045 1

Теперь укажите новый modbus-адрес, для этого запишите в регистр P81(0x0050) новый адрес, например — 2:

 modbus_client --debug -mrtu -b19200 -peven -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0x0050 2

Чтобы применить новые настройки — перезагрузите термостат, для этого отключите питание или снимите и поставьте назад лицевую панель. После перезагрузки термостат будет доступен по указанному выше адресу и с выбранными параметрами интерфейса связи.

DIP-переключатели. Включен режим удаленного выбора приложения

Шаблон устройства

ВНИМАНИЕ: шаблон для термостата Siemens RDF302 включен в поставку драйвера wb-mqtt-serial, начиная с версии 2.7.0. Текущую версию шаблона можно также скачать из нашего репозитория: config-siemens-rdf302.json.

Выберите шаблон термостата в разделе «Serial Device Driver Configuration» веб-интерфейса:

  1. Откройте веб-интерфейс и перейдите ConfigsSerial Device Driver Configuration.
  2. Выберите один из двух интерфейсов связи и установите параметры интерфейса: Baud rate — 9600 бит/с, Parity — N.
  3. Нажмите на кнопку + Device и в поле Device N выберите Siemens RDF302, где N — порядковый номер устройства.
  4. В поле Slave id укажите modbus-адрес термостата.
  5. Сохраните настройки нажатием на кнопку Save.

Теперь устройство будет доступно на вкладке Devices, но перед использованием нужно выбрать одно из четырех приложений.

Вы можете дополнить шаблон по своему усмотрению — смотрите описание шаблонов в статье Драйвер wb-mqtt-serial.

Выбор приложения

Установка параметров Siemens RDF302

Приложение — это набор параметров и алгоритмов которые термостат использует в своей работе.

Приложения запрограммированы с завода, всего их четыре:

  1. 2-pipe,
  2. 2-pipe 3-position,
  3. 2-pipe with electric heater,
  4. 4-pipe

ВНИМАНИЕ: для удаленного выбора приложения нужно перевести все DIP-переключатели на плате термостата в положение OFF — этот режим включен по умолчанию.

Выбрать приложение можно в настройках термостата в разделе «Serial Device Driver Configuration» веб-интерфейса:

  1. Откройте веб-интерфейс и перейдите ConfigsSerial Device Driver Configuration.
  2. Выберите интерфейс связи, к которому подключено устройство.
  3. Найдите в перечне устройств термостат и в поле Plant type выберите одно из четырех приложений. Сразу можете установить параметры управления в поле P01. Control sequence.
  4. Сохраните настройки нажатием на кнопку Save.

Подробнее о приложениях и параметрах управления читайте в документации к термостату.

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

Часть важных настроек вынесена в шаблон и их можно изменить в веб-интерфейсе, но на этапе пусконаладки может потребоваться изменить конфигурацию входов или изменить режим работы. Это можно сделать через запись нужных значений в регистры термостата.

В примерах термостат у подключен к интерфейсу /dev/ttyRS485-1, имеет настройки интерфейса 9600/None/2/8 и доступен по адресу 2.

ВНИМАНИЕ: доступность параметров зависит от выбранного приложения и режимов работы, подробнее читайте в документации к термостату.

Общий алгоритм настройки

  1. Ищете адрес регистра, функцию записи.
  2. Смотрите возможные значения.
  3. Записываете в регистр значение, которое попадает в диапазон возможных.

Блокировка кнопок

Мы хотим заблокировать все физические кнопки на термостате:

  1. Состояние блокировки хранится в регистре Button lock command с адресом 0x006B. Функция записи — 0x06.
  2. Возможные значения: число от ноля до четырех. Мы хотим заблокировать все кнопки: 4 — Lock all buttons.
  3. Теперь запишите нужное значение в регистр Button lock command:
    ~# 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!
    

Кнопки термостата заблокированы. Для разблокировки запишите в регистр Button lock command значение 0 — Unlock.

Управление вентилятором в ручном режиме

Теперь переключим вентилятор в ручной режим и установим среднюю скорость вращения:

  1. Значение режима вентилятора хранится в регистре Fan command value с адресом 0x0065. Функция записи — 0x06.
  2. Возможные значения: 0 — Auto, 33 — Low Fan, 66 — Mid Fan, 100 — High Fan.
  3. Теперь запишите нужное значение в регистр Fan command value:
    ~# 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!
    

Вентилятор будет вращаться со средней скоростью. Чтобы вернуть вентилятор в автоматический режим, запишите в регистр Fan command value значение 0 — Auto.

Чтение и запись значений температуры

Значение температуры нужно конвертировать перед записью или после чтения.

Если мы прочитаем значение текущей уставки из регистра Room Temperature: Comfort setpoint, 0x0066 — получим:

~# 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

0x03b6 — это число 950. Посмотрев этот параметр на самом термостате видим, что там указано 19°С. Вычисляем коэффициент: 19 / 950 = 0.02. Это значит, что при записи нам нужно разделить число на наш коэффициент, а при чтении умножить. Запишем в регистр значение 12°C: 12 / 0.02 = 600:

:~# 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!

Таблицы modbus-регистров

Ниже представлены таблицы регистров термостата Siemens RDF302. В отличие от таблиц в руководстве, адреса регистров указаны в новом шестнадцатеричном формате. Подробнее о параметрах и регистрах читайте в документации.

Служебные регистры

Назначение Длина, байт Адрес, Hex Функция чтения Функция записи По умолчанию Возможные значения
System Time 4 0x0257 0x03 0x10 YYYY 1900…2155 = Year
MM 1…12 = Month
DD 1…31 = Day of Month d 0, 1…7 = Any,Mon…Sun
hh 0…23 = Hours mm 0…59 = Minutes
ss 0…59 = Seconds
- - -
Status bits
Room operating mode: State 1 0x03E8 0x04 - Comfort 1=Comfort,
3=Economy,
4=Protection
Fan output 1 0x03E9 0x04 - 0 0 = Fan off
33 = Low Fan
66 = Mid Fan
100 = High Fan
Room temperature 1 0x03EA 0x04 - 0 … 49 °C, 0xffff=Out of services
Room temperature: Current setpoint 1 0x03EB 0x04 - 5 … 40 °C, 4=OFF
Heating output 1 0x03EC 0x04 - 0 [0…100]
Cooling output 1 0x03ED 0x04 - 0 [0…100]
Electric heater output 1 0x03EE 0x04 - 0 [0…100]
Fault information 10 0x044B 0x04 - len <= 20
X1 (temperature) ** 1 0x03EF 0x04 - 0 … 49 °C 0xffff = Out of services
X2 (temperature) ** 1 0x03F0 0x04 - 0 … 49 °C 0xffff = Out of services
Fan operation (0=Auto / 1=Manual) 1 0x03F1 0x04 - 0 0 = Automatic
1 = Manual
X1 (digital) ** 1 0x03F2 0x04 - OFF 0 = OFF 1 = ON
X2 (digital) ** 1 0x03F3 0x04 - OFF 0 = OFF 1 = ON
Room operating mode: Preselection 1 0x0064 0x03 0x06 Comfort 1=Comfort,
3=Economy,
4=Protection
Fan command value 1 0x0065 0x03 0x06 0 0 = Auto
33 = Low Fan
66 = Mid Fan
100 = High Fan
Room Temperature: Comfort setpoint 1 0x0066 0x03 0x06 5 … 40 °C
Outside temperature 1 0x0067 0x03 0x06 0 … 49 °C
Room operating mode: Window state 1 0x0068 0x03 0x06 Close 0 = Close (default)
1 = Open
Enable electric heater 1 0x0069 0x03 0x06 Enable 0 = Disable
1 = Enable
Heating/cooling changeover 1 0x006A 0x03 0x06 heating 0 = cooling,
1 = heating
Button lock command 1 0x006B 0x03 0x06 Unlock 4 = Lock all buttons
3 = Lock operating button only
2 = Lock fan button only
1 = Lock buttons (+ & -) only
0 = Unlock
Plant type 1 0x006C 0x03 0x06 NONE 0=NONE
1=2-pipe
2=2-pipe 3-position
3=2-pipe with electric heater
4=4-pipe
Fault text 1 10 0x00C7 0x03 0x10 Condensation in room len <= 20
Fault text 2 10 0x012B 0x03 0x10 Fault input 1 len <= 20
Fault text 3 10 0x018F 0x03 0x10 Fault input 2 len <= 20
Fault text 4 10 0x01F3 0x03 0x10 Filter dirty len <= 20

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

Параметр Назначение Длина, байт Адрес, Hex Функция чтения Функция записи По умолчанию Возможные значения
P01 Control sequence 1 0x0000 0x03 0x06 2-pipe: [0…3] 1 (Cooling only) 4-pipe: [2…4] 4 (Heating & Cooling) 0 = Heating only
1 = Cooling only
2 = Manual Heating or Cooling
3 = Auto Changeover
4 = Heating & cooling
P02 Mode selection by user via operating mode button 1 0x0001 0x03 0x06 1 (Comfort, Protection) 1 = Comfort, Protection
2 = Comfort, Economy, Protection
P04 Selection of °C or °F 1 0x0003 0x03 0x06 °C 0 = °C
1 = °F
P05 Sensor calibration (build in sensor only) 1 0x0004 0x03 0x06 0.0 °C -3…3 °C
P06 Standard temperature display 1 0x0005 0x03 0x06 0 (Room temperature) 0 = Room temperature
1 = Setpoint
P07 Additional user information 1 0x0006 0x03 0x06 0 (No display) 0 = No display
1 = Temperature in °C/°F
2 = Outside temperature (0…49 °C) (via Modbus)
3 = Time of day (12 h, via Modbus)
4 = Time of day (24 h, via Modbus)
P08 Comfort basic setpoint 1 0x0007 0x03 0x06 21 °C 5…40 °C
P09 Minimum setpoint limitation in Comfort (WminComf) 1 0x0008 0x03 0x06 5 °C 5…40 °C
P10 Maximum setpoint limitation in Comfort (WmaxComf) 1 0x0009 0x03 0x06 35 °C 5…40 °C
P11 Setpoint of heating in Economy (WheatEco) 1 0x000A 0x03 0x06 15 °C OFF, 5 °C…WcoolEco
P12 Setpoint of cooling in Economy (WcoolEco) 1 0x000B 0x03 0x06 30 °C OFF, WheatEco…40 °C
P13 Electrical heater in cooling mode 1 0x000C 0x03 0x06 ON OFF = disabled
ON = enabled
P14 Key lock (Press operating mode button for 5 seconds to lock or unlock the buttons) 1 0x000D 0x03 0x06 0 (Disabled) 0 = Disabled
1 = Auto lock
2 = Manual lock
P30 P-band/Switching differential for heating mode 1 0x001D 0x03 0x06 2 K 0.5 … 6 K
P31 P-band/Switching differential for cooling mode 1 0x001E 0x03 0x06 1 K 0.5 … 6 K
P33 Dead zone in Comfort mode 1 0x0020 0x03 0x06 2 K 0.5 … 5 K
P34 Setpoint differential 1 0x0021 0x03 0x06 2 K 0.5 … 5 K
P35 Integral time 1 0x0022 0x03 0x06 5 min 0…10 min
P36 Heating/cooling changeover switching point for cooling 1 0x0023 0x03 0x06 16 °C 10…25 °C
P37 Heating/cooling changeover switching point for heating 1 0x0024 0x03 0x06 28 °C 27…40 °C
P38 Input X1 1 0x0025 0x03 0x06 3 = Op mode c/o 0 = — (no function)
1 = Room temp ext. sensor / Return air temp (AI)
2 = H/C changeover (AI/DI)
3 = Operating mode contact (DI)
4 = Dew point sensor (DI)
5 = Enable electric heater (DI)
6 = Fault input (DI)
7 = Monitor input (Digital)
8 = Monitor input (Temp)
P39 Operating action for X1 if digital input 1 0x0027 0x03 0x06 NO NO = Normally Open
NC = Normally Close
P40 Input X2 1 1 = Ext. sensor 0 = — (no function)
1 = Room temp ext. sensor / Return temp (AI)
2 = H/C changeover (AI/DI)
3 = Operating mode contact (DI)
4 = Dew point sensor (DI)
5 = Enable electric heater (DI)
6 = Fault input (DI)
7 = Monitor input (Digital)
8 = Monitor input (Temp)
P41 Operating action for X2 if digital input 1 0x0028 0x03 0x06 0 (N.O.) 0 = Normally Open
1 = Normally Close
P44 Actuator running time Y11/Y21 1 0x002B 0x03 0x06 150 s 20…300 sec
P46 Y2x load current 1 0x00B5 0x03 0x06 0.0 A 0.0 to 5.0 A
P48 On time minimum for 2-pos output control 1 0x002F 0x03 0x06 1 min. 1…20 min
P49 Off time minimum for 2-pos output control 1 0x0030 0x03 0x06 1 min. 1…20 min
P50 Purge time 1 0x0031 0x03 0x06 OFF OFF: Not active 1…5 min: Active with selected duration
P51 Flow temp limit floor heating 1 0x0032 0x03 0x06 OFF OFF, 10…50 °C
P52 Fan control 1 0x0033 0x03 0x06 1 0 = Disabled
1 = Enabled
2 = Heating only
3 = Cooling only
P53 Fan speeds 1 0x0034 0x03 0x06 2 1 = 1-speed
2 = 3-speed
P54 Fan overrun time 1 0x0035 0x03 0x06 60 sec 0…360 sec
P55 Fan speed switching point high 1 0x0036 0x03 0x06 100% 80…100%
P56 Fan speed switching point med 1 0x0037 0x03 0x06 65% 30..75%
P57 Fan speed switching point low 1 0x0038 0x03 0x06 10% 1…15%
P58 Fan start kick 1 0x0039 0x03 0x06 ON ON: Enabled OFF: Disabled
P59 Fan minimum on time 1 0x003A 0x03 0x06 2 min 1…6 min
P60 Periodic fan kick Comfort 1 0x003B 0x03 0x06 0 0…89 min, OFF(90)
P61 Periodic fan kick Eco 1 0x003C 0x03 0x06 OFF 0…359 min, OFF(360)
P62 Service filter 1 0x003D 0x03 0x06 Off (0) Off, 100…9900 hrs
P65 Protection heating setpoint 1 0x0040 0x03 0x06 8 °C OFF, 5…WCoolProt; WCoolProt = 40 °C max
P66 Protection cooling setpoint 1 0x0041 0x03 0x06 OFF OFF, WHeatProt… 40; WHeatProt = 5°C min
P68 Baud Rate 1 0x0043 0x03 0x06 2 0 = 4800 BPS
1 = 9600 BPS
2 = 19200 BPS
3 = 38400 BPS
P69 Temporary Comfort setpoint 1 0x0044 0x03 0x06 OFF OFF = Disabled
ON = Enabled
P70 Parity 1 0x0045 0x03 0x06 1 0 = Odd
1 = Even
2 = No parity
P71 Restore factory setting 1 0x0046 0x03 0x06 OFF OFF = Disabled
ON = Reload start “8888” is displayed for 3s during reload process
P81 Device address 1 0x0050 0x03 0x06 1 1…247

Документация

В документации можно прочитать советы по монтажу, а также описание приложений и зависимость параметров друг о друга.