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

Терморегулятор с центральным управлением по сети  RS485 протоколом ModBus RTU.

    Терморегулятор это одно из самых популярных средств автоматизации. По этой теме можно найти множество статей на просторах интернета. Вот и я решил внести свою лепту, тем более что моя идея в той или иной мере, не находила реализации в устройствах других разработчиков.

    Задача поставлена следующая: Средствами микроконтроллера малого семейства, создать устройство, измеряющее температуру и управляющее выходом (выходами) в соответствии с уставками, заданными от центрального устройства по сети  RS485 протоколом ModBus RTU. И соответственно передающее в центральное устройство значение текущей температуры и состояния входов, выходов.

    В результате приложенных усилий, получены следующие результаты:

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

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

    Осталось свободными два вывода (порта). Как ими распорядиться?

    Исходя и з моих нужд, у меня родились следующие варианты:

    Оба выхода использовать на управление реле, тогда можно получить устройство которое будет управлять двумя тепловыми устройствами. Например, в овощехранилище на лоджии. Сейчас у меня там регулирует температуру китайский терморегулятор. И хорошо с этим справляется. Но к сожалению, удаленно и централизовано проконтролировать и изменить режимы его работы, он не позволяет. Хочу в следующем году сделать его на базе старого, но рабочего холодильника. Добавив в него нагреватель, из кусочка пленочного теплого пола, наклеенного на заднюю стенку. Летом будет работать холодильная установка, зимой нагреватель. Старое механическое термореле холодильника конечно удаляем. Вместо него будет работать наш регулятор.

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

    Подробно о всех версиях терморегуляторов на микроконтроллерах младшего семейства, моей разработки описано вот в этой статье

    Процедура измерения температуры инициируется каждые 20мс., достоверными считаются последовательные два измерения с одинаковым результатом, который через табличное преобразование пересчитывается в значение температуры. Вычисленное значение отправляется к процедуре сравнения результатов с записанными в ППЗУ (EEPROM) уставками Твкл, Твыкл. В зависимости от сравнения с уставками, а так же с настройками управления выходом, формируется команда управления реле. Возможен режим управления нагревателем или охладителем. Определяется это, установкой значений уставок Твкл, Твыкл. Если Твкл. меньше Твыкл. работаем как нагреватель, наоборот охладитель. Если установить одинаковые значения, выход будет работать как управление нагревателем с гистерезисом 1 градус, т.е. Твыкл.= Твкл.+1. Если выхода два процедура сравнения производится два раза для каждого выхода со своими уставками.  Температуры уставок могут быть как положительными так и отрицательными. Следует отметить, что отрицательные температуры уставок записываются в память устройства в прямом коде. По команде чтения температуры устройство выдает значения температуры в младшем байте в прямом коде, в старшем в дополнительном. Это сделано исходя из того что человеку проще воспринимать температуру в прямом коде, а машине в дополнительном. (решил угодить всем)

    В терморегуляторе температуры в комнате, где вход может быть использован как датчик протечки, подтягивающий резистор делается более высокого номинала, например 300-500 кОм. Тогда срабатывание протечки происходит от двух проводников опущенных кончиками в воду на расстоянии 1 см. В алгоритм заложено, не только передавать состояние датчика в центральное устройство, но и подавать звуковой сигнал, если это разрешено соответствующей командой управления выходами. Выход звукового сигнала «Виртуальный». Физически для него не осталось портов. Получил я его, совместив в одном выходном порту два сигнала. Для этого, когда передается сигнал 1 кГц для динамика ТR1212A и в это время нужно включить реле, сигнал формируется скважностью 8/2, если реле должно быть выключено скважностью 2/8. Далее в цепи управления реле делается интегрирующая цепочка и готово, один выход сигналит о протечках и управляет реле. Коль скоро устройство может сигналить, то пусть еще сигналит и об обрыве или замыкании термистора. С центрального модуля можно отключить работу пищалки. Можно и отключить автоматику управления реле. Это нужно сделать обязательно, если вы захотите управлять реле с центрального устройства. Иначе через 20 мс автоматика изменит ваши установки.

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

    Вот маленькое видео с демонстрацией работы макета терморегулятора с датчиком протечки