Статті бази ▾ ← Усі бази знань
Автоматика oCBot
Концепція та філософія12 Ласкаво просимо до екосистеми oCBotЗвідки взявся oCBotІдеологія oCBotСфери призначення та режими роботиПериферійні пристроїСвобода периферіїБазові скрипти автоматизаціїВіртуальні панелі оператораСкладні сценарії та логіка автоматизаціїМультиконтролерністьЗагальний огляд автоматики oCBotАрхітектура та опис
Підтримувані контролери18 Контролер Kincony KC868-A6Підключення живлення й USB на KC868-A6Реле й аналогові виходи KC868-A6Сухі контакти й аналогові входи KC868-A6Шини й роз'єми KC868-A6: RS485, I2C, 1-Wire і рештаЩо зайнято на ESP32 у KC868-A6: карта GPIOЯк зібрати щиток на KC868-A6Як прогнати сценарії без куба: тестовий стенд для KC868-A6Контролер Kincony KC868-A16Підключення живлення й USB на KC868-A16Силові виходи KC868-A16: MOSFET замість релеСухі контакти й аналогові входи KC868-A16Шини й мережа KC868-A16: Ethernet, RS485, I2C, 1-WireЩо зайнято на ESP32 у KC868-A16: карта GPIOЯк зібрати щиток на KC868-A16Як прогнати сценарії без куба: тестовий стенд для KC868-A16Контролер WT32-ETH01Універсальний ESP32 DevKit (Custom)
Каталог периферійних пристроїв9 Датчики температуриДатчики тискуДатчики рівня рідиниДатчики потоку (витратоміри)Виконавчі механізми (Клапани, Насоси, ТЕНи)Датчики середовища (Вологість, Світло, Тиск)Датчики електричні та вагиОргани керування (Кнопки, Енкодери)Електродвигуни та вентилятори
Складання та Перший запуск (DIY)20 Збирання контролера oCBot своїми рукамиПервинне прошивання та запуск контролераШвидке підключення Wi-Fi через BluetoothПідключення ТЕНів та регуляторів потужностіВибір та підключення електромагнітних клапанівКілька плат PCA9685 на одній шиніПін OE — апаратне зняття всіх виходівПлата PCA9685 зблизька — що на ній є і навіщоПлата розширення PCA9685 — 16 каналів ШІМСервопривід і плата розширення — чому це не працюєТвердотілки на платі розширенняПідключення LCD та OLED дисплеїв по шині I2CДвигун і частотний перетворювач: силове підключенняПромисловий протокол RS485 (Modbus RTU)Частотник AE200 (Yingshida) по Modbus: клеми, параметри й регістр завдання частотиЧастотник CFM310 по Modbus: панель RS485, сервісне меню і три регістриЧастотник Ennera FCE по Modbus: налаштування і діагностикаЧастотник без Modbus (900E): пуск реле й оберти 0–10 ВКалібрування ваг на тензодатчиках (HX711)Усунення типових несправностей
Робота з веб-інтерфейсом17 Головна сторінка (Home)Діаграма процесу (Flow)Сценарії автоматизаціїРедактор скриптівПульти оператораДизайнер пультів HMI DesignerПериферіяПлати та шиниЗагальні налаштуванняОбладнанняТочки монтажуНалаштування графіківОновлення прошивкиНалаштування Wi-FiЛогиПорталПро програму
Написання сценаріїв (C++ Скрипти)10 Огляд скриптівМій перший сценарій: Крок за крокомШІМ-відбір: Як налаштувати клапан правильноНалаштування ПІД-регулятора для стабілізаціїАвтоматизація температурних пауз при затиранні солодуСкрипт ББКРегулювання тискуРозрахунок ABV за температурою париСкрипт «Розрахунок ABV»ABV у сценаріях
Безпека, Хмара та Інтеграція5 Система безпеки oCBot: Захист від аварійСтворення хмарного кабінету UA DistilleryЯк опублікувати звіт про перегонкуШеринг кастомних пультів оператора (HMI)Інтеграція з Home Assistant та MQTT
База знаньАвтоматика oCBotКонцепція та філософія

