В корзине товаров: 0 на сумму: 0
Вход Регистрация
Facebook Youtube
RU
EN
Разумный дом Разумный дом
+7 (4872) 23-51-50
info@razumdom.ru
Facebook Youtube
Вход Регистрация
Разумный дом Разумный дом
  • Производитель и разработчик оборудования для
    автоматизации, мониторинга и диспетчеризации
    климата

+7 (4872) 23-51-50
email info@razumdom.ru
Поиск
RU
EN
Facebook Youtube
Вход Регистрация

Производитель оборудования для автоматизации, мониторинга и диспетчеризации.

  • Каталог
    • MODBUS TCP+RTU
    • Интернет-регуляторы
    • Интернет-реле
    • Интернет-оповещение
    • MODBUS RTU
    • Диммеры и Регуляторы
    • Управляемые реле
    • Датчики микроклимата
    • Модули ввода-вывода
    • Интерфейсы
    • РАСПРОДАЖА
    • Краны и приводы
    • Модули HDL BUS
    • Модули SmartBus
    • ПРОГРАММЫ
    • КОМПЛЕКТУЮЩИЕ
    • ЗАКАЗНЫЕ РАЗРАБОТКИ
    • Приборы
    • Контроллеры
    • Модули
    • Платы
    • МУЗЕЙ, АРХИВ
    • Устройства Ethernet
    • Устройства RS485
    • Оборудование HDLBUS SmartBus
    • Устройства X10
    • Устройства расширения
  • Разработка
  • О компании
    О компании Новости Документация Условия покупки Вакансии
  • Проекты
  • Блог
  • Контакты
  • RU
    EN
В корзине товаров: 0 на сумму: 0
Главная-Статьи-DDM845R Конфигурация входов модуля диммера

DDM845R Конфигурация входов модуля диммера

DDM845R Конфигурация входов модуля диммера
23 июля 2021
Подключаем к модулю диммера DDM845R, DDM8410R, DDL04R, DDL84R кнопки, выключатели, энкодеры, резисторы и датчики.
Алексей Борисов
ООО Разумный дом

Существует множество задач, в которых необходимо управлять светильниками от различных типов кнопок, выключателей и датчиков. Ниже будет описание для подключения: кнопок, выключателей, энкодеров, резисторов и датчиков.
Сконфигурировать входы и выходы модуля можно с помощью сценариев.
Описанные ниже сценарии подходят к диммерам DDM845R, DDM8410R, DDL04R, DDL84R. А так же их можно применить и к реле DRM88R и DRM21R, но у реле выходы будут иметь дискретное значение 0 или 1, в отличии от диммера со значением 0...1023. Но сценарии написаны на примере модуля диммера DDM845R.
На выходе может быть подключен светильник (менять яркость), электродвигатель (менять частоту вращения), привод шибера для вентиляции (менять поток воздуха) и другие типы нагрузок. Но для простоты понимания я буду писать применительно к светильнику и менять будем яркость.
  

Подключение модуля

Подключаем модуль согласно схеме.

Подключить модуль диммера можно не только к ПК через интерфейс MXB11 или MXB12, но и к контроллерам. Ниже будут описаны способы программирования с помощью различных источников команд.

Запись сценариев с помощью ПК

1. Для записи сценариев в модуле с ПК необходимо его подключить к ПК через интерфейс MXB12.
2. Загружаем и устанавливаем программу с сайта. https://razumdom.ru/upload/iblock/135/RDC_Modbus_41.zip
3. После установки программы загружаем файлы профиля https://razumdom.ru/upload/iblock/e17/Resources.zip
Распаковываем архив и переписываем файлы в папку программы: c:\Program Files (x86)\RazumDom\RDControl MB41\Resources\
4. Запускаем программу: Пуск - Разумный дом - RDCMB4.1
5. Программа попросит ключ активации. Нужно ввести www.razumdom.ru
6. Нажать в Меню Файл - Создать решение. Указать имя файла и сохранить. 
Нажать кнопку Настройки - Настройки порта

7. Нажать в Меню Устройства - Включить опрос устройств.
8. Нажать в Меню Устройства - Поиск устройств. После того, как программа найдет устройство, нажать Завершить поиск.
9. Нажать на строку Устройство DDM845R и нажать закладку Сценарии. Нажать кнопку внизу Считать.

