Статті бази ▾ ← Усі бази знань
Автоматика 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 дозволяє об'єднувати кілька пристроїв у єдину мережу, де вони працюють як одна система.

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


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

Це — практичний посібник з побудови розподілених систем автоматизації на базі oCBot.

ТУТ НЕ БУДЕ#

ТУТ БУДЕ#

Важливо

Ключова думка цього тексту: Мультиконтролерність дозволяє будувати масштабовані системи: від маленького дистилятора на кухні до повноцінного міні-спиртзаводу або ферми. Контролери працюють разом, але кожен може виконувати власне завдання.


Що таке мультиконтролерність?#

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

Навіщо це потрібно?#

Ситуація Рішення з одним контролером Рішення з кількома контролерами
Багато давачів Тягнути довгі дроти до одного місця Розмістити контролери біля джерел даних
Різні приміщення Прокладати кабелі через стіни Кожен контролер працює у своєму приміщенні
Складні процеси Один контролер перевантажений Розподіл завдань між контролерами
Резервування Якщо контролер зламався — усе зупиняється Інші контролери можуть взяти частину функцій
Розширення Потрібно купувати новий потужний контролер Додаєте ще один контролер до мережі

Як контролери спілкуються?#

Мережева архітектура#

Контролери oCBot об'єднуються в локальну мережу через Wi-Fi. Вони спілкуються напряму без затримок через WebSockets та MQTT.

┌─────────────────────────────────────────────────────────────────┐
│                          ЛОКАЛЬНА МЕРЕЖА                        │
│                                                                 │
│   ┌──────────────┐     WebSocket      ┌──────────────┐          │
│   │ Контролер 1  │◄──────────────────►│ Контролер 2  │          │
│   │   (ESP32)    │                    │   (ESP32)    │          │
│   └──────────────┘                    └──────────────┘          │
│          │                                   │                  │
│          │                                   │                  │
│          ▼                                   ▼                  │
│   ┌──────────────┐                    ┌──────────────┐          │
│   │  Периферія   │                    │  Периферія   │          │
│   │   (давачі,   │                    │   (давачі,   │          │
│   │   клапани)   │                    │   клапани)   │          │
│   └──────────────┘                    └──────────────┘          │
│          │                                   │                  │
│          ▲                                   ▲                  │
│          │               MQTT                │                  │
│          ▼                                   ▼                  │
│   ┌──────────────────────────────────────────────────┐          │
│   │             Портал UA Distillery                 │          │
│   │                (хмарний хаб)                     │          │
│   └──────────────────────────────────────────────────┘          │
└─────────────────────────────────────────────────────────────────┘

Три способи взаємодії#

Спосіб Опис Затримка Залежність
WebSocket (локальний) Прямий зв'язок між контролерами Мілісекунди Локальна мережа
MQTT (локальний брокер) Обмін через локальний MQTT-брокер Секунди Локальний брокер
MQTT (хмарний) Обмін через портал UA Distillery Секунди-хвилини Інтернет, портал

Режими взаємодії#

1. Master - Slave (Ведучий / Ведений)#

Один контролер (Master) виконує роль "диригента". Він запускає глобальний сценарій, опитує давачі та надсилає команди іншим контролерам (Slave).

Як це працює:

  1. Master запускає сценарій.
  2. Master опитує свої давачі та отримує дані від Slave.
  3. Master приймає рішення та надсилає команди.
  4. Slave виконують команди: вмикають нагрів, відкривають клапани тощо.

Приклад: Двоконтурна система дистиляції

Контролер Роль Завдання
Master Ведучий Керує ТЕНом, клапаном відбору, збирає дані з усіх давачів
Slave 1 Ведений (охолодження) Керує помпою охолодження, вентилятором градирні
Slave 2 Ведений (безпека) Контролює протікання, ТСА, рівень води

Переваги:


2. Автономні клієнти безпеки#

Контролери працюють незалежно, але обмінюються сигналами про аварійні ситуації.

Як це працює:

  1. Кожен контролер виконує власне завдання (тепличний контроль, дистиляція тощо).
  2. Якщо один контролер виявляє аварію (протікання, перегрів) — він надсилає широкомовний сигнал у мережу.
  3. Інші контролери отримують сигнал і виконують захисні дії (вимикають нагрів, закривають клапани).

