Продолжаю серию статей об автоматическом управлении сушильными камерами, где я подробно описываю реализацию одного из наших заказов. Начало здесь и здесь.
Итак, рассмотрим наш щит изнутри и поближе. Вот он в сборе, готовый к отправке на место установки:
Про всё, что находится на его крышке, я уже рассказал: это два дисплея и энкодер (повторюсь, у нас же интерактивное устройство! :), тумблеры активации комнат (камер) и индикаторы состояния силового оборудования (заслонки и компрессор). А теперь остановимся на всём остальном содержимом (здесь устройство уже введено в эксплуатацию):
Всю силовую часть (два верхние ряда, а также силовая проводка) собрал наш руководитель.
Верхний ряд, автоматы слева направо:
1. подача питания на всю систему управления (3 фазы),
2. питание компрессора, откачивающего влажный воздух из камер (3 фазы),
3.-8. питание заслонок,
9. питание цифровой части. Затем закреплены шины "ноль" и "земля". К "земле" притянуты оплётки всех кабелей "витая пара", которыми соединены со схемой датчики температуры/относительной влажности.
Второй ряд на щите содержит контакторы для активации компрессора и заслонок. Кстати, эти же контакторы подают питание на индикаторы работы компрессора и открытого состояния заслонок, поэтому дополнительные выходы с платы Arduino не понадобились. В том же ряду - клеммы. С одних я брал фазу для реле, активирующих контакторы, одна клемма - питание +5 вольт цифровой схемы, и одна - цифровая "земля", "минус" питания.
Наконец, третий ряд. Этот целиком спроектирован, собран и запрограммирован мною. Это цифровая часть управления, за исключением разве что вот этого модуля реле:
Такие реле посредством опторазвязки управляются слабым сигналом с платы Arduino, но сами по себе реле недостаточно мощны для того, чтобы непосредственно запускать компрессор или открывать заслонки. Поэтому эти реле активируют контакторы из второго ряда щита, а уже к контакторам подключена более сильная нагрузка - компрессор и заслонки.
Для предотвращения дребезга контактов, мешающего стабильности работы цифровой части, использованы металлоплёночные конденсаторы ёмкостью 0,1 мкФ, рассчитанные на максимальное напряжение 400 вольт.
Я запрограммировал контроллер так, чтобы в случае непредвиденного отказа цифровой схемы все заслонки открывались, поэтому закрытое состояние заслонки управляется логической единицей, подаваемой на схему блока реле, а открытое, соответственно, логическим нулём. Другими словами, если цифровая схема обесточится, все заслонки откроются.
Теперь посмотрим на собственно цифровую часть:
За стальной сеткой спрятаны, дабы снизить помехи, ими производимые, блоки питания. Один блок питания - на 12 вольт, так как Arduino Mega (в центре фото) требует запаса напряжения, рекомендованное напряжение - 7-12 вольт. Два других блока питания - на 5 вольт - для блока реле (мы уже описали его) и для таймера, о котором чуть позже. На блоках питания Arduino и блока реле выходные конденсаторы заменены на конденсаторы большей ёмкости (3300 мкФ каждый):
Ещё один такой же конденсатор сидит под платой Arduino, припаянный непосредственно к её контактам +5 и -5 вольт ("земля").
Всё это сделано для максимального сглаживания напряжений питания и предотвращения возможных помех.
Если вдруг помеха всё-таки прилетит, датчики температуры/относительной влажности в какой-нибудь комнате покажут "0" и без перезагрузки не покажут ничего другого, а значит, алгоритм работы нарушится. Для отслеживания такой ситуации и реакции на неё я написал специальный код, который сначала сохраняет текущие режимы всех комнат в EEPROM контроллера платы Arduino, а затем подаёт логическую "1" на таймер с реле, через которое подаётся питание на нашу плату Arduino:
Этот таймер, получив на вход логическую единицу, размыкает цепь питания платы Arduino, отсчитывает 5 секунд, давая всем конденсаторам питания платы окончательно разрядиться, и заново подаёт питание на Arduino. При старте контроллер платы Arduino загружается из EEPROM, вся система стартует из того состояния, в котором была до перезагрузки, с теми же параметрами, датчики после перезагрузки всей системы снова работают стабильно.
Да, EEPROM рассчитана на определённое количество циклов перезаписи, но, поскольку сбои случаются крайне редко (сделано всё возможное для этого), то запас работоспособности памяти очень велик.
Я кратко познакомил вас со всеми элементами цифровой части, а в следующей статье я поподробнее расскажу о плате Arduino и о подключении её к остальной схеме, а также начну понемногу освещать код управления.