Одна небольшая вентиляция
Есть небольшая вентсистема, которую нам поручили когда-то запустить, а сегодня я пользуюсь ей как онлайн-термометром. Как так получилось? То был первый шкаф автоматики, принятый сразу же после согласия работать.
Досталась тогда вентустановка с пластинчатым рекуператором и электронагревателями, с несколькими заслонками на ветках воздуховода. Чёткого техзадания не имелось, фирмочка только начинала свой путь, мы действовали по ощущениям.
Шкаф собрали из: Овен ПЛК110, сенсорная панель СП270, ПЧВ203, всякое электротехническое барахло. Для измерения температуры взяли овеновские же термометры сопротивления и пару модулей аналогового ввода.
Нагреватели управляются ПД-регулятором (как я его себе представляю) и ШИМ-коммутатором с полутораминутным периодом для переключения пускателей (контакторов) с перебором ступеней. Нагревателю перед рекуператором выставлена фиксированная температура 3°С — это значение подобрано после «экспериментов» с обморожениями вытяжного канала и потопами, так возник дренаж и водосточный обвес. Нагреватель после рекуператора догревает до требуемой температуры.
Вообще, в импортных специализированных контроллерах есть нижний предел уличной температуры, когда вентиляция останавливается. Однако, для нас такая роскошь непозволительна, пусть у нас и –35°.
Вентиляторам задается частота напряжения: 0, 35 или 50 Гц. Изначально вентиляторы регулировались количеством открытых заслонок на ветках, но через некоторое время приводы перестали «отвечать» — китайские моторчики без кожуха заржавели — смешно сказать, но в переходный период кто-то ходит и вставляет/вытаскивает пластины поперёк/из воздуховода. Потом для вентиляторов можно было ввести любое значение частоты из диапазона, но это оказалось «слишком сложно» — никто не заморачивался, ставили минимальное или максимальное значение. К тому же, мощность нагревателей зависела от скорости вентиляторов, но тут быстро пришло осознание, что регулятор хорошо отрабатывает без корректировок.
Да, есть некто, кто по состоянию воздуха и количеству посетителей переключает скорость «кнопками» на сенсорной панели.
Первая версия интерфейса пользователя на сенсорной панельке (СП270) ужасала меня, но кнопочки и индикаторы в рамочках продолжали складываться на экране, а миниатюры «улиток» вращали своими лопастями. Быстрый осмотр примеров построения мнемосхем показал, графическая имитация реальных объектов — общепризнанная практика. Потом появился профилактический день, и новый интерфейс.
Тогда уже плоский дизайн вовсю топтал свою сферу, и картинку на шкафе немножко притянули к тренду.
Прошли годы (3 шт.), из опыта по автоматизации внутри коллектива проистекла мысль о-SCADA-ть вентсистему, но я (как не сильно профессионал, или как сильно не профессионал) сделал по-своему. Нужно отметить, что от владельца здания не поступало каких-либо пожеланий по удалённому управлению — так был оправдан мой самопал.
От какого-то нереализованного проекта (звукооповещалки) остался один Raspberry-Pi. Ну и встал туда node-js, потому что сразу одним скриптом удалось описать обмен с ПЛК и веб-представление. Естественно, выход в интернет был очевидной и неотъемлемой задачей.
Между одноплатником и ПЛК обмен происходит по modbus-tcp. Поднять связь оказалось весьма просто. Первая же библиотека из поисковика github.com/dresende/node-modbus-tcp, и через несколько часов вентиляторы управлялись из браузера.
Одноплатник к сайту подключается как и клиент — веб-сокетом — я сам толком не понял, как так произошло. Сами данные формируются в json-строки и преобразуются прямо на странице. Сначала веб-страница была наполнена элементами стандартных форм, но это сильно напоминало тот ужас на сенсорной панельке, только из другой сферы. Некоторое время я боролся за красоту, но очень быстро устал.
Теперь же нужно вращать виртуальные «крутилки» внутри раскрываемых пунктов.
Авторизация клиента для возможности управления сейчас сделана очень просто, совпадением одной строки, и весь обмен между клиентом и ПЛК проходит по цепочке сайт-роутер-роутер-одноплатник. Хотя до этого скриптами на странице было предусмотрено переключение веб-сокета на одноплатник, где серые динамические адреса для двух подсетей определялись процедурой с одноплатника, и авторизация разрешалась только клиентам из внутренней сети.
Есть ещё много деталей для улучшения в этой вентиляционной системе, а в ближайшем будущем предстоит добавить ещё три приточно-вытяжных системы с неопределённым количеством микровытяжек. Предполагаю, что объединять их будем также внутри сети здания по ethernet-у на компьютер с какой-нибудь нормальной scada-программой.