Приклад: Система безпеки ферми

Контролер Завдання Аварійний сигнал
Контролер 1 Керування теплицею Перевищення температури > 40°C
Контролер 2 Керування інкубатором Протікання води на підлозі
Контролер 3 Керування опаленням Відсутність газу/електроенергії

Переваги:


3. Розподілена оркестрація#

Контролери працюють як єдина система, де кожен відповідає за свою частину процесу.

Як це працює:

  1. Кожен контролер виконує частину загального сценарію.
  2. Контролери обмінюються даними в реальному часі.
  3. Рішення приймаються колективно, без єдиного "диригента".

Приклад: Автоматизована пивоварня

Контролер Завдання Взаємодія
Контролер 1 Керує затиранням Передає температуру затору Контролеру 2
Контролер 2 Керує фільтрацією Отримує сигнал про завершення затирання
Контролер 3 Керує охолодженням Отримує сигнал про готовність сусла

Переваги:


Приклади реальних систем#

Приклад 1: Двоконтурна дистиляційна система#

┌─────────────────────────────────────────────────────────────────┐
│                      КОНТРОЛЕР 1 (MASTER)                       │
│                      (Гараж / Дистиляція)                       │
│ ┌──────────────────────────────────────────────────────┐        │
│ │ - Керує ТЕНом куба (SSR)                             │        │
│ │ - Керує клапаном відбору                            │        │
│ │ - Опитує давачі: куб, колона, дефлегматор            │        │
│ │ - Запускає сценарій ректифікації                    │        │
│ └──────────────────────────────────────────────────────┘        │
│                            │ MQTT                               │
├────────────────────────────┼────────────────────────────────────┤
│                            ▼                                    │
│ ┌──────────────────────────────────────────────────────┐        │
│ │                      КОНТРОЛЕР 2 (SLAVE)             │        │
│ │                     (Вулиця / Охолодження)           │        │
│ │ - Керує помпою охолодження                           │        │
│ │ - Керує вентилятором градирні                        │        │
│ │ - Контролює температуру води на вході/виході         │        │
│ │ - При перегріві води — збільшує швидкість вент.      │        │
│ └──────────────────────────────────────────────────────┘        │
└─────────────────────────────────────────────────────────────────┘

Як це працює:

  1. Контролер 1 запускає сценарій дистиляції.
  2. При досягненні температури 80°C Контролер 1 надсилає команду Контролеру 2: "Ввімкнути охолодження на 100%".
  3. Контролер 2 вмикає помпу та вентилятор.
  4. Якщо температура води на виході перевищує 40°C, Контролер 2 повідомляє Контролеру 1: "Зменшити потужність нагріву до 80%".
  5. Процес триває синхронно.

Приклад 2: Ферма з розподіленим контролем#

┌─────────────────────────────────────────────────────────────────┐
│                           КОНТРОЛЕР 1                           │
│                           (Теплиця 1)                           │
│ - Температура 25°C днем / 18°C вночі                            │
│ - Полив 2 рази на день по 15 хв                                 │
│ - Вентиляція при 28°C                                           │
└──────────────────────────┬──────────────────────────────────────┘
                           │ MQTT
┌──────────────────────────┼──────────────────────────────────────┐
│                           КОНТРОЛЕР 2                           │
│                           (Теплиця 2)                           │
│ - Температура 26°C днем / 19°C вночі                            │
│ - Полив 1 раз на день по 30 хв                                  │
│ - Вентиляція при 30°C                                           │
└──────────────────────────┼──────────────────────────────────────┘
                           │ MQTT
┌──────────────────────────┼──────────────────────────────────────┐
│                           КОНТРОЛЕР 3                           │
│                         (Безпека ферми)                         │
│ - Контроль протікання води (3 давачі)                           │
│ - Контроль перегріву (ТСА)                                      │
│ - При аварії — широкомовний сигнал усім контролерам             │
└──────────────────────────┼──────────────────────────────────────┘
                           │ MQTT
┌──────────────────────────┼──────────────────────────────────────┐
│                           КОНТРОЛЕР 4                           │
│                           (Інкубатор)                           │
│ - Температура 37.5°C                                            │
│ - Вологість 60%                                                 │
│ - Перевертання яєць кожні 2 години                              │
└─────────────────────────────────────────────────────────────────┘

