Статті бази ▾ ← Усі бази знань
Автоматика oCBot
Концепція та філософія11 Ласкаво просимо до екосистеми oCBotІдеологія oCBotСфери призначення та режими роботиПериферійні пристроїСвобода периферіїБазові скрипти автоматизаціїВіртуальні панелі оператораСкладні сценарії та логіка автоматизаціїМультиконтролерністьЗагальний огляд автоматики oCBotАрхітектура та опис
Підтримувані контролери4 Контролер Kincony KC868-A6Контролер Kincony KC868-A16Контролер WT32-ETH01Універсальний ESP32 DevKit (Custom)
Каталог периферійних пристроїв9 Датчики температуриДатчики тискуДатчики рівня рідиниДатчики потоку (витратоміри)Виконавчі механізми (Клапани, Насоси, ТЕНи)Датчики середовища (Вологість, Світло, Тиск)Датчики електричні та вагиОргани керування (Кнопки, Енкодери)Електродвигуни та вентилятори
Складання та Перший запуск (DIY)9 Збирання контролера oCBot своїми рукамиПервинне прошивання та запуск контролераШвидке підключення Wi-Fi через BluetoothПідключення ТЕНів та регуляторів потужностіВибір та підключення електромагнітних клапанівПідключення LCD та OLED дисплеїв по шині I2CПромисловий протокол RS485 (Modbus RTU)Калібрування ваг на тензодатчиках (HX711)Усунення типових несправностей
Робота з веб-інтерфейсом17 Головна сторінка (Home)Діаграма процесу (Flow)Сценарії автоматизаціїРедактор скриптівПульти оператораДизайнер пультів HMI DesignerПериферіяПлати та шиниЗагальні налаштуванняОбладнанняТочки монтажуНалаштування графіківОновлення прошивкиНалаштування Wi-FiЛогиПорталПро програму
Написання сценаріїв (C++ Скрипти)7 Огляд скриптівМій перший сценарій: Крок за крокомШІМ-відбір: Як налаштувати клапан правильноНалаштування ПІД-регулятора для стабілізаціїАвтоматизація температурних пауз при затиранні солодуСкрипт ББКРегулювання тиску
Безпека, Хмара та Інтеграція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 (кінцевий)

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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