10. В поле сценарии нужно нажать и выбрать тип сценария. В поле Входные данные указать необходимые параметры для выбранного типа сценария.
11. После написания всех необходимых строк сценария нужно обязательно нажать кнопку Записать.
После этого сценарии начнут сразу же выполняться. Перезагружать модуль не нужно.

Запись сценариев с помощью контроллера Wiren Board

В отличии от ПЛК сценарии можно писать не только через специальную программу, но и вписать коды в регистры напрямую. Сценарии можно писать в регистры Modbus HR100...
Это усложняет написание, но делает его универсальным в качестве применения других средств программирования. Можно написать так же с контроллера WirenBoard. Все коды сценариев описаны в инструкции.
Например. 
Нужно открыть инструкцию https://razumdom.ru/upload/iblock/45e/DDM44Rv3_230817.pdf  
Страница 22.
Строка IF (DI 1 == Const 0) THEN HR 40 = Const 0 однократно  будет записана следующим образом:
HR100=7;
HR101=2;
HR102=1;
HR103=0;
HR104=0;
HR105=0;
HR106=3;
HR107=40;
HR108=0;
HR109=0;
HR110=0;
HR111=0;
HR112=0
Командами с контроллера WirenBoard:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r100 7
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r101 2
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r102 1
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r103 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r104 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r105 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r106 3
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r107 40
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r108 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r109 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r110 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r111 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r112 0
Следующая строка будет записана в регистры HR120 - HR132.
IF (DI 1 == Const 1) THEN HR 40 = Const 1000 однократно 
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r120 7
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r121 2
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r122 1
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r123 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r124 0 
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r125 1
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r126 3
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r127 40
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r128 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r129 1023
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r130 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r131 0
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r132 0
И далее через каждые 20 регистров.

Запись сценариев с помощью MQTT контроллера DRM88ER

Так же сценарии можно записать кодами в регистры Modbus HR100... с помощью контроллера DRM88ER.
Это сложнее, чем писать программу в самом контроллере, но дает возможность быстро поменять программу не отключая его от контроллера и без подключения к ПК. Так же можно менять сценарии удаленно через Интернет. Все коды сценариев описаны в инструкции.
Возьмем тот же самый пример.
Нужно открыть инструкцию https://razumdom.ru/upload/iblock/45e/DDM44Rv3_230817.pdf  
Страница 22.
Строка IF (DI 1 == Const 0) THEN HR 40 = Const 0 однократно  будет записана следующим образом:
HR100=7;
HR101=2;
HR102=1;
HR103=0;
HR104=0;
HR105=0;
HR106=3;
HR107=40;
HR108=0;
HR109=0;
HR110=0;
HR111=0;
HR112=0
В модуле DRM88ER делаем следующее:
1. В браузере заходим на страницу устройства и авторизуемся.
Затем в меню открываем пункт Modbus.

2. Нужно ввести параметры:
- Адрес - это адрес контроллера и он должен отличаться от адреса диммера иначе MASTER работать не будет;
- Скорость и опции должны совпадать с параметрами диммера;
- Режим работы устанавливаем - MASTER.
3. После нажатия кнопки ПРИМЕНИТЬ ниже откроется ещё раздел для Управления устройствами.
4. В разделе Управление устройствами нужно ввести:
- адрес диммера -34;
- функция Write HR;
- регистр - 100;
- значение - 7;
- ответ запишем в регистр IR20. В ответе будет подтверждение приема OK или ошибка ERROR.
5. Нажимаем кнопку ОТПРАВИТЬ. Значение одного регистра запишется в модуль диммера. HR100 = 7
6. Затем нужно вписать: регистр - 101 и значение - 2, нажать кнопку ОТПРАВИТЬ.
И так далее по одному регистру.
Для включения сценариев в диммере нужно указать:
- адрес диммера -34;
- функция Write HR;
- регистр - 2691;
- значение - 1;
И нажать кнопку ОТПРАВИТЬ.

Предварительная настройка модуля

  Включение сценариев.
