UA-23773963-1
Ваш браузер устарел. Рекомендуем обновить его до последней версии.

Устройство автоматизации систем водоснабжения WaterUnit

 с  интерфейсом ModBus RTU RS485

 

WaterUnitWaterUnit

  Представляю вашему вниманию совместную разработку мою и Антона Бизяева - 

устройство автоматизации, контроля,  управления и защиты систем водоснабжения WaterUnit.

Создание проекта шло по двум направлениям:

  • Идеи, концепции, технические и технологические решения, схемотехника и механика, корпус и печатная плата, короче все железо проектировались Антоном
  • Алгоритмы работы, пользовательский интерфейс и интерфейс взаимодействия с центральным управляющим устройством, или проще выражаясь, программное обеспечение микроконтроллера, разрабатывал я.

     Итак, основное предназначение устройства WaterUnit учет расхода воды в стояках горячего и холодного водоснабжения, контроль протечек в четырех зонах, автоматическое управление приводами вентилей подачи горячей и холодной воды при обнаружении протечек и звуковое оповещение об обнаружении протечки.

    Кроме этого устройство может контролировать и регулировать температуру. При этом работа терморегулятора может быть логически организована для управления вентилем, подключающим водогрейный бойлер к системе водоснабжения (см. рис.1(водопровод)). При открывании вентиля бойлера закрывается вентиль ГВС, тем самым переключая систему горячего водоснабжения на водогрейный бойлер. И в случае обнаружения протечки устройство переводит все три вентиля в закрытое положение. При желании работу терморегулятора устройства можно включить в независимом режиме. Тогда выходное реле терморегулятора будет просто управлять нагрузкой в соответствии с уставками, и ни как не будет реагировать на состояние водоснабжения и протечек. При чем, терморегулятор может работать и в режиме управления нагревателем и в режиме управления охладителем.

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

    Описываемое устройство по своему функционалу заменяет ранее описываемый блок переключения горячего водоснабжения значительно расширяя его возможности. Кроме того в процессе работы над проектом, побочным полезным продуктом в устройстве, добавилось умение им измерять питающее напряжение. Подробно устройство описано на сайте http://electromost.com  и обсуждается там же на форуме

Принципиальная схема WaterUnit показана  на рис.1.

 

Учет воды и контроль протечек

Рис. 1

 

Устройство собрано на микроконтроллере PIC16F1828. Выбор этого микроконтроллера основывался просто на желании освоить более современное семейство микроконтроллеров. Их цена не многим больше микроконтроллеров серии F6XX и F8XX, а возможности значительно расширены. Кроме того они имеют более высокую частоту тактового генератора, соответственно и скорость, при этом меньше потребляют энергии.

       Основные технические характеристики устройства:

     Диапазон питающего напряжения устройства от 8В до 25В

    Обмен по сети RS485 протоколом ModBusRTU предусмотрен на скорости 9600 бод. 8N1

    WaterUnit имеет следующие входы, выходы:

  1. Два входа импульсных счетчиков со скоростью счета до 1кГц (теоретически до 5 кГц).
  2. Четыре входа датчика протечки воды.
  3. Один вход термодатчика Датчик температуры термистор NTC-MF52-103/3950 10кОм диапазон измеряемых температур от -30 до +95 градусов.
  4. Три выхода реле с ШИМ питанием.

4.1.  Реле для управления приводом (приводами) водоснабжения.

4.2.  Реле терморегулятора.

4.3.  Реле привода водопровода горячего водоснабжения.

      5. Встроенная пищалка для местного оповещения об аварийной ситуации.

      6. Две кнопки ручного управления

6.1. Встроенная кнопка ручного управления приводами водоснабжения “Приборка /Тест”.

