Статья

Практическое применение ПЛК Beckhoff CX9000/CX9010 и платформы Умного дома (УД) ioBroker в автоматизации квартиры и дачи

Техническое задание (ТЗ) на автоматизацию

Автоматика должна быть максимально надёжной, а именно, с положительной репутацией производителя (по отзывам реальных пользователей), выдерживать сбои электропитания, иметь срок службы не менее 20 лет (гарантированное наличие софта и документации от разработчика в интернете).Удобная и распространённая среда разработки с наличием community и примеров.Массовость продукта - долгосрочная ремонтопригодность (наличие модулей б.у. и новых на торговых площадках ebay, aliexpress, avito).Интеграция с элементами УД по распространённым открытым протоколам.Возможность подключения проводных и беспроводных датчиков, использующих открытые стандартные протоколы.Хранение информации в SQL базе данных минимум 1 год.Гибкий настраиваемый интерфейс УД пользователя.Доступность управления УД со смартфона через интернет. Перечень подсистем, с отдельными ТЗ на проект для квартиры (flat) и дачи (dacha):

Выбор оборудования УД

Найти устройство "всё в одном", за приемлемые деньги, удовлетворяющее ТЗ - проблематично, поэтому будем использовать классическую двухуровневую модель автоматизации.

На верхнем уровне - сервер с высокоуровневым Языком Программирования для сложных сценариев с мультимедиа, веб-сервисом для интерфейса УД, шлюзом в инет и прочих IOT систем, БД SQL. Эту роль прекрасно выполняет ioBroker на железе с RAM=>2GB, HDD/SDD для SQL. На нижнем уровне устройство - Программируемый логический контроллер (ПЛК) с возможностями:

  • принимать уставки пользователя, отдавать оперативные данные;
  • считывать данные с проводных датчиков;
  • автономно выполнять сценарии на основании уставок и данных с датчиков;
  • управлять исполнительными конечными устройствами (реле);
  • работать с проводными сигнальными шинами. 

Важно отметить, что выход из строя верхнего уровня никак не влияет на работу нижнего уровня (ПЛК). Более того, управлять уставками и мониторить текущее состояние нижнего уровня можно напрямую без промежуточного сервера, например, с телефона, поставив бесплатный клиент Modbus-tcp.

Почему был выбран именно ПЛК Beckhoff?

Сначала таблица, из контрой будет понятно, почему был выбран именно ПЛК, а не иное решение на базе ПК или одноплатного ПК с обычной OS:     

Казалось бы, на рынке существует огромное разнообразие ПЛК от Овен до Siemens. Но если поставить фильтр в дополнение к ТЗ:

  • бюджет со всеми модулями расширения под реальный проект (~24 DI, ~24 DO, ~8 AI, RS485)  до 30 тыс. руб;
  • встроенный run-time codesys (как самый хорошо документированный);
  • гибкая масштабируемость модулями DI/DO/AO/AI/ и т.д., когда есть возможность добавить ровно столько портов, сколько нужно и каких нужно - то выбор резко сузится, а именно, останется только Beckhoff, причём б.у. Меня факт б.у. не смутил, всё-таки промышленная автоматика делается с хорошим запасом прочности, такая техника крайне редко ломается по причине неисправности МК/ПЛК. Пример - ЭБУ в авто.  

Из всего разнообразия ПЛК Beckhoff с учётом доп. фильтров, можно обратить внимание на: BC9000, CX9000, CX9010, CX10**, CX80**. Важно, чтобы ПЛК имел встроенный TwinСat-runtime. Один из главных параметров - это тип шины для подключения модулей -  EL* или KL*. KL чуть дешевле. 

Итак, ПЛК CX9000/CX9010 можно сторговавшись купить на ebay за:

  •  непосредственно сам ПЛК ~10 тыс. руб (ПЛК Beckhoff всегда без модулей);
  • 1 порт в 8-портовом модуле (DI, DO) обойдётся с учётом доставки 250-300 руб;  
  • аналоговые порты (AI, AO) дороже - от 400 руб. за порт; 
  • самый дорогой модуль - RS485 около 5 тыс. руб; 
  • заглушка к шине KL  ~1500 руб.