Сценарии могут быть выключены, включены или выходы могут иметь прямое управление от входов и устанавливается это в регистре HR2691.
В этом регистре можно установить взаимосвязь входов и выходов.
0 – Входы и выходы независимы, сценарии отключены.
1 – Сценарии включены. Взаимодействие входов и выходов через сценарии.
2 – Все входы настроены как кнопки. При четном нажатии включается соответствующий канал, при
нечетном выключается. При удержании кнопки уровень в канале увеличивается или уменьшается.
Вход синхронизируется с выходом. Если включить выход от кнопки, затем дистанционно выключить, то
при нажатии кнопки снова пойдет команда включить. Первый вход переключает первый выход,
восьмой вход переключает восьмой выход. Связь жесткая и поменять нельзя.
3 – Все входы настроены как переключатели. При замыкании входа включается соответствующий канал
на максимальный уровень, при размыкании входа выключается выход. Связь входа с выходом жесткая
и поменять нельзя.
Чтобы включить сценарии нужно в регистр HR2691 записать значение 1.
  Значения датчиков.
Данные с АЦП приходят в регистры IR1 - IR8. Эти данные нужно пересчитать в единицы измерения. Пересчитанные данные записываются в регистры IR11 - IR18. Пересчитываются они с помощью коэффициентов и формулы линейной функции. Пример использования расчета аналоговых входов здесь.
  Изменение скорости.
  После записи значений уровня в регистры HR40, HR41, HR42, HR43 в диапазоне значений от 0 до 1023 выходы будут меняться не сразу, а с плавным нарастанием или убыванием. Что бы изменить скорость или сделать мгновенной, нужно в регистры HR34, HR35, HR36, HR37 записать значение скорости. В этих регистрах устанавливается время в миллисекундах при инкременте или декркменте уровня. При увеличении или уменьшении уровня на единицу модуль ожидает время, указанное в этих регистрах. Например, при установленном значении 10, увеличение на 1 (инкремент) будет происходить через 10 миллисекунд. И от 0 до 1023 (100%) уровень поднимется через 10230 миллисекунд, т.е. через 10 секунд. Для быстрого изменения нужно указать значение 0.

А теперь напишем несколько сценариев для разных типов входов

В модуле есть множество элементарных сценариев, на которых можно создать необходимые действия. А так же есть и специальные сценарии, которые содержат несколько элементарных сценариев и выполняют конкретные действия.
В сценариях будем использовать переменные, которые хранятся в регистрах IR20 - IR999. В регистрах IR0-IR19 хранятся значения аналоговых входов.
Поскольку средствами Modbus регистры IR0 - IR999можно только читать, то в модулях сделано зеркало этих регистров в другом диапазоне HR3000 - HR3999. Они полностью дублируют регистры IR как для чтения, так и для записи.

Выключатель

На входы 1, 2, 3, 4 подключены выключатели, герконы или дискретные датчики относительно клеммы GND. Используется 4 входа DI1-DI4 и 4 выхода диммирования HR40-HR43.

0:   Если   IF (DI 1 == Const 0) THEN HR 40 = Const 0 однократно 
1:  Если   IF (DI 1 == Const 1) THEN HR 40 = Const 1000 однократно 
2:  Если   IF (DI 2 == Const 0) THEN HR 41 = Const 0 однократно 
3:  Если   IF (DI 2 == Const 1) THEN HR 41 = Const 1000 однократно
4:  Если   IF (DI 3 == Const 0) THEN HR 42 = Const 0 однократно 
5:  Если   IF (DI 3 == Const 1) THEN HR 42 = Const 1000 однократно 
6:  Если   IF (DI 4 == Const 0) THEN HR 43 = Const 0 однократно 
7:  Если   IF (DI 4 == Const 1) THEN HR 43 = Const 1000 однократно 

Сценарий сделан с использованием команд IF. Первое условие проверяет кнопку на замыкание, второе условие проверяет кнопку на размыкание. Оба условия однократного действия и не держат выходной регистр в одном и том же положении. Выход может переключаться командами Modbus.

Кнопка диммирования

