Статті бази ▾ ← Усі бази знань
Автоматика oCBot
Концепція та філософія12 Ласкаво просимо до екосистеми oCBotЗвідки взявся oCBotІдеологія oCBotСфери призначення та режими роботиПериферійні пристроїСвобода периферіїБазові скрипти автоматизаціїВіртуальні панелі оператораСкладні сценарії та логіка автоматизаціїМультиконтролерністьЗагальний огляд автоматики oCBotАрхітектура та опис
Підтримувані контролери20 Контролер Kincony KC868-A6Підключення живлення й USB на KC868-A6Реле й аналогові виходи KC868-A6Сухі контакти й аналогові входи KC868-A6Твердотілка, драйвер помпи й датчики: підключення до колодки DA/IOШини й роз'єми KC868-A6: RS485, I2C, 1-Wire і рештаЩо зайнято на ESP32 у KC868-A6: карта GPIOЯк зібрати щиток на KC868-A6Як прогнати сценарії без куба: тестовий стенд для KC868-A6Контролер Kincony KC868-A16Підключення живлення й USB на KC868-A16Проміжне реле й контактор АСКО-УКРЕМ на 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)26 Збирання контролера oCBot своїми рукамиПервинне прошивання та запуск контролераШвидке підключення Wi-Fi через BluetoothПідключення ТЕНів та регуляторів потужностіВибір та підключення електромагнітних клапанівКілька плат PCA9685 на одній шиніПін OE — апаратне зняття всіх виходівПлата PCA9685 зблизька — що на ній є і навіщоПлата розширення PCA9685 — 16 каналів ШІМСервопривід на платі PCA9685 — режим 50 ГцТвердотілки на платі розширенняПідключення LCD та OLED дисплеїв по шині I2CДвигун і частотний перетворювач: силове підключенняПроводка датчиків DS18B20: чому зникають показанняПромисловий протокол RS485 (Modbus RTU)Термометри стартового комплекту: ланцюжок на M12 і ящик з нержавійкиЧастотник AE200 (Yingshida) по Modbus: клеми, параметри й регістр завдання частотиЧастотник CFM310 по Modbus: панель RS485, сервісне меню і три регістриЧастотник Ennera FCE по Modbus: налаштування і діагностикаЧастотник без Modbus (900E): пуск реле й оберти 0–10 ВШина RS485 на кілька пристроїв: шлейф, термінатори, адресиВаги на тензодатчиках (NAU7802)Роз'єми M12: кодування A, B, D, X і кількість контактівРоз'єми M12: трійники, вилки, гнізда і заглушкиРоз'єми M12: чим захистити від води — корпус, кабель, IPУсунення типових несправностей
Робота з веб-інтерфейсом17 Головна сторінка (Home)Діаграма процесу (Flow)Сценарії автоматизаціїРедактор скриптівПульти оператораДизайнер пультів HMI DesignerПериферіяПлати та шиниЗагальні налаштуванняОбладнанняТочки монтажуНалаштування графіківОновлення прошивкиНалаштування Wi-FiЛогиПорталПро програму
Написання сценаріїв (C++ Скрипти)10 Огляд скриптівМій перший сценарій: Крок за крокомШІМ-відбір: Як налаштувати клапан правильноНалаштування ПІД-регулятора для стабілізаціїАвтоматизація температурних пауз при затиранні солодуСкрипт ББКРегулювання тискуРозрахунок ABV за температурою париСкрипт «Розрахунок ABV»ABV у сценаріях
Безпека, Хмара та Інтеграція5 Система безпеки oCBot: Захист від аварійСтворення хмарного кабінету UA DistilleryЯк опублікувати звіт про перегонкуШеринг кастомних пультів оператора (HMI)Інтеграція з Home Assistant та MQTT
Сценарії5
ББК5 Сценарій ББК: що робить автоматика і де вона чекає на васББК: залізо й прив'язки — без чого сценарій не стартуєББК: параметри за етапами — що означає кожен і як обратиББК: перший запуск — спочатку на воді, потім брагаББК: аварії — що написано на картці, чому і що робити