Первоначальная настройка ПЛК Beckhoff CX9000/CX9010

Каждая серия ПЛК, даже у одного производителя, имеет свои особенности конфигурирования. Среда разработки для ПЛК в проектах - TwinCat2 (немного изменённый Codesys 2 от Beckhoff).

Главные особенности серии CX90*:

На ПЛК устанавливаем, при необходимости, последние прошивки:

 Прошивка CX9000.

 Прошивка CX9010.

 Инструкция по прошивке.

Не используйте руссифицированную инструкцию, в ней есть неточности!

Инструкция по настройке.

Видео по настройке.

Связываем Twincat System Manager и Twincat PLC Control:

после сохранения проекта в Twincat PLC Control (закрывать не надо) переключаемся в Twincat System Manager, правой кнопкой нажимаем по пункту в дереве "PLC Configuration" -> "Append PLC Project", выбираем файл в каталоге, где сохранили до этого проект.

Инструкция по привязке проекта.

Связь программных переменных с реальными портами

Важно знать, как работает связь переменных в проекте в программе Twincat PLC Control и реальных портов ввода/вывода, видимых из System Manager. В PLC Control  используются виртуальные адреса, например:    

    HW_heat_first_floor AT %QX0.0:BOOL; (* Отопление 1 этаж *).

Адрес "QX0.0" длиной 1 бит , пока он не привязан к реальному порту.

В System Manager (если настроена связь с проектом), как только появится такая строка (после сохранения проекта в PLC control) - сам предложит привязать уже к реальному физ. порту. После настройки связи, необходимо сохранить и активировать конфигурацию "Actions-Activate Configuration..."

Память в ПЛК

В ПЛК 3 вида памяти:

  • FLASH (16-32 MB) - с которой грузится OS реального времени (Win CE 5.0 или 6.0), сам Twincat-runtime, который будет исполнять проект, подготовленный и откомпилированный на компьютере разработчика. Проект, файлы конфигурации также хранятся на FLASH. Сама OS и Twincat-runtime с FLASH в режиме записи не работает, поэтому FLASH служит долго. Внутри программы проекта можно вызывать спец. функцию и явно писать данные на FLASH, но делать это не рекомендуется, в связи с ограниченным числом циклов записи.
  • RAM  (64-128 MB) - оперативная память. Для проектов УД хватает с огромным запасом.
  • NOV-RAM (128 KB) - энергонезависимая память. Отлично подходит для сохранения уставок и важных показаний, которые нельзя терять при перезагрузке ПЛК.  

Для сохранения данных в NOV-RAM необходимы следующие манипуляции: В Twincat System Manager:

  • убрать галку с поля "Clear Invalid Persistent Data":

Поставить галку  "Auto Init Linked PLC Outputs":

Сохранить и активировать конфигурацию "Actions-Activate Configuration..."

 В Twincat PLC Control во вкладке "Resources"-"Global variables" создаём объект "Global_variables_persistent" :

Внутри блока:

 "VAR_GLOBAL PERSISTENT" 

 ...

 "END_VAR" 

 объявленные переменные c типом "Q"(выходные) будут сохранятся в NOVRAM.

Адрес "*" означает, что адрес в памяти будет назначен автоматически. "System manager" вернёт в "PLC Control" привязку в объекте "Resources"-"Global variables"-"TwinCAT Configuration""System Manager" если предложит привязать к реальным портам эти переменные - надо отказаться. На warning-и по поводу этих не привязанных переменных - не обращать внимания.

Связь ПЛК с внешним миром

Обмениваться оперативными данными с платформой УД можно как минимум 3 способами (протоколами) через порт ETHERNET по IP: ADS, Modbus-tcp, MQTT.

  • ADS

