Есть небольшая вентсистема, которую нам поручили когда-то запустить, а сегодня я пользуюсь ей как онлайн-термометром. Как так получилось? То был первый шкаф автоматики, принятый сразу же после согласия работать.
Досталась тогда вентустановка с пластинчатым рекуператором и электронагревателями, с несколькими заслонками на ветках воздуховода. Чёткого техзадания не имелось, фирмочка только начинала свой путь, мы действовали по ощущениям.
![схема установки](https://habrastorage.org/r/w780q1/webt/yo/w-/af/yow-afujfftbknayk7dclus7wk0.jpeg)
Шкаф собрали из: Овен ПЛК160, сенсорная панель СП270, ПЧВ203, всякое электротехническое барахло. Для измерения температуры взяли овеновские же термометры сопротивления и пару модулей аналогового ввода.
Нагреватели управляются ПД-регулятором (как я его себе представляю) и ШИМ-коммутатором с полутораминутным периодом для переключения пускателей(контакторов) с перебором ступеней. Нагревателю перед рекуператором выставлена фиксированная температура 3°С — это значение подобрано после «экспериментов» с обморожениями вытяжного канала и потопами, так возник дренаж и водосточный обвес. Нагреватель после рекуператора догревает до требуемой температуры.
Вообще, в импортных специализированных контроллерах есть нижний предел уличной температуры, когда вентиляция останавливается. Однако, для нас такая роскошь непозволительна, пусть у нас и –35°.
Вентиляторам задается частота напряжения: 0, 35 или 50 Гц. Изначально вентиляторы регулировались количеством открытых заслонок на ветках, но через некоторое время приводы перестали «отвечать» – китайские моторчики без кожуха заржавели – смешно сказать, но в переходный период кто-то ходит и вставляет/вытаскивает пластины поперёк/из воздуховода. Потом для вентиляторов можно было ввести любое значение частоты из диапазона, но это оказалось «слишком сложно» – никто не заморачивался, ставили минимальное или максимальное значение. К тому же, мощность нагревателей зависела от скорости вентиляторов, но тут быстро пришло осознание, что регулятор хорошо отрабатывает без корректировок.
Да, есть некто, кто по состоянию воздуха и количеству посетителей переключает скорость «кнопками» на сенсорной панели.
Первая версия интерфейса пользователя на сенсорной панельке (СП270) ужасала меня, но кнопочки и индикаторы в рамочках продолжали складываться на экране, а миниатюры «улиток» вращали своими лопастями. Быстрый осмотр примеров построения мнемосхем показал, графическая имитация реальных объектов — общепризнанная практика. Потом появился профилактический день, и новый интерфейс.
![удизайненный интерфейс](https://habrastorage.org/r/w780q1/webt/ph/b8/_-/phb8_-n751ucl2ft-e1rkjpzpck.jpeg)
Тогда уже плоский дизайн вовсю топтал свою сферу, и картинку на шкафе немножко притянули к тренду.
Прошли годы (3 шт.), из опыта по автоматизации внутри коллектива проистекла мысль о-SCADA-ть вентсистему, но я (как не сильно профессионал, или как сильно не профессионал) сделал по-своему. Нужно отметить, что от владельца здания не поступало каких-либо пожеланий по удалённому управлению — так был оправдан мой самопал.
От какого-то нереализованного проекта (звукооповещалки) остался один Raspberry-Pi. Ну и встал туда node-js, потому что сразу одним скриптом удалось описать обмен с ПЛК и веб-представление. Естественно, выход в интернет был очевидной и неотъемлемой задачей.
![](https://habrastorage.org/r/w780q1/webt/p1/cn/a8/p1cna8qiqh4wdiwz-afieovneek.jpeg)
Между одноплатником и ПЛК обмен происходит по modbus-tcp. Поднять связь оказалось весьма просто. Первая же библиотека из поисковика github.com/dresende/node-modbus-tcp, и через несколько часов вентиляторы управлялись из браузера.
Одноплатник к сайту подключается как и клиент — веб-сокетом — я сам толком не понял, как так произошло. Сами данные формируются в json-строки и преобразуются прямо на странице. Сначала веб-страница была наполнена элементами стандартных форм, но это сильно напоминало тот ужас на сенсорной панельке, только из другой сферы. Некоторое время я боролся за красоту, но очень быстро устал.
![старая веб-морда](https://habrastorage.org/r/w1560/getpro/habr/post_images/43b/512/b26/43b512b2626a57053126423dfcc5389e.png)
Теперь же нужно вращать виртуальные «крутилки» внутри раскрываемых пунктов.
Авторизация клиента для возможности управления сейчас сделана очень просто, совпадением одной строки, и весь обмен между клиентом и ПЛК проходит по цепочке сайт-роутер-роутер-одноплатник. Хотя до этого скриптами на странице было предусмотрено переключение веб-сокета на одноплатник, где серые динамические адреса для двух подсетей определялись процедурой с одноплатника, и авторизация разрешалась только клиентам из внутренней сети.
Есть ещё много деталей для улучшения в этой вентиляционной системе, а в ближайшем будущем предстоит добавить ещё три приточно-вытяжных системы с неопределённым количеством микровытяжек. Предполагаю, что объединять их будем также внутри сети здания по ethernet-у на компьютер с какой-нибудь нормальной scada-программой.
Досталась тогда вентустановка с пластинчатым рекуператором и электронагревателями, с несколькими заслонками на ветках воздуховода. Чёткого техзадания не имелось, фирмочка только начинала свой путь, мы действовали по ощущениям.
![схема установки](https://habrastorage.org/webt/yo/w-/af/yow-afujfftbknayk7dclus7wk0.jpeg)
Шкаф собрали из: Овен ПЛК160, сенсорная панель СП270, ПЧВ203, всякое электротехническое барахло. Для измерения температуры взяли овеновские же термометры сопротивления и пару модулей аналогового ввода.
Нагреватели управляются ПД-регулятором (как я его себе представляю) и ШИМ-коммутатором с полутораминутным периодом для переключения пускателей(контакторов) с перебором ступеней. Нагревателю перед рекуператором выставлена фиксированная температура 3°С — это значение подобрано после «экспериментов» с обморожениями вытяжного канала и потопами, так возник дренаж и водосточный обвес. Нагреватель после рекуператора догревает до требуемой температуры.
Вообще, в импортных специализированных контроллерах есть нижний предел уличной температуры, когда вентиляция останавливается. Однако, для нас такая роскошь непозволительна, пусть у нас и –35°.
Считать чужие деньги нехорошо, но интересно
Зимой нагреватели работают примерно на 40 кВт из 120 возможных, два 7,5 кВт вентиляторов усредним к 5 кВт из-за переключения скоростей, рабочий день 15 часов. Прикидочно, 50 * 15 = 750 кВт*ч в день. По 2,75 руб примерно 2000 руб в день, 60 000 рублей в зимний месяц.
Вентиляторам задается частота напряжения: 0, 35 или 50 Гц. Изначально вентиляторы регулировались количеством открытых заслонок на ветках, но через некоторое время приводы перестали «отвечать» – китайские моторчики без кожуха заржавели – смешно сказать, но в переходный период кто-то ходит и вставляет/вытаскивает пластины поперёк/из воздуховода. Потом для вентиляторов можно было ввести любое значение частоты из диапазона, но это оказалось «слишком сложно» – никто не заморачивался, ставили минимальное или максимальное значение. К тому же, мощность нагревателей зависела от скорости вентиляторов, но тут быстро пришло осознание, что регулятор хорошо отрабатывает без корректировок.
Да, есть некто, кто по состоянию воздуха и количеству посетителей переключает скорость «кнопками» на сенсорной панели.
Первая версия интерфейса пользователя на сенсорной панельке (СП270) ужасала меня, но кнопочки и индикаторы в рамочках продолжали складываться на экране, а миниатюры «улиток» вращали своими лопастями. Быстрый осмотр примеров построения мнемосхем показал, графическая имитация реальных объектов — общепризнанная практика. Потом появился профилактический день, и новый интерфейс.
![удизайненный интерфейс](https://habrastorage.org/webt/ph/b8/_-/phb8_-n751ucl2ft-e1rkjpzpck.jpeg)
Тогда уже плоский дизайн вовсю топтал свою сферу, и картинку на шкафе немножко притянули к тренду.
Прошли годы (3 шт.), из опыта по автоматизации внутри коллектива проистекла мысль о-SCADA-ть вентсистему, но я (как не сильно профессионал, или как сильно не профессионал) сделал по-своему. Нужно отметить, что от владельца здания не поступало каких-либо пожеланий по удалённому управлению — так был оправдан мой самопал.
От какого-то нереализованного проекта (звукооповещалки) остался один Raspberry-Pi. Ну и встал туда node-js, потому что сразу одним скриптом удалось описать обмен с ПЛК и веб-представление. Естественно, выход в интернет был очевидной и неотъемлемой задачей.
![](https://habrastorage.org/webt/p1/cn/a8/p1cna8qiqh4wdiwz-afieovneek.jpeg)
Между одноплатником и ПЛК обмен происходит по modbus-tcp. Поднять связь оказалось весьма просто. Первая же библиотека из поисковика github.com/dresende/node-modbus-tcp, и через несколько часов вентиляторы управлялись из браузера.
Одноплатник к сайту подключается как и клиент — веб-сокетом — я сам толком не понял, как так произошло. Сами данные формируются в json-строки и преобразуются прямо на странице. Сначала веб-страница была наполнена элементами стандартных форм, но это сильно напоминало тот ужас на сенсорной панельке, только из другой сферы. Некоторое время я боролся за красоту, но очень быстро устал.
![старая веб-морда](https://habrastorage.org/getpro/habr/post_images/43b/512/b26/43b512b2626a57053126423dfcc5389e.png)
Теперь же нужно вращать виртуальные «крутилки» внутри раскрываемых пунктов.
Авторизация клиента для возможности управления сейчас сделана очень просто, совпадением одной строки, и весь обмен между клиентом и ПЛК проходит по цепочке сайт-роутер-роутер-одноплатник. Хотя до этого скриптами на странице было предусмотрено переключение веб-сокета на одноплатник, где серые динамические адреса для двух подсетей определялись процедурой с одноплатника, и авторизация разрешалась только клиентам из внутренней сети.
Есть ещё много деталей для улучшения в этой вентиляционной системе, а в ближайшем будущем предстоит добавить ещё три приточно-вытяжных системы с неопределённым количеством микровытяжек. Предполагаю, что объединять их будем также внутри сети здания по ethernet-у на компьютер с какой-нибудь нормальной scada-программой.