Термометри стартового комплекту: ланцюжок на M12 і ящик з нержавійки

Написано для прошивки 0.2.183 (коміт ad9ce51) · порталу 0.0.206Можливо, застаріло: поточна прошивка 0.2.205, поточний портал 0.0.234

У стартовому комплекті малого апарата термометри приходять не жмутом кабелів, а готовими вузлами: зонд у гільзі, короткий хвіст, литий роз'єм M12. Ви вмикаєте їх у трійники на двох магістралях, і прошивка вже знає, де куб, а де царга. Щоб так і лишалось, треба знати три речі. Вузол можна переставити в межах свого ланцюжка, а в чужий не можна, бо прошивка його загубить. Метровий кабель зонда вкорочують, а не змотують. Роз'єм клапана на ящику інший, ніж роз'єми датчиків, і сплутати їх — половина пошуку несправності.

Чому шина DS18B20 взагалі губить датчики (підтяжка, три жили, зірка, силові кабелі поруч, журнал збоїв), розібрано в статті Проводка датчиків DS18B20. Тут — як саме це вирішено в комплекті.


Що в комплекті і як воно з'єднане#

Ящик з нержавійки і два ланцюжки термометрів. У низьковольтній зоні ящика плата KC868-A6 і два гнізда M12 на стінці: IO-1, шина 1, і IO-2, шина 0; окремо гніздо GX16-2 для клапана води 12 В. У силовій зоні блок живлення, твердотілка з радіатором, ввід IEC C14 із запобіжником і сальник PG до ТЕНа. Ланцюжок «верх» від IO-1: трійники біля дефлегматора й царги з відводами 20–30 см. Ланцюжок «низ» від IO-2: трійник біля куба з відводом до 50 см силіконовим кабелем і трійник біля виходу води з холодильника

Датчики сидять на справжньому ланцюжку (daisy chain): магістраль іде вздовж апарата, біля кожної гільзи на ній стоїть трійник, і від трійника до датчика — короткий відвід. Роз'єми всюди однакові: литі M12 A-code, 4 контакти, стандартні, без власної розпіновки. Запасний датчик чи подовжувач підійде будь-який із тим самим кодуванням.

Ділянка Довжина Кабель
відвід від трійника до гільзи 20–30 см кабель зонда
відвід куба до 50 см, щоб трійник висів подалі від гарячої стінки силікон
магістраль: від ящика до першого трійника і між трійниками у комплекті A6 на ланцюжок 2 м від ящика + 1 м між трійниками; в A16 — три по 2 м і один 1 м литий подовжувач M12, вилка–гніздо
від гнізда до колодки плати всередині ящика до 30 см скручена пара DATA+GND

Датчики розведені на дві шини, щоб кожен ланцюжок лишався коротким:

Плата Ланцюжок Гніздо Шина в oCBot Що на ньому
KC868-A6 «верх» IO-1 1 царга, дефлегматор
KC868-A6 «низ» IO-2 0 куб, вода холодильника
KC868-A16 три ланцюжки HT1, HT2, HT3 1, 0, 2 за апаратом, куб бажано окремо

Шина 0 на A6 — це IO-2, а на A16 — HT2, не перший роз'єм. Чому так, пояснено в статтях Шини й роз'єми KC868-A6 і Шини й мережа KC868-A16. Прошивка веде всі шини одночасно, окремо кожну.

Трійник має одну вилку (до плати) і два гнізда: далі по магістралі й у відвід до датчика. Склад комплекту — у каталозі: під KC868-A6 і під KC868-A16. Ящика з нержавійки там немає: його роблять під замовлення.

Порядок вузлів усередині ланцюжка не важить: прошивка впізнає датчик за адресою, а не за місцем. Важить лише, в який ланцюжок його ввімкнено (про це нижче).


Вузол-датчик: чому хвіст вкорочують#

Вузол-датчик: гільза 1/2 дюйма із зондом DS18B20, кабель зонда вкорочений до 20–30 см, на ньому бирка «КУБ · 3A7F», вхід у вилку M12 під пайку закритий термоусадкою з клеєм кольору ланцюжка, вилка вмикається в трійник на магістралі. Нижче розпіновка M12: 1 коричневий 3V, 2 білий GND, 3 синій GND, 4 чорний DATA