ADS - родной встроенный открытый протокол. Есть драйвер для iobroker. Минимум настроек, автоматическая синхронизация имён переменных , созданных на стороне ПЛК (есть проблема с максимальным экспортируемым количеством переменных (проблема только для TwinCat 2) ~ 64 шт., возможно будет исправлено в новых версиях драйвера).  Переменные на обоих сторонах доступны для записи и чтения.

  • Modbus-tcp 

Инструкция по установке библиотеки:

В PLC Control создаём переменные с типом "M" - memory:

M1T1 AT %MW0 :REAL;  (* modbus address 12288 *)                

M1T2 AT %MW4 :REAL;  (* modbus address 12290 *)

Несмотря на то, что указано "W" (word), длина REAL - 4 байта, поэтому следующая переменная начинается с 4-го байта памяти. Modbus-регистр занимает всегда 2 байта, поэтому для передачи REAL будет задействовано 2 modbus-регистра. Если надо передать 1 бит (BOOL - состояние порта TRUE/FALSE), то всё равно надо будет задействовать 2 байта памяти ПЛК и 1 modbus регистр. Переменные типа "M" автоматически мапируются в holding-регистры modbus-tcp сервера ПЛК, начиная с адреса 12288.  Особенность в том, что обычно holding регистры  начинаются с адреса 40000, а некоторые утилиты modbus-tcp  не могут объединить modbus-функцию № 3 и нестандартный адресный диапазон с абсолютного 12288 адреса.  

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

Mqtt

 На ПЛК можно в проект внедрить MQTT-клиент. Упрощённый, но вполне рабочий.     

Необходимо установить пакет TS6310-0030-TCP-IP-CE.exe на компьютер разработчика, и 1 файл (TcTCPIPSvrCe.ARMV4I.CAB), после инсталляции, загрузить на сам ПЛК (если он уже не установлен).  

Инструкция.

 В проекте подключить соответствующие либы:

Пример отправки топика mqtt:

Пояснения подсистемам

Ниже представлены реально работающие подсистемы. Ссылки на программный код в текстовом формате для ПЛК приведены для ознакомительной цели и без других частей кода проекта TwinCAT 2 код не заработает. Код представлен для того, чтобы показать несложность PASCAL-подобного языка программирования - ST, широко применяемого для ПЛК. Полные рабочие проекты для TwinCAT2 :

1. Вентиляция (flat)

Описание Самодельной Приточной Установки (СПУ) из канальных элементов вентиляции с увлажнением и с интеграцией в систему Умного дома (УД) (flat). СПУ без рекуперации, по причине невозможности обеспечить ТЗ при низких температурах. 

Техническое Задание (ТЗ) к СПУ

  1. СПУ должна работать постоянно круглый год.
  2. Мощность СПУ должна адаптироваться к реальному потреблению воздуха людьми по датчикам CO2.
  3. Уровень шума в спальных комнатах <30 дБА.
  4. СПУ должна работать совместно со стационарным увлажнителем.
  5. Работа СПУ должна быть согласована с работой кухонной надплитной вытяжки. 
  6. Возможность с помощью уставок через WEB интерфейс УД  задавать параметры: 

Законность установки.

В квартирах, в большинстве случаев, законно сделать приточно-вытяжную вентиляцию нельзя.

Читать всё по ссылке!              

 Цитата из ссылки:"Проблем нет, пока интересы окружающих не затрагиваются - это стандартный принцип развитого общества, который можно взять на вооружение при реализации современного вент. проекта в квартире. Об этом чиновники и говорят."