На входы 1, 2, 3, 4 подключены кнопки относительно клеммы GND.
  Кратковременное нажатие включает и выключает светильник. Длительное нажатие (больше 1000мс) увеличивает или уменьшает яркость светильника. Кнопка будет включать и выключать в момент отпускания, что придаст ощущение задержки включения.
0:  Триггер   выход: HR 40, вход: DI 1, порог: 1, время, мс: 1000, нижняя 300, верхняя 1000
1:  Триггер   выход: HR 41, вход: DI 2, порог: 1, время, мс: 1000, нижняя 300, верхняя 1000
2:  Триггер   выход: HR 42, вход: DI 3, порог: 1, время, мс: 1000, нижняя 300, верхняя 1000
3:  Триггер   выход: HR 43, вход: DI 4, порог: 1, время, мс: 1000, нижняя 300, верхняя 1000
Выходы диммирования HR40-HR43. Входы DI1-DI4.
Время удержания кнопки до переключения в режим диммирования 1000 миллисекунд.
Нижняя граница, которую перепрыгнет уровень 300 и верхняя граница, которую перепрыгнет уровень 1000. Нижняя и верхняя граница диммирования стали доступны только с версии 3.31.
Для увеличения скорости включения светильника нужно в регистрах HR34, HR35, HR36, HR37 записать значение 0.

Кнопка без диммирования

На входы 1, 2, 3, 4 подключены кнопки относительно клеммы GND.
Кратковременное нажатие включает и выключает светильник. Кнопка будет включать и выключать в момент нажатия.
0:  Если  IF (DI 1 == Const 1) THEN CALL 5  однократно
1:  Если  IF (DI 2 == Const 1) THEN CALL 7  однократно 
2:  Если  IF (DI 3 == Const 1) THEN CALL 9  однократно
3:  Если  IF (DI 4 == Const 1) THEN CALL 11  однократно
4:  Переход   GOTO 0
5:  Если  IF (HR 40 < Const 300) THEN HR 40 = Const 1000 регулярно ELSE = Const 0
6:  Возврат  RETURN
7:  Если  IF (HR 41 < Const 300) THEN HR 41 = Const 1000 регулярно ELSE = Const 0
8:  Возврат  RETURN
9:  Если  IF (HR 42 < Const 300) THEN HR 42 = Const 1000 регулярно ELSE = Const 0
10:  Возврат  RETURN
11:  Если  IF (HR 43 < Const 300) THEN HR 43 = Const 1000 регулярно ELSE = Const 0
12:  Возврат  RETURN
Выходы диммирования HR40-HR43. Входы DI1-DI4.
Используются команды вызова подпрограммы CALL и возврата RETURN. Условия однократного действия и не держат выходной регистр в одном и том же положении. Выход может переключаться командами Modbus.

Две кнопки диммирования

Для диммирования используются две кнопки, двойные "кнопки жалюзи", "перекидная" или "качелька". На вход DI1 подключена кнопка включить и увеличить яркость. На вход DI2 подключена кнопка выключить и уменьшить яркость. Все кнопки подключены относительно клеммы GND.
0:  Диммер   кнопка ON DI 1, кнопка OFF 2, выход диммирования HR 40
1:  Диммер  кнопка ON DI 3, кнопка OFF 4, выход диммирования HR 41
2:  Диммер  кнопка ON DI 5, кнопка OFF 6, выход диммирования HR 42
3:  Диммер  кнопка ON DI 7, кнопка OFF 8, выход диммирования HR 43
При кратковременном нажатии (менее 1 секунды) на кнопку ON значение выхода увеличивается до установленного до выключения значения. При повторном кратковременном нажатии увеличивается до значения 1023. При удержании кнопки ON значение выхода медленно увеличиваться до максимального 1023.
При кратковременном нажатии (менее 1 секунды) на кнопку OFF значение выхода уменьшается до нуля. При удержании кнопки OFF значение выхода медленно уменьшается до нуля.
Условия однократного действия и не держат выходной регистр в одном и том же положении. Выход может переключаться командами Modbus.

Относительный энкодер

Энкодер это элемент очень похожий на переменный резистор. Но, в отличии от резистора, у него внутри дорожки имитирующие две кнопки. При вращении кнопки нажимаются по очереди со смещением в 90 градусов.
Я в качестве энкодера использовал PEC12R со встроенной кнопкой. PEC12R.pdf