Складні сценарії та логіка автоматизації

Як об'єднувати базові скрипти в багатокрокові процеси?

Окремі скрипти — це "цеглинки" автоматизації. Але справжня сила oCBot розкривається, коли ви об'єднуєте їх у складні сценарії — багатокрокові процеси з умовними переходами, які виконуються автоматично.

Ця стаття — про те, як створюються складні сценарії в oCBot, як вони працюють та як їх використовувати для автоматизації будь-яких господарських процесів.


Про що ця стаття#

Це — практичний посібник зі створення багатокрокових сценаріїв автоматизації.

ТУТ НЕ БУДЕ#

ТУТ БУДЕ#

Важливо

Ключова думка цього тексту: Сценарій — це послідовність кроків, кожен з яких містить дії та умови переходу до наступного кроку. Ви будуєте логіку процесу так, як вважаєте за потрібне. Система виконує її автоматично.


Що таке сценарій?#

Сценарій — це послідовність кроків, об'єднаних у логічний процес. Кожен крок містить:

  1. Назву кроку — що відбувається на цьому етапі.
  2. Дії (Outputs) — що робить система на цьому кроці (потужність нагріву, стан клапанів).
  3. Умови переходу (Transitions) — за яких умов переходити до наступного кроку.

Як це працює?#

Сценарій виконується в реальному часі як скінченний автомат (State Machine):

  1. На кожному кроці контролер встановлює задані значення для виходів.
  2. Постійно перевіряє логічні умови переходу.
  3. У разі виконання умови — переходить до наступного кроку.
Крок 1 → (умова) → Крок 2 → (умова) → Крок 3 → ... → Крок N (кінцевий)
Нотатка

Сценарій не знає, як гріти, мішати чи тримати рівень. Це знають скрипти. Сценарій лише каже скрипту, на які параметри вийти на цьому кроці: «термостат — 62 °C, мішалка — 30 Гц». Такий поділ називається оркестрацією, і саме він дозволяє одному сценарію керувати скриптами на кількох контролерах.


Анатомія кроку сценарію#

1. Назва кроку#

Короткий текстовий опис дії.

Приклади:

2. Дії (Outputs)#

Що потрібно ввімкнути/вимкнути або налаштувати на цьому кроці.

Тип дії Опис Приклад
Потужність нагріву Задає потужність у % або Вт "Нагрів: 100%"
Стан клапана Відкрито/закрито/ШІМ "Клапан відбору: Закритий"
Керування насосом Ввімкнено/вимкнено "Насос охолодження: Ввімкнено"
Сигналізація Звук, світло, сповіщення "Світлодіод: Блимає"

3. Умови переходу (Transitions)#

Логічні вирази, які визначають, коли переходити до наступного кроку.

Тип умови Опис Приклад
Температура Перевищення заданого значення T_cube > 80.0
Час Минуло заданий час Time > 1800 (30 хвилин)
Об'єм Відібрано заданий об'єм V_collected > 300 (мл)
Кнопка Натиснуто фізичну кнопку Button_1 == Pressed
Рівень Досягнуто заданого рівня Level > 80%
Комбіновані умови Поєднання кількох умов T_cube > 93 AND Time > 600

Створення сценарію в інтерфейсі#

Крок 1: Перейдіть у розділ "Сценарії"#

У веб-інтерфейсі oCBot відкрийте розділ "Сценарії" та натисніть "Створити новий сценарій".

Крок 2: Додайте назву та опис#

Дайте сценарію назву (наприклад, "Ректифікація цукрової браги") та короткий опис.

Крок 3: Додайте кроки#

Для кожного кроку:

  1. Введіть назву кроку.
  2. Встановіть дії (нагрів, клапани, насоси).
  3. Додайте умови переходу до наступного кроку.