При бездумной работе механической вентиляции может нарушиться работа естественной вентиляции (ЕВ) у соседей вашего подъезда. Лучший вариант - если у вас вентканал индивидуальный до кровли и без объединения с общим вентканалом. Средний вариант - если ваш вентканал всё таки объединяется с общим, но соотношение площади проходного сечения общего вентканала  к вашему индивидуального вентканалу-спутнику (15*15 см) больше чем ~10 к 1. То есть сечение магистрального канала > ~2250 кв.см. Плохой вариант, если соотношение менее ~5 к 1. Чем выше соотношение, тем меньше влияние вашего вытяжного вента на работу ЕВ у соседей. При очень высоком соотношении никто даже не заметит изменения в работе их штатной ЕВ и не пожалуется, что вы своим вытяжным вентилятором (до 200-300 м.куб. в час) опрокинули им тягу. Ещё надо учесть, что зимой ЕВ работает отлично, и своей работающей вентиляцией вы соседям тягу не опрокинете. Но чем ближе уличная температура к комнатной (22-24 градуса), тем эта вероятность выше. Точное значение - сколько кубов воздуха в час можно подавать в вашу ЕВ безопасно для соседей (актуально для среднего и плохого варианта) рассчитать очень сложно. Проще сделать замеры опытном путём и потом ориентироваться на них. Управляющая компания расчётами заморачиваться не будет, и если будут жалобы - попросит вас убрать вытяжной вент. Поэтому, прежде чем что-то проектировать/устанавливать, узнайте тет-а-тет со специалистами из УК, как устроена вентиляция в вашей квартире, и какая реакция на самовольную установку ПВ системы. Возможно, нужен тех. проект от фирмы с лицензией, хотя бы формальный. 

Расчёт приточной вентиляции

Расчёт производительности и сопротивления

Для информации 

Главные исходные данные - это количество людей и требования к шуму. Санитарные нормы по содержанию CO2 едины для всех. В моём примере - это 5 человек и шум до 30 db в спальных комнатах. Для 5 человек минимально надо 5*30=150 м. куб. час производительности. Оптимально 5*(50-60)=250-300. Итого каждый вентилятор (приточный и вытяжной) должен давать 250 м.куб в час с учётом сопротивления вентканала и быть не шумнее 40 db в неспальных (30 db в спальных комнатах). Сопротивление приточного вентканала измеряется в паскалях (Pa) и зависит от:  - общей длины воздуховодов, - площади проходного сечения воздуховода и канальных элементов: - входной решётки - приточного клапана - фильтра грубой очистки  G3 - подогревателя воздуха - фильтра тонкой очистки EURO7 - шумоглушителя - приточной решётки - поворотов, переходников, тройников... Сопротивление каждого элемента зависит от скорости прохождения воздуха через них (производительности).

Определения сопротивления.

Значения сопротивления можно также определить по графику в паспорте или на сайте производителя элемента. Все воздуховоды и элементы вентиляции делать только из оцинковки, никакого пластика. Для шумо - и огнеизоляции вентканалы можно обернуть спец. базальтовым рулонным материалом. В квартире на этапе ремонта, если позволяет высота потолка, можно заложить диаметр воздуховода не менее 160 мм. Чем больше сечение - тем тише и тем выше КПД установки в целом. Также  вентилятор на бОльшем диаметре, как правило, работает на меньших оборотах (для той же производительности) и с запасом мощности (видно из графиков). Если потолок низкий, то можно провести воздуховод в углу на стыке стены и потолка, обшив гкл. Разводка вентканалов - это компромис между дизайном и ТЗ, всё очень индивидуально. Если людей в квартире проживает  трое, то наверное можно ограничиться 125 мм диаметром. Но не менее.  Самый шумный элемент - вентилятор, его следует располагать как можно дальше от спального места, например, в кладовке, гардеробной, на балконе.

Расчёт приточного вентилятора

Зная диаметр и имея чертёж приточных вентканалов - считаем суммарное сопротивление.  Например, будет 180 Pa (из них до ~100 Pa  приходится на фильтр тонкой очистки).  Рассматривая графики производительности разных брендов, находим оптимальный (запас мощности, шум, цена). Для своей установки в качестве приточного выбрал Systemair KL160M Sileo, с возможностью управлять производительностью трансформатором напряжения. Для вытяжного вента выбрал Systemair K125 EC Sileo, плавно управляемый напряжением DC 0-10V. 

