Умное реле давления для насосной станции на PIC контроллере

Хочу представить вашему вниманию умное реле давления (уровня) для насосной станции на PIC контроллере.

Основные задачи — поддержание давления в заданном диапазоне.

Для реализации поставленной задачи, с которой справлялось простое механическое реле, выбрал наиболее продвинутый PIC котроллер в шестисотой серии — PIC16F690. Поскольку это то что подходяще для этой задачи было у меня в наличии. 

Так и нагрузим его максимум, функции:

  • защита насоса от сухого хода
  • защита насоса от повторно кратковременного режима работы
  • защита от длительной работы
  • контроль целостности цепи сигнала с датчика
  • счёт времени наработки часов

Вышло почти 2 килобайта. Учитывая то, что таблицы с текстом переместил на вторую страницу памяти контроллера, то на 2кб контроллера не хватило бы.

Для отображение текущего состояния, настроек и аварийных сообщений взят на вооружение LCD 16×2 hd44780.

Управление схемой двумя кнопка Up и Down двойного назначения. При кратковременном нажатии (зажигается первый сегмент на LCD) переход по меню или сброс аварии при её возникновении. Длительное удержание (более 2 сек.) в главном меню — регулирование яркости LCD, в остальных меню — конфигурация текущих настроек параметров.

Аналоговый сигнал с датчика подаётся на пин13 (АЦП 10bit от 0 до 5В) через делитель R1, R2. Рабочий диапазон устройства от 0,3 до 4,8В. Шкалированный диапазон датчика 0,5…4,5В. В качестве опорного напряжения служит питание пик контроллера.

Управление нагрузкой исполняют два дискретных выхода пин10 и пин17 (выход до 15 мА). На выходе пин17, в отличие от пин10, при включении насоса в течении 2 сек выдаёт постоянный уровень сигнала, потом сменяется шимом (программным ~330Гц) с коэффициентом заполнения 2/3 периода. Т.е. выход пин10 всегда на реле подаёт номинальное напряжение, а пин17 сперва номинальное для притягивания реле, а потом пониженное для удержания реле во включенном состоянии. Данный метод применил поскольку реле у меня ~12В, а источник питания для реле =7В.

ШИМ управление подсветкой LCD пин5 активный низкий уровень и пин6 активный высокий уровень (выход до 15 мА, аппаратный ШИМ ~1кГц). При нажатии кнопок активируется подсветка до номинальной яркости, при бездействии в течении 2 мин снижается до минимальной яркости. В режиме «Авария» яркость подсветки мигает.

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

Архитектура меню:

1. Главное меню — отображает напряжения сигнала с датчика, расчётное давление в барах, состояние насоса (ON или OFF) и время его работы (mm:ss). Авто возврат в главное меню через 2 минуты при бездействии кнопок.

2. Далее идут меню настроек, все настройки сохраняются в энергонезависимой памяти:

2.1 Минимальное давление включения насоса, при давлении в системе ниже заданного насос включится. Диапазон регулировок — от значения параметра 2.6 до значения параметра 2.2.

2.2 Максимальное давление отключения насоса, при достижении давления в системе выше заданного насос отключится. Диапазон — от значения параметра 2.1 до 24,0 бар.

2.3 Максимальное время работы насоса (в минутах), при достижении данного значения насос отключится с переходом в аварию по превышению времени работы. От 2 до 240 минут.

2.4 Минимальное время работы насоса (в секундах), при штатном или аварийном отключении насоса с временем работы ниже заданного, и достижении подряд циклов таких отключений параметра 2.5 насос отключится с переходом в аварию по зацикливанию, кратковременной работы насоса (мало воздуха в системе). От 2 до 60 секунд.

2.5 Максимальное количество циклов кратковременной работы насоса, при достижении заданного значения, по условию параметра 2.4, насос отключится с переходом в аварию. От 2 до 240 циклов.

2.6 Минимальное давление сухого хода, при давлении в системе ниже заданного и по истечению времени работы насоса параметр 2.7, и если не будет наблюдаться динамика роста давления, то насос отключится с переходом в аварию, защита сухого хода. От 0,2 бар до значения параметра 2.1.

2.7 Максимальное время работы насоса до включения защиты сухого хода (в секундах), при достижении данного значения включается защита по параметру 2.6. От 2 до 60 секунд.

2.8 Сброс настроек на заводские (reset параметр 2.1-2.7 и подсветка LCD). Сброс при нажатии кнопки выполняется по переполнению WDT, в симуляторе (Proteus v7.6) WDT для этого пика работает некорректно, на порядок длительно у меня.

2.9 Настройка параметров датчика для расчётного давления согласно его спецификации, т.е. 0,5вольт = 0,0 бар(МПа), а для 4,5вольт задаём параметры по вашему датчику (по умолчанию 4,5В=12,0 бар.). Диапазон значений от 0,2 до 24,0 бар.

2.10 Время наработки часов насоса, счёт максимум до 25500 часов (hhhh:mm). Обнулить можно длительно удержав кнопку. Сохраняются в памяти только часы, при обесточивании минуты обнуляться.

Любая авария требует сброса для включения насоса в нормальную работу. Авария «неисправность датчика» возникает при выходе сигнала за пределы значения ниже 0,3В или выше 4,8В.

Для снижения вероятности возникновения возможной аварии по параметрам 2.3, 2.5, 2.7 задать максимальное значение; по параметрам 2.4, 2.6 задать минимальное значение.

Данная схема не критична к номиналам элементов, диоды D1 и D2 не ставил. Резистор R14 паял прямо на плате lcd. Запитал схему от зарядного для мобильного телефона, переделав его с 5 на 7 вольт.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
DIL20 МК PIC 8-бит PIC16F690 1
VR1 Линейный регулятор LM7805 1
T1 Биполярный транзистор 2N2222 1
D1, D3 Выпрямительный диод 1N4007 2
D2 Стабилитрон 5.6V 1 не обязателен
C1, C2, C3 Конденсатор 2.2мкФ 16В 3
R1 Резистор 4.7 кОм 2
R3, R5 Резистор 150 Ом 1 100 Ом на плате LCD
R4 Резистор 470 Ом 1
R2* Резистор 250 кОм 1
R12 Резистор 4.7 Ом 1
R13 Резистор 1 Ом 1 как защитный
lcd LCD-дисплей HD44780 1 16*2
Rel1 Реле 5…12В 1