На входы 1, 2, относительно контакта G подключены контакты энкодера. При вращении по часовой стрелке значение HR40 увеличивается, а при вращении против часовой стрелки - уменьшается.
На вход 3, относительно контакта G подключена центральная кнопка ручки энкодера. Эта кнопка включает и выключает выход HR40.
0:  Если IF (DI 1 == Const 1) THEN GOTO 3  однократно 
1:  Если IF (DI 3 == Const 1) THEN GOTO 10  однократно 
2:  Переход   GOTO 0
3:  Если IF (DI 2 == Const 1) THEN CALL 6  регулярно 
4:  Если IF (DI 2 == Const 0) THEN CALL 8  регулярно 
5:  Переход   GOTO 0
6:  MATH HR 40 = HR 40 + Const 10
7:  Возврат   RETURN
8:  MATH HR 40 = HR 40 - Const 10
9:  Возврат  RETURN
10:  Если IF (HR 40 < Const 300) THEN HR 40 = Const 1000 регулярно ELSE = Const 0
11:  Переход  GOTO 0

В следующем варианте используются 4 энкодера, подключенные ко входам: 1) 1,2; 2) 3,4; 3) 5,6; 4) 7,8.
Энкодеры управляют выходами HR40, HR41, HR42, HR43.
0 Если И IF ((DI 1 == 0) AND (DI 2 == 1)) THEN GOTO 10 
1 Если И IF ((DI 1 == 1) AND (DI 2 == 0)) THEN GOTO 13
2 Если И IF ((DI 3 == 0) AND (DI 4 == 1)) THEN GOTO 16
3 Если И IF ((DI 3 == 1) AND (DI 4 == 0)) THEN GOTO 19
4 Если И IF ((DI 5 == 0) AND (DI 6 == 1)) THEN GOTO 22 
5 Если И IF ((DI 5 == 1) AND (DI 6 == 0)) THEN GOTO 25 
6 Если И IF ((DI 7 == 0) AND (DI 8 == 1)) THEN GOTO 28 
7 Если И IF ((DI 7 == 0) AND (DI 8 == 1)) THEN GOTO 31 
8 NOP NOP
9      Переход    GOTO 0
10 Если IF (HR 40 >=  10) THEN GOTO 11  регулярно ELSE =   0
11 MATH HR 40 = HR 40 -   10 
12 Переход GOTO 0
13 Если IF (HR 40 <   1010) THEN GOTO 14  регулярно ELSE =   0
14 MATH HR 40 = HR 40 +   10 
15 Переход GOTO 0
16 Если IF (HR 41 >=  10) THEN GOTO 17  регулярно ELSE =   0
17 MATH HR 41 = HR 41 -   10 
18 Переход GOTO 0
19 Если IF (HR 41 <   1010) THEN GOTO 20  однократно ELSE =   0
20 MATH HR 41 = HR 41 +   10
21 Переход GOTO 0
22 Если IF (HR 42 >=  10) THEN GOTO 23регулярно ELSE =   0
23 MATH HR 42 = HR 42 -   10 
24 Переход GOTO 0
25 Если IF (HR 42 <   1010) THEN GOTO 26  регулярно ELSE =   0
26 MATH HR 42 = HR 42 +   10 
27 Переход GOTO 0
28 Если IF (HR 43 >=  10) THEN GOTO 29 регулярно ELSE =   0
29 MATH HR 43 = HR 43 -   10
30 Переход GOTO 0
31 Если IF (HR 43 <   1010) THEN GOTO 32  регулярно ELSE =   0
32 MATH HR 43 = HR 43 +   10 
33 Переход GOTO 0

  В Сценарии используются команды условия IF, переход GOTO и вызов функции CALL и RETURN.