Пример определения "рабочей точки" вентилятора, имея на входе 2 главных параметра:

5 синих линий соответствуют напряжению трансформатора (80,105,130,160,220 Вольт).

Как видно по графику, "рабочая точка" почти попала в желаемые параметры. Ниже в таблице указаны расчётные параметры для пользовательских условий: 

Расчёт всегда для идеальных условий. На практике надо быть готовым к худшим параметрам, чем показывает расчёт. Например, у меня по "теории" сопротивление ~120 Па и рабочая точка, соответственно, должна быть другой. Но замеры приборами показали то, что есть по факту.  Поэтому для "страховки" надо накинуть ~50 Па к теоретическому сопротивлению. 

Расчёт калорифера (подогревателя приточного воздуха).

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

Исходные данные: 

Получаем: 2100 Ватт.

Выбираем из прайсов на 160 мм, к примеру, АРКТОС PB160-2.2 Для управления калорифером нужен регулятор мощности REGIN/D (позволяет держать точно заданную температуру притока, например 18).  терморезистивный датчик к нему TGK-330. Датчик врезается в вентканал после калорифера.

Расчёт увлажнителя (каталитического типа)

Из всех типов увлажнителей только каталитический внушает доверие - по качеству увлажнения, надёжности стационарной работы и санитарной безопасности.

Исходные данные для расчёта необходимой мощности для самого тяжелого режима и, кстати, самого нужного (зимнего):

Расчёт показывает, что требуется испарять 1.8 кг. в час. Из имеющихся на рынке РФ решений выбираем с производительностью 2 кг. в час, и конечно же, имеющий интерфейс RS485 для возможности интеграции в систему УД - Polar bear mini 3m.

Прочие канальные элементы

Фильтр грубой очистки, тонкой очистки, клапан под привод, привод, шумоглушитель, хомуты, решётки  - выбираем под диаметр 160 мм. Я рискнул заказать привод на клапан с aliexpress - работает, есть фишки состояния открытия/закрытия клапана (дополнительно 4 провода). 

Реле давления

Для контроля наличия давления в вентканале потребуется реле давления (для защиты от перегрева калорифера и переувлажнения воздуховодов  в случае останова вентилятора).

Трансформатор

Для управления мощностью работы вентилятора можно использовать 5 ступ. трансформатор с обмотками на 80,105,130,160,220 Вольт.

Вытяжная вентиляция

Её можно не делать, если несколько поднять мощность приточного вентилятора. Тогда за счёт избыточного давления воздух будет уходить в штатные отверстия ЕВ и прочие щели. При этом в комнатах, где есть приток - со свежим воздухом будет более-менее нормально, а вот в других комнатах воздух будет застаиваться.  Чтобы "выровнять" зону чистого воздуха можно поставить вытяжной вентилятор на кухню перед штатной ЕВ. Но этот вытяжной вентилятор должен работать непрерывно и  обладать плавной регулировкой мощности, чтобы не появились проблемы. Вытяжной вент ставить лучше только в кухне, так как именно в кухне бывает много людей.  Если же ставить в санузле, то вент. санузла  будет перетягивать на себя вытяжку  и, соответственно, на кухне будут более застойная зона.

Автоматизация СПУ

Общая схема СПУ

Общий алгоритм СПУ

Программная часть общего алгоритма на стороне ПЛК:

Алгоритм авторегулировки уровня мощности СПУ

На первый взгляд, здесь нужен высокоэффективный PID-регулятор. Однако простой алгоритм прекрасно справляется с авторегулировкой (видно по графику ниже).

Программная часть авторегулировки уровня мощности на стороне ПЛК:

Программная часть на стороне ioBroker:

Предварительно в драйвере flot создаём графики для CO2, Температуры и Влажности и вставляем сгенерированные url-ы в переменные co2_url, hum_url, temp_url. В редакторе VIS создаём страницу с таблицами, графиками, кнопками.