Крок 4: Збережіть та запустіть#

Збережіть сценарій. Він з'явиться в списку доступних. Натисніть "Запустити", щоб почати виконання.


Приклад простого сценарію (дистиляція)#

Ось як виглядає логічна схема простого процесу дистиляції:

Крок 1: Розігрів куба#

Крок 2: Стабілізація колони#

Крок 3: Відбір "голів"#

Крок 4: Відбір "тіла" (Старт-Стоп)#

Крок 5: Завершення#


Приклад складного сценарію (ректифікація)#

graph TD
    Start[Розігрів куба] -->|T_куба >= 70C| Stabil[Стабілізація колони]
    Stabil -->|Час > 30 хв AND Стабільна T| Heads[Відбір голів]
    Heads -->|Відібрано заданий об'єм| Body[Відбір тіла]
    Body -->|T_колони піднялася на 0.2C| Stop[Старт-стоп: пауза відбору]
    Stop -->|T_повернулася в норму| Body
    Body -->|T_куба >= 93C OR Кількість стопів > 5| Tails[Відбір хвостів]
    Tails -->|T_куба >= 98C| Finish[Завершення]

Пояснення кроків:#

Крок Дії Умови переходу
Розігрів куба Нагрів 100%, клапан закритий T_куба >= 70°C
Стабілізація Нагрів 50%, клапан закритий Час > 30 хв AND Стабільна T (<0.05°C/хв)
Відбір голів Нагрів 50%, ШІМ 10% Відібрано заданий об'єм
Відбір тіла Нагрів 55%, ШІМ Старт-Стоп T_куба >= 93°C OR кількість стопів > 5
Відбір хвостів Нагрів 50%, клапан відкритий T_куба >= 98°C
Завершення Нагрів 0%, клапан закритий Кінцевий стан

Приклад сценарію для пивоваріння (затирання)#

Пояснення кроків:#

Крок Дії Умови переходу
Нагрів до 45°C Нагрів 100%, мішалка ввімкнена T >= 45°C
Білкова пауза Нагрів 30% (підтримання), мішалка ввімкнена Час >= 20 хв
Нагрів до 63°C Нагрів 100%, мішалка ввімкнена T >= 63°C
Мальтозна пауза Нагрів 30%, мішалка ввімкнена Час >= 60 хв
Нагрів до 72°C Нагрів 100%, мішалка ввімкнена T >= 72°C
Оцукрення Нагрів 30%, мішалка ввімкнена Час >= 30 хв
Нагрів до 78°C Нагрів 100%, мішалка ввімкнена T >= 78°C
Mash-out Нагрів вимкнено, мішалка ввімкнена Кінцевий стан

Приклад сценарію для теплиці#

Пояснення кроків:#

Крок Дії Умови переходу
Денний режим T = 25°C, полив за графіком, вентиляція при 28°C Час >= 18:00
Нічний режим T = 18°C, полив вимкнено Час >= 06:00
Вентиляція Ввімкнення вентилятора T < 25°C
Полив Ввімкнення поливу на 15 хв Час поливу завершено

Використання фізичних кнопок у сценаріях#

Завдяки підтримці кнопок (ST_BUTTON) ви можете налаштовувати сценарії так, щоб перехід на складні етапи відбувався лише після фізичного підтвердження.

Приклад: Перехід від голів до тіла#

Крок 3: Відбір "голів"
    Дії:
        - Нагрів: 50%
        - Клапан відбору: ШІМ 10%
    Умови переходу:
        - Button_Next == Pressed → перехід на Крок 4

Чому це важливо?


Система безпеки сценаріїв#

Незалежно від того, яка логіка описана в поточному кроці, фоновий потік безпеки постійно контролює ліміти.

Аварія живе в периферії, а не в сценарії#