Сценарий написан для одного выхода HR40. Аналогично можно дописать и для других выходов.
Еще вариант, от одного энкодера, подключенного к DI1 и DI2 увеличиваются и уменьшаются значения сразу четырех каналов HR40 - HR43 с ограничением в предельных значениях 0 и 1023.
0 Если И IF ((DI 1 == 0) AND (DI 2 == 1)) THEN CALL 6 
1 Если И IF ((DI 1 == 1) AND (DI 2 == 0)) THEN CALL 15 
2 NOP NOP
3 NOP NOP
4 NOP NOP
5 Переход GOTO 0
6 Если IF (HR 40 >   1020) THEN GOTO 8  регулярно
7 MATH HR 40 = HR 40 +   10  
8 Если IF (HR 41 >   1020) THEN GOTO 10  регулярно 
9 MATH HR 41 = HR 41 +   10   
10 Если IF (HR 42 >   1020) THEN GOTO 12  регулярно 
11 MATH HR 42 = HR 42 +   10  
12 Если IF (HR 43 >   1020) THEN GOTO 14  регулярно 
13 MATH HR 43 = HR 43 +   10  
14 Возврат RETURN
15 Если IF (HR 40 <   10) THEN GOTO 17  регулярно 
16 MATH HR 40 = HR 40 -   10 
17 Если IF (HR 41 <   10) THEN GOTO 19  регулярно 
18 MATH HR 41 = HR 41 -   10  
19 Если IF (HR 42 <   10) THEN GOTO 21  регулярно 
20 MATH HR 42 = HR 42 -   10  
21 Если IF (HR 43 <   10) THEN GOTO 23  регулярно 
22 MATH HR 43 = HR 43 -   10  
23    Возврат   RETURN

Аналоговый датчик

На входы 1, 2, 3, 4 подключены переменные резисторы номиналом 10 кОм относительно клеммы GND.
Измеряем входное напряжение и посылаем значение на выход. Выполним математическую операцию HR40 = IR1 / 4.
Если светодиодный светильник работает в диапазоне от 300 до 700, тогда добавим смещение.
0:  MATH   IR 101 = IR 1 / Const 10
1:  MATH   HR 40 = IR 101 + Const 300
2:  MATH   IR 102 = IR 2 / Const 10
3:  MATH   HR 41 = IR 102 + Const 300
4:  MATH   IR 103 = IR 3 / Const 10
5:  MATH   HR 42 = IR 103 + Const 300
6:  MATH   IR 104 = IR 4 / Const 10
7:  MATH   HR 43 = IR 104 + Const 300

Что бы развернуть резистор в обратную сторону нужно сделать вычитание
0:  MATH   IR 101 = IR 1 / Const 10
1:  MATH   HR 40 = Const 700 - IR 101
При таком сценарии можно будет управлять только с резистора. Командами Modbus управлять уже не получится.

Аналоговый регулятор на фотодатчике

В качестве датчика будет использоваться фототранзистор. Аналогично можно использовать и датчик температуры LM235, PT1000, NTC, датчик влажности, давления и другие.
Датчик подключен ко входу 8. Предварительно нужно калькулятором пересчитать значения АЦП в значения Люксы. И уже значения будем брать из регистра IR18.
Сценарий для порогового переключения выхода.
0:  Если   IF (IR 18 < Const 300) THEN HR 40 = Const 1000 однократно
1:  Если  IF (IR 18 > Const 400) THEN HR 40 = Const 0 однократно
Сценарий написан для одного выхода. Аналогичным образом можно дописать для остальных входов и выходов.
Используется команды Если IF для нижнего и для верхнего порога переключения. Условия однократного действия и не держат выходной регистр в одном и том же положении. Выход может переключаться командами Modbus.

Добавим плавную регулировку яркости светильника в диапазоне измерения уровня освещенности от 200 до 500 Люкс.
0:   Если IF (IR 18 < Const 200) THEN IR 40 = Const 1000 однократно
1:  Если IF (IR 18 > Const 500) THEN IR 40 = Const 0 однократно
2:  Если IF (IR 18 > Const 200) THEN GOTO 4 = Const 0 регулярно
3:  Переход   GOTO 0
4:  Если IF (IR 18 < Const 500) THEN GOTO 6 = Const 0 регулярно
5:  Переход  GOTO 0
6:  MATH IR 20 = IR 18 - Const 200
7:  MATH IR 20 = Const 300 - IR 20
8:  MATH HR 40 = IR 20 * Const 3
9:  Переход  GOTO 0
А в этом сценарии в середине диапазона можно будет управлять только с датчика. Командами Modbus управлять уже не получится. Выход может переключаться командами Modbus только в диапазоне меньше 200 Люкс или больше 500 Люкс.