Виджеты для редактора VIS:

Пользовательский Web-интерфейс:

Датчики

На стадии ремонта был предусмотрительно проложен кабель utp5 и сделаны розетки RJ11 для датчиков (2 провода - питание DC 12V, 2 провода - RS485). Если бы не было кабельной разводки, то можно было использовать беспроводной датчик, через шлюз (iobroker), передающий показания в ПЛК.  Но при беспроводном способе, надёжность работы в целом будет объективно ниже. Для прямого подключения к ПЛК можно использовать шину RS485 с протоколом modbus. В моём случае, я собрал комбайн из:

Датчики позволяют менять адрес modbus, поэтому к 1 шине можно подключить несколько таких датчиков. В датчике MH-Z19B адрес изменить невозможно, поэтому в проекте "dacha" через реле происходит коммутация шины RS485, чтобы опрашивать 2 датчика MH-Z19B поочерёдно. Если нет желания возиться - можно купить (будет примерно в 2 раза дороже) готовый датчикокомбайн от WirenBoard (RS485, modbus).

Самодельный комбайн

Оборудование

Вентиляционное оборудование (Приточный, Вытяжно вент, нагреватель, шумоглушитель, автоматика нагревателя, увлажнитель).  Вместо вычеркнутого фильтра грубой очистки, для компактности, лучше использовать "Ультракомпактный фильтр AIRONE FL 160".

2. Защита от протечки (flat)

Техническое задание

Алгоритм

Программная часть на ПЛК:

fluid_bath.txt

Программная часть на ioBroker:  

скрипт для генерации голосовых сообщений, уведомлений в telegram, создания html-таблицы состояния:

 fluid.txt

В редакторе  VIS создаём страницу c элементами:sensors-vis_flat.txt

Web-интерфейс. При закрытии отсекающих кранов по датчикам или вручную - также переключается статус кнопок "Тревога" в положение "On":  

Оборудование

3. Полив (dacha)

Техническое задание

1. Требуется управлять 3 зонами полива:

2. Автоматическое включение насоса после полного открытия отсекающего крана. 

3. Автоматическое отключение насоса после окончания полива.

4. Включать полив по расписанию.

Алгоритм

Программная часть на ПЛК.

poliv-plc.txt

Программная часть на ioBroker.

Для возможности управлять поливом по расписанию использован драйвер ical, использующий "мероприятия" в Google-календаре.  

В google-календаре в своей или специальной УЗ создаём "мероприятия" полива в желаемое время:

Затем, в настройках драйвера ical указываем имена этих "мероприятий":

Важный параметр - частота подгрузки данных с google-календаря - поставлено 5 минут, так как без дополнительно парсинга данных драйвер ical не даёт в виде отдельных объектов время начала и конца "мероприятия". 

Управление поливом по календарю работает через онлайн-статус "мероприятия", который считывается только при подгрузке данных при наличии интернета. Будем считать, что интернет у нас стабильный, так как если "мероприятие" в google-календаре стартануло и нет подключения к интернет - то скрипт не отработает. Каждые 5 минут будет попытка подгрузить данные о статусе, но если в течение всего "мероприятия" интернета так и не было - полив не включится.  При остановке полива по календарю - такие же условия, но только есть защита - максимальное время полива, которое берётся из времени полива при ручном старте. Если календарное время полива меньше ручного/максимального, и при этом интернет работает, фактическое время полива будет соответствовать календарному. Если календарное время превышает ручное/максимальное время полива соответствующей зоны, то время полива будет ограничено (независимо есть интернет или нет) и будет равно установленному ручному/максимальному для этой зоны.     

Скрипты:

 Виджеты для редактора VIS:

 Web-страница:

Оборудование

4. Пожарно-охранная сигнализация (ПОС) (dacha)