У більшості автоматик аварія описується всередині сценарію: процес у якомусь стані викликає аварію, і вона існує лише там. В oCBot джерело аварії — периферія. У налаштуваннях пристрою вмикається дозвіл викликати аварію, і після цього в скриптах та сценаріях, у розділі безпеки, цей пристрій можна взяти як умову: периферія → показ → залежність → результат.

Датчик не мусить бути дотичним до сценарію. Класичний приклад: термометр у «папузі» на виході продукту. Якщо температура спирту піднялась вище 50 °C, це не ректифікація, а зникле охолодження — не було води, не спрацював клапан, не качає насос, злетів шланг. Контролер жодну з цих причин як аварію не бачить, а спирт гарячою парою іде в приміщення. Термометр на виході, доданий як умова аварії, зупиняє процес незалежно від кроку.

Другий механізм у тому ж блоці — блокування. Датчик рівня, який бачить непокриті ТЕНи, блокує їх увімкнення. Так само можна блокувати двигуни, насоси й будь-яку іншу силову частину, вибірково: поки показ датчика каже, що вмикати не можна, ви це не ввімкнете ні зі сценарію, ні з пульта. Налаштування забирає трохи часу, зате критичних ситуацій стає менше.

Автоматичні аварійні переривання#

Умова Дія
Перевищення температури ТСА Негайна зупинка сценарію
Спрацювання давача протікання Вимкнення нагріву та води
Відсутність потоку охолодження Вимкнення нагріву
Перевищення тиску Відкриття аварійного клапана

Аварійний крок#

При спрацюванні будь-якої з умов безпеки виконання негайно зупиняється з переходом в аварійний крок EMERGENCY_SHUTDOWN:

Крок EMERGENCY_SHUTDOWN:
    Дії:
        - Нагрів: 0%
        - Всі клапани: Закриті
        - Світлодіод: ЧЕРВОНИЙ (аварія)
        - Зумер: Ввімкнено
    Умова переходу:
        - Відсутня (очікує ручного скидання)

Комбінування скриптів у сценаріях#

Сценарії використовують ті самі базові скрипти, які ви вже знаєте. Різниця в тому, що ви об'єднуєте їх у послідовність.

Базовий скрипт Використання в сценарії
Термостат Підтримання температури на кожному кроці
Керування нагрівом Плавне регулювання потужності
Рівень води Контроль наповнення куба
Розрахунок ABV Визначення моменту переходу до хвостів
Перемішування Робота мішалки на певних кроках
Розклад Перемикання режимів за часом

Часті запитання (FAQ)#

Що таке сценарій? expand_more

Сценарій — це послідовність кроків, кожен з яких містить дії (що робити) та умови переходу (когда переходити до наступного кроку).

Чи потрібно вміти програмувати для створення сценаріїв? expand_more

Ні. Сценарії створюються через веб-інтерфейс шляхом додавання кроків, вибору дій та налаштування умов переходу.

Скільки кроків може містити сценарій? expand_more

Кількість кроків необмежена. Ви можете створити як простий сценарій із 3-4 кроків, так і складний із десятками кроків.

Чи можна змінювати сценарій під час його виконання? expand_more

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

Що робити, якщо сценарій зупинився через аварію? expand_more

Усуньте причину аварії (перегрів, протікання тощо), потім натисніть "Скинути аварію" та "Продовжити".

Чи можна зберегти сценарій для використання іншим користувачем? expand_more

Так, сценарії можна експортувати у файл та імпортувати на інший контролер.


Що далі? (Навігація по базі знань)#

Тепер, коли ви знаєте про створення складних сценаріїв, ви можете перейти до наступного розділу:

  1. Мультиконтролерність та мережева синхронізація — як об'єднати кілька контролерів в єдину систему.

Запрошення до діалогу: У вас є процес, який ви хочете автоматизувати, але не знаєте, як побудувати сценарій? Напишіть нам — ми допоможемо створити логіку та налаштувати переходи.