Зонд DS18B20 у гільзі продається з метровим кабелем. Здається природним лишити його як є і змотати надлишок. Але метровий хвіст — це той самий відвід від магістралі, тільки довжиною в метр. Змотаний у бухту, він електрично не коротшає: сигнал так само біжить метр до кінця й відбивається назад. Кілька таких «метрових відводів» на одній шині — це вже майже зірка, найчастіша причина відвалів на апараті (чому зірка погано).

Тому у вузлі комплекту:

Нотатка

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


Розпіновка M12#

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

Контакт Колір жили Сигнал
1 коричневий 3V (A6) / 3.3V (A16)
2 білий другий GND
3 синій GND
4 чорний DATA

DATA на четвертому контакті — так само, як сигнал у промислових датчиків на M12. Живлення завжди окремою жилою: паразитного живлення прошивка не підтримує (три жили, не дві).

Екран кабелю — на GND лише біля плати. З корпусом роз'єму й гільзою його не з'єднувати: екран із двома кінцями на різних «землях» стає ще одним провідником, по якому тече струм між кубом і ящиком.


Ящик з нержавійки: що звідки виходить#

Кожен тип зовнішнього з'єднання має на ящику свій роз'єм. Так неможливо ввімкнути клапан у гніздо датчиків і навпаки.

Що Роз'єм на ящику Чому саме такий
термометри панельне гніздо M12 A-code 4-pin, по одному на ланцюжок (A6 — 2, A16 — 3) IP67, позолочені контакти, під литі кабелі
клапан води 12 В GX16-2 інший тип і інша кількість контактів — не сплутати з датчиками
ТЕН, мережа 220 В сальник PG, кабель напряму роз'єм GX16 розрахований приблизно на 5 А, а ТЕН 2–3 кВт бере 10–13 А
живлення ящика IEC C14 із запобіжником стандартний шнур, запобіжник у самому вводі
Обережно

Не ставте роз'єм GX16 на коло ТЕНа, навіть «лише на випробування». При 10–13 А на контактах, розрахованих приблизно на 5 А, роз'єм гріється й підгорає, а знайти це можна лише за запахом. Силовий кабель виходить через сальник.

Всередині ящика:


Маркування: щоб вузол повертався на своє місце#

Вузли комплекту збирає й реєструє в прошивці стенд, до відправки: сканування адрес, бирки, записи в Периферії з ролями. Від вас лише ввімкнути вузли у трійники свого кольору.


Як прошивка впізнає датчик#

Прошивка зберігає кожен термометр як адресу ROM + номер шини. Роль у сценарії (куб, царга…) прив'язана до цього запису, а не до місця на кабелі.

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

Якщо вузол опинився в чужому ланцюжку, є два виходи: повернути його у трійник свого кольору, або відкрити датчик у Периферії й змінити поле «Шина 1-Wire» на ту, куди він тепер увімкнений.


Заміна датчика: сьогодні і незабаром#

Новий зонд — нова адреса ROM, тож для прошивки це інший датчик. Сьогодні шлях такий:

  1. Вимкнути старий вузол, увімкнути новий у той самий трійник.
  2. Периферія → видалити запис старого датчика.
  3. Додати датчик: Тип інтерфейсу — «Цифровий інтерфейс», Шина 1-Wire — та, де ланцюжок, кнопка «Сканувати». У списку знайдених адрес нова — та, якої ще немає серед збережених.
  4. Перев'язати ролі: у сценаріях і на схемі апарата вказати новий датчик замість старого.
  5. Переписати бирку: останні 4 знаки нової адреси.

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

Порада

У прошивці готується функція «Замінити датчик»: нова адреса стає під тим самим записом разом з усіма прив'язками, тож кроки 2–4 зведуться до одного. Вона ж шукатиме загублену адресу на всіх шинах — для випадку, коли вузол ввімкнули в чужий ланцюжок. Коли вийде, стаття оновиться.


Суміжні статті#