Як це працює:

  1. Кожен контролер працює автономно, виконуючи власне завдання.
  2. Контролер 3 (безпека) постійно моніторить стан.
  3. Якщо Контролер 3 виявляє протікання води — він надсилає сигнал усім контролерам.
  4. Контролери 1, 2, 4 отримують сигнал і вимикають всі насоси та клапани.
  5. Оператор отримує сповіщення через портал UA Distillery.

Приклад 3: Мікро-спиртзавод#

┌─────────────────────────────────────────────────────────────────┐
│                       КОНТРОЛЕР 1 (MASTER)                      │
│                          (Основний цех)                         │
│ - Керує 2-ма дистиляційними кубами                              │
│ - Керує ректифікаційною колоною                                 │
│ - Опитує 12 давачів температури                                 │
└──────────────────────────┬──────────────────────────────────────┘
                           │ MQTT
┌──────────────────────────┼──────────────────────────────────────┐
│                       КОНТРОЛЕР 2 (SLAVE)                       │
│                            (Котельня)                           │
│ - Керує котлом опалення                                         │
│ - Контролює тиск пари                                           │
│ - Керує подачею газу                                            │
└──────────────────────────┼──────────────────────────────────────┘
                           │ MQTT
┌──────────────────────────┼──────────────────────────────────────┐
│                       КОНТРОЛЕР 3 (SLAVE)                       │
│                          (Охолодження)                          │
│ - Керує градирнею                                               │
│ - Контролює температуру води                                    │
│ - Керує насосами                                                │
└──────────────────────────┼──────────────────────────────────────┘
                           │ MQTT
┌──────────────────────────┼──────────────────────────────────────┐
│                       КОНТРОЛЕР 4 (SLAVE)                       │
│                    (Склад готової продукції)                    │
│ - Контролює температуру в складі                                │
│ - Контролює вологість                                           │
│ - Керує охолодженням                                            │
└─────────────────────────────────────────────────────────────────┘

Портал UA Distillery як центр керування#

При підключенні до порталу UA Distillery ви отримуєте єдину точку керування всіма контролерами:

Що дає портал:#

Функція Опис
Єдина панель управління Бачите стан усіх контролерів на одному екрані
Історія та логи Всі дані з усіх контролерів зберігаються в одному місці
Аналітика Графіки та тренди для будь-якого періоду
Сповіщення Отримуєте сповіщення про аварії з будь-якого контролера
Віддалений доступ Керуєте системою з будь-якої точки світу (за бажанням)
Обмін сценаріями Ділитеся вдалими налаштуваннями з іншими користувачами

Переваги мультиконтролерності#

Перевага Як це працює
Масштабованість Додаєте нові контролери в міру зростання господарства
Відмовостійкість Якщо один контролер виходить з ладу — інші продовжують роботу
Розподіл навантаження Кожен контролер виконує свою частину роботи, не перевантажуючись
Мінімум дротів Контролери розміщуються біля джерел даних, дроти не тягнуться через усе приміщення
Гнучкість Можна змінювати конфігурацію системи без зупинки процесу
Локальна робота Система працює навіть без інтернету — тільки локальна мережа

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

Скільки контролерів можна об'єднати в одну мережу? expand_more

Кількість необмежена. Усе залежить від вашої локальної мережі.

Чи потрібен інтернет для роботи мультиконтролерної системи? expand_more

Ні. Контролери спілкуються через локальну Wi-Fi мережу. Інтернет потрібен лише для використання порталу UA Distillery.

Чи можна керувати всіма контролерами з одного веб-інтерфейсу? expand_more

Так, через портал UA Distillery ви бачите всі контролери на одній панелі. Також можна відкривати веб-інтерфейс кожного контролера окремо.

Як контролери синхронізують час? expand_more

Контролери синхронізуються з локальним NTP-сервером або через MQTT-брокер. Час використовується для таймерів та журналу подій.

Що робити, якщо Master контролер вийшов з ладу? expand_more

У системах з оркестрацією Master може бути замінений іншим контролером. У режимі Master-Slave потрібно або відновити Master, або призначити нового Master.

Чи можна об'єднати контролери різних поколінь? expand_more

Так, oCBot сумісний з різними версіями контролерів. Усі вони працюють за однаковими протоколами.


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

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

  1. Архітектура та опис — загальна структура прошивки oCBot.

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