Техническое задание   

  1. Оповещение через локальный динамик(сирену) и интернет (почта, телеграмм) при срабатывании ПОС.
  2. Возможность отключения конкретных датчиков.
  3. Ограничение количество оповещений при сработке по каждому датчику (50 раз в сутки).
  4. Журналирование событий, просмотр журнала через web.
  5. Постановка и снятие с охраны через web-интерфейс.

Алгоритм

Так как в алгоритме нет ответвлений, нет смысла представлять графически.

Программная часть на ПЛК.

security-plc.txt

Программная часть на ioBroker.

Скрипт (реагирование на событие) :         

 pir_detect_terrasa.txt 

Скрипт (для журнала событий) :          

create_journal.txt 

Виджеты для редактора VIS:

journal-vis.txt для страницы журнала событий:   

sensors-vis.txt для страницы состояния датчиков:   

Web-страница журнала событий:

Оборудование

7 DI портов ПЛК (3 - PIR-сенсоры, 2 - герконы, 2 - датчики дыма);1 DO порт ПЛК (сирена, регистратор);1 реле Finder (сирена, регистратор);3 PIR-датчика (сухой контакт);2 геркона;2 датчика дыма (сухой контакт).

5. Сбор показаний со счётчиков воды (flat)


Техническое задание

Считывать показания со счётчиков воды с импульсным выходом.        Отображать показание в веб-интерфейсе УД.  Кратковременный сбой подачи э/э. в квартиру не должен приводить к потере информации о показаниях.

Алгоритм

После завершения импульса от счётчика - увеличивать переменную (число), соответствующую данному счётчику.

Программная часть на ПЛК.

counters.txt

Для сохранения значений переменных используем память NOVRAM.

Программная часть на ioBroker.

Виджеты для редактора VIS:

counters-vis.txt

Web-страница:

Оборудование

  • 4 DI порта ПЛК.
  • Источник бесперебойного питания для ПЛК, при необходимости учитывать потребление воды во время долгого отключения э.э. в квартире.

6. Сбор показаний со счётчика электроэнергии Меркурий 230 (dacha)

Техническое задание

Считывать показания со счётчика э.э. Меркурий 230 с интерфейсом RS485/CAN.Отображать показания в веб-интерфейсе УД.

Алгоритм

Считывать данные со счётчика - в случае успешного считывания - присваивать данные соответствующей  переменной.

Программная часть на ПЛК.

Для передачи статистики месячного потребления M1T1,M1T2...M12T1,M12T2 от ПЛК к iobroker  использованы протоколы mqtt и modbus-tcp. Для остальных данных - ADS.

Программная часть на ioBroker.

Скрипт для формирования графиков:   

Скрипт для формирования таблиц с оперативными и историческими данными:   

Виджеты для редактора VIS:

Web-страница:

Оборудование

1 порт ПЛК RS485

7. Сбор показаний со счётчика электроэнергии Меркурий 200 (flat)

Техническое задание

Считывать показания со счётчика э.э. Меркурий 200 с интерфейсом RS485/CAN.Отображать показания в веб-интерфейсе УД.

Алгоритм

Считывать данные со счётчика - в случае успешного считывания - присваивать данные соответствующей переменной.

Программная часть на ПЛК.

Для передачи статистики месячного потребления M1T1,M1T2...M12T1,M12T2 от ПЛК к iobroker  использованы протоколы mqtt и modbus-tcp. Для остальных данных - ADS.

Программная часть на iobroker.

Скрипт для формирования графиков:   

Скрипт для формирования таблиц с оперативными и историческими данными:   

Виджеты для редактора VIS:

Web-страница:

Оборудование

1 порт ПЛК RS485.

8. Отопление (термостат для электрических обогревателей) (dacha)

Техническое задание

По уставке с web-интерфейса поддерживать заданную температуру в определённой комнате.        Отображать текущие показания уставки и график температуры в веб-интерфейсе УД.  Сбой подачи э.э. не должен приводить к потере значений уставки.