Средняя температура от двух датчиков

В разных местах комнаты температура может сильно отличаться.
Ко входу 1 подключен датчик температуры, который установлен возле пола.
Ко входу 2 подключен датчик температуры, который установлен возле потолка.
К выходу 1 подключен обогреватель.
0:   MATH   IR 111 = IR 11 MED IR 12
1: Если IF (IR 111 < Const 22) THEN HR 40 = Const 1000 однократно 
2: Если IF (IR 111 > Const 25) THEN HR 40 = Const 0 однократно 
Датчики должны быть предварительно сконфигурированы для температуры. Значения берем в градусах из регистров IR11 и IR12. Математическая функция с операцией MED вычисляет среднее значение от двух операндов.

Статистика изменения температуры за сутки

Вычисляем среднюю температуру от двух датчиков и записываем в массив. Всего в блоке доступно 980 ячеек ОЗУ от IR20 до IR999. В сутках 60*24=1440 минут, поэтому записывать будем раз в две минуты. Запись будет в массив IR100... IR819.
0:  MATH IR 21 = IR 9008 * Const 60 часы * 60
1: MATH IR 21 = IR 21 + IR 9009 плюс минуты
2: MATH IR 21 = IR 21 / Const 2 раз в две минуты
3: MATH IR 22 = IR 21 + Const 100 к счетчику минут прибавил 100 (100...819)
4: Если IF (IR 22 != IR 23) THEN GOTO 6 однократно    если минуты изменились
5: Переход   GOTO 0 конец цикла и переход в начало
6: MATH IR 24 = IR 11 MED IR 12 средняя температура от двух датчиков
7: Массив IR[IR 22] = IR 24 запись в массив IR[100] ... IR[819]
8: MATH IR 23 = IR 22 сохраняем копию минут
9:   Переход GOTO 0 конец функции
 Используется функция записи в массив IR[номер ячейки] = значение.
На следующие сутки значение будет переписываться на новые.

При необходимости можно сделать очистку предыдущих данных в начале суток в 00:00.
0:  MATH IR 21 = IR 9008 * Const 60 часы * 60
1: MATH IR 21 = IR 21 + IR 9009 плюс минуты
2: MATH IR 21 = IR 21 / Const 2 раз в две минуты
3: MATH IR 22 = IR 21 + Const 100 к счетчику минут прибавил 100 (100...819)
4: Если IF (IR 22 != IR 23) THEN GOTO 7 однократно    если минуты изменились
5:  Если IF (IR 22 == Const 100) THEN GOTO 11 однократно   выполнится в начале цикла в 00:00
6: Переход   GOTO 0 конец цикла и переход в начало
7: MATH IR 24 = IR 11 MED IR 12 средняя температура от двух датчиков
8: Массив IR[IR 22] = IR 24 запись в массив IR[100] ... IR[819]
9: MATH IR 23 = IR 22 сохраняем копию минут
10:   Переход GOTO 0 конец функции
11: Цикл FOR (IR25 = Const 100 TO 819) GOTO 13 Цикл от 100 до 820
12: Массив IR[IR 25] = Const 0 запись в массив IR[100] ... IR[819]
13: Переход GOTO 0 конец функции
 Статистику из массива ячеек можно прочитать средствами Modbus из регистров IR100... IR819, которые точно привязаны ко времени суток.

Встроенные сценарии позволяют реализовать множество различных функций управления диммером и комбинировать различные типы входов с произвольными выходами.

Вернуться
Подписывайтесь на новости и акции
+7 (4872) 23-51-50
email info@razumdom.ru
Facebook Youtube
+7 (4872) 23-51-50
email info@razumdom.ru
2025 © «Разумный Дом»
Яндекс.Метрика
Компания
Информация
Поддержка
  • О компании
  • Новости
  • Дилеры
  • Вакансии
  • Категории товаров
  • Задать вопрос
  • Условия покупки
  • Статьи
  • Вопрос-ответ
  • Обзоры
2025 © «Разумный Дом»
Facebook Youtube