6.2. Выносная кнопка с индикатором – для ручного управления реле терморегулятора (бойлера) “Бойлер”.

    Два независимых счетчика имеют делители для счета непосредственно в единицах величины. В каждом счетчике предусмотрен восьми битный делитель входных импульсов, для преобразования числа импульсов в значение величины. Объем каждого счетчика 4 байта, т.е. максимальное число сосчитанной величины - 4 294 967 295. В случае снижения питания ниже критического уровня, значения счетчиков величины и текущие значения делителей сохраняются во флеш памяти микроконтроллера.

    Значения счетчиков и делителей считываются и записываются двух байтными словами, в шестнадцатеричном виде. По умолчанию при программировании микроконтроллера в делители записаны коэффициенты 1 и 3. Для сведения в ячейку ЕЕPROM с адресом 03h записываются значения делителя первого счетчика, в ячейку с адресом 04h - значения делителя второго счетчика. Следует отметить, что коэффициенты деления счетчиков переписывается в специальные регистры делителей, и далее происходит их декремент с каждым входящим импульсом до нуля. Далее увеличивается значение счетчика величины на единицу, и в делитель вновь загружается коэффициент деления. После выполнения команды изменения коэффициента деления от центрального устройства, новый коэффициент загружается в регистр делителя при поступлении следующего счетного импульса.

    Четыре независимых входа датчиков протечки воды, сконфигурированы как входы с триггером Шмидта и имеют внешние подтягивающие резисторы сопротивлением 100 кОм. Столь высокое сопротивление выбрано для повышения чувствительности устройства. Наличие нескольких входов датчиков протечки позволяет удаленно, более конкретно определить место обнаружения протечки. Все входы датчиков равнозначны.

    Применение ШИМ для управления выходами, позволило использовать в схеме устройства, реле с обмотками на рабоче напряжение от 3В до 24В включенными напрямую в цепь основного питания устройства. Такое решение позволило расширить диапазон рабочего питающего напряжения  от 8 до 25В. И снизить дополнительно ток потребления, применив разные значения коэффициента ШИМ для включения реле и его удержания во включенном положении. В ячейке EEPROM c адресом 07h при программировании следует указать рабочее напряжение обмотки реле, применяемых пользователем в своем устройстве, для правильного выбора устройством коэффициентов ШИМ. Соответственно минимальное напряжение питания устройства будет равно напряжению питания обмоток реле, но не ниже 8В. (По умолчанию выбраны реле с рабочим напряжением обмотки 5В) Для нормальной работы реле в широком диапазоне питающих напряжений потребовалось ввести в устройство возможность измерения текущего значения величины питающего напряжения. Измерения так же необходимы для обнаружения уровня критического снижения напряжения, при котором происходит аварийное сохранение данных счетчиков величин и текущих значений делителей для последующего восстановления значений. Для снижения потребляемого тока, при критическом значении питающего напряжения, алгоритмом так же предусмотрено, выключение всех выходов, далее микроконтроллер, сохранив данные счетчиков, продолжает следить за уровнем питающего напряжения. При восстановлении питания работа устройства восстанавливается. Уровень критического напряжения при котором происходит аварийное сохранение, определен менее 7В Уровни включения устройства в работу 7.9В и более. Коль скоро устройство измеряет напряжение питания, решено, что его значение можно передавать  по запросу центральному устройству управления. Значения возможных измеряемых величин от 7В до 25.5В с шагом 0.1В.  По протоколу ModBus значения передаются в шестнадцатеричном виде числом без знака от 46h до FFh

    Алгоритм работы реле

    Реле для управления приводом (приводами) водоснабжения приводится в требуемое состояние «открыто», «закрыто» кнопкой «Приборка/Тест»  при обнаружении протечки на любом из входов в автоматическом режиме, устройство переведет реле в положение вентилей «зарыто»

    Реле терморегулятора устройства может быть сконфигурировано так, что терморегулятор будет работать, как система автономного терморегулирования, или как система управления приводом вентиля подключающего бойлер к системе горячего водоснабжения (функционально работу бойлера включенного в систему водопровода можно увидеть здесь). В этом режиме при обнаружении протечки привод будет закрывать не только вентили водопроводов, но и вентиль бойлера тоже.

    Реле привода водопровода горячего водоснабжения алгоритм работы в режиме автономного терморегулятора - такой же как и первое реле, в режиме работы терморегулятора для управления вентилем бойлера - при обнаружении протечки закрывает привод как и первое и второе реле, в автоматическом режиме работает в противофазе к приводу бойлера. (для перекрывания водопровода ГВС во время подключения к системе бойлера)

    В WaterUnit применена такая же технология измерения температуры, как и в ранее описанном в этой статье терморегуляторе (подробности смотрите там). Терморегулятор может работать в режимах управления "нагреватель" или "охладитель", определяется это установкой значений уставок Твкл, Твыкл. Если Твкл. Меньше Твыкл. работат как нагреватель, наоборот охладитель. Если установить одинаковые значения, выход будет работать как управление нагревателем с гистерезисом 1 градус т.е. Твыкл.= Твкл.+1.

    Выход  пищалки, сигнализирует прерывистым сигналом с периодом 0.5 сек. об обнаружении протечки, или с периодом 0.25 сек. об аварии датчика температуры (КЗ или обрыв)

    По команде с кнопки ручного управления приводами водоснабжения «Приборка/Тест», открываются или закрываются вентили систем водоснабжения, и на время «ручного режима» устройство перестает реагировать на датчики протечки воды.

    Кнопка “Бойлер” предназначена для ручного переключения водопровода горячего водоснабжения с централизованного водоснабжения на местное снабжение горячей водой с водогрейного бойлера. Если по каким-то причинам автоматически выбранный режим ГВС не устраивает пользователя, используется эта кнопка, которой вручную устанавливается требуемый режим работы водоснабжением. На время «ручного режима» устройство не будет реагировать на значение температуры в водопроводе горячего водоснабжения. (Выше сказанное актуально только для режима работы терморегулятора "управление бойлером")

    «Ручной режим»  действует в течении N мин. после последнего нажатия на кнопки. (По умолчанию N=15 мин. Значение хранится в ячейке EEPROM c адресом 08h и может быть установлено от 01h до FFh мин., с центрального устройства управления.) Далее режим установится в соответствии с алгоритмом автоматической работы. Если есть протечка, вентиля переведутся в закрытое состояние (если были открыты, конечно) а бойлер перейдет в режим в соответствии с уставками температуры или останется неизменным, если значение температуры центрального ГВС будет находиться внутри петли гистерезиса уставок температуры.

    Центральному устройству доступна информация о текущем состоянии входов, выходов WaterUnit, возможно удаленное управление выходами, режимами работы устройства, настройка и снятия показаний счетчиков, значений текущей температуры и питающего напряжения. О всех параметрах устройство сообщает (по запросу) центральному модулю по сети RS485 протоколом ModBus RTU.

    Следует отметить, что для защиты от случайной записи значений счетчиков и коэффициентов деления, введена команда ввода пароля (значение может быть установлено от 00h до FFh, по умолчанию пароль 0) После его ввода становится возможным ввод значений счетчиков величины и коэффициентов деления. так же становится возможным смена пароля. После смены коэффициентов деления текущие загруженные значения коэффициентов сбрасываются и загружаются новые. После ввода нового пароля и после выключения питания устройства смена параметров счетчика снова становится не доступной, до следующего ввода правильного пароля.

    Так же стоит добавить, что удаленное управление выходами, возможно различными вариантами. Есть команды, (см. таблицу команд) по которым удаленно  имитируется нажатие кнопок “Бойлер” или «Приборка/Тест» с соответствующим переключением выходов и блокировкой автоматики на минут. Есть возможность управления выходами реле и пищалки напрямую, но необходимо помнить что для того что бы управление происходило по удаленным командам и не сбивалось работой автоматики, следует соответствующей командой отключить управление выхода от автоматического управления.

    Перечень команд ModBus RTU, понимаемых устройством, сведен в таблицу "Таблицы команд управления WaterUnitPWM.xls"

    Все линии входов устройства и цепь питания, снабжены схемами защиты от повышенного и обратного напряжения и фильтрами высокочастотных помех. Фильтры не установлены только в цепях входов высокоскоростных счетчиков импульсов. Поскольку скорости счетчиков вполне достаточно, что бы сосчитать импульсы дребезга механических контактов датчиков расхода воды, в счетчики добавлен управляемый программный фильтр коротких импульсов. Постоянная времени фильтра может быть выбрана от 100 мкс. до 25.6 мс. Чем больше значение постоянной времени фильтра тем ниже максимальная скорость счета. Теоретически получаем от 5 кГц до 20 Гц.

    В устройстве имеются четыре светодиода. Светодиоды LED1 «синий» и LED3 «красный» включены когда соответствующие реле К1 и К3 выключены, индицируя, что вентили водоснабжения открыты. Для снижения потребляемой энергии устройством (учитывая, что водопроводы дольше открыты, чем закрыты) принято за открытое положение вентилей, выключенное состояние реле. Светодиод LED2 «желтый» индицирует состояния терморегулятора (Бойлера). Светодиод включен когда включено реле терморегулятора (Бойлера) К2. Вывод питания светодиода выведен на отдельную клемму для подключения внешних светодиодов (встроенных в выносную кнопку(и) «Бойлер»). Светодиод LED4 «зеленый» индикатор рабочего состоянияWaterUnit. Он светится непрерывно, пока работает устройство. Светодиод мигает в противофазе с пищалкой индицируя состояние аварии, даже если звуковой сигнал удаленно отключен.

Конструкция печатной платы  устройства WaterUnit разработана в онлайн системе проектирования EasyEDA. Плата проектировалась для размещения устройства в корпуc AD3-88 (128x90x25).

Ссылка на архив с документацией проекта

Ссылка на исправления печатной платы первой версии