Алгоритм

Термостат включает отопительный прибор при опускании температуры ниже уставки минус гистерезис.Термостат отключает отопительный прибор при превышении температуры выше уставки плюс гистерезис.

Программная часть на ПЛК.

Thermostat.txt

Для сохранения значений уставок используем память NOVRAM.

Программная часть на iobroker.

Скрипт конвертации данных:   

parse_sensors_values.txt

Скрипт генерации url для графиков:   

chart_urls.txt

Скрипт обработки уставок:   

set_temperature.txt

Скрипт создания таблицы оперативных данных:   

climate_table_dacha.txt

Виджеты для редактора VIS:

climate-vis_dacha.txt

Web-страница:

Оборудование

4 AI порта ПЛК (для 4-х температурных датчика PT1000);4 датчика PT1000;4 DO порта ПЛК (на катушку силового реле);4 реле finder  (для коммутации силовых цепей).


Как я ждал этот материал, отличная работал =) 

Целая дипломная работа)

Охренеть



https://sprut.ai/static/media/cache/00/00/94/5/1646991/45043/1000x_image.jpg?1570732245" alt="1000x_image.jpg?1570732245" />https://sprut.ai/static/media/cache/00/00/94/5/1646991/45044/1000x_image.jpg?1570732246" alt="1000x_image.jpg?1570732246" />https://sprut.ai/static/media/cache/00/00/94/5/1646991/45045/1000x_image.jpg?1570732251" alt="1000x_image.jpg?1570732251" />

отличная работа, Хочу добавить очень надёжный ПЛК в прошлом году проект сделал заказчику на базе Beckhoff, в качестве Scada система исп ПО indusoft , за год никаких проблем, клиент доволен,  


спасибо за фото. "Причесать"  красиво очень трудно когда места меньше чем надо...

Среда программирования и библиотеки для beckhoff входят в стоимость б.у. контроллера с ebay?

Если ПЛК идёт с Run-Time Twincat 2, не важно новый или б.у.  (видно по полному коду продукта) то среда программирования  бесплатна.

Библиотек кроме ADS в новом не будет, а в б/у есть очень высокая вероятность что будет установлено как минимум modbus-tcp.

Супер работа. Картинки с алгоритмами плохо читаются. Где взять качеством повыше?

Выложу чуть позже на github

В формате мс визио пусть будут конечно, но можно все таки в общедоступном? Pdf или jpeg какой нибудь... просто чуть более качественном режиме чем в статье

ok.  через 1-2 дня будут.

Там же.

Грамотный подход! Очень полезная статья. Особенно описанием подхода к проектированию УД. Очень многим начинающим Умнодомостроителям не хватает терпения, желания, а иногда и знаний на осмысление цели. 

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

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

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

Очень интересная статья! Спасибо!

Круто! Спасибо за статью

Спасибо за статью! Вы молодец!

Крутецкая статья! Огромное спасибо автору



https://sprut.ai/static/media/cache/00/49/89/5/3167975/53288/1000x_image.jpg?1583960294" alt="1000x_image.jpg?1583960294" />...а я со своим CX8080 всё никак не могу ADS на Node Red прикрутить. А тут ТАКОЕ...

Добрый день! Я ищу специалиста, который сможет спроектировать систему умный дом на базе ПЛК. Сценарии автоматизации стандартные (тепло, свет, кондиционирование, слаботочка). Объект территориально в г Москва. Со мной можно связаться по адресу lawalliancemsk@gmail.com
Спасибо за внимание!


Добрый день! у меня cx9010 с com-портом RS-232, можно ли его прикрутить к iobroker или к опенхаб? и как это сделать? может ли кто-нить мне помочь?

cx9010 проще соединять с iobroker-ом через ethernet. В статье же всё написано. Что конкретно не понятно - можете спросить здесь по iobroker-у:
https://t.me/iobroker">https://t.me/iobroker


Вернуться назад
Вернуться назад