Статті бази ▾ ← Усі бази знань
Автоматика oCBot
Концепція та філософія12 Ласкаво просимо до екосистеми oCBotЗвідки взявся oCBotІдеологія oCBotСфери призначення та режими роботиПериферійні пристроїСвобода периферіїБазові скрипти автоматизаціїВіртуальні панелі оператораСкладні сценарії та логіка автоматизаціїМультиконтролерністьЗагальний огляд автоматики oCBotАрхітектура та опис
Підтримувані контролери22 Контролер Kincony KC868-A6Підключення живлення й USB на KC868-A6Підключення периферії до 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Силові виходи 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)
Каталог периферійних пристроїв11 Датчики температуриДатчики тискуДатчики рівня рідиниСхема підключення щупа рівня через платку оптопариДатчики потоку (витратоміри)Схема підключення витратоміра до KC868-A6 і A16Виконавчі механізми (Клапани, Насоси, ТЕНи)Датчики середовища (Вологість, Світло, Тиск)Датчики електричні та вагиОргани керування (Кнопки, Енкодери)Електродвигуни та вентилятори
Складання та Перший запуск (DIY)27 Збирання контролера oCBot своїми рукамиПервинне прошивання та запуск контролераШвидке підключення Wi-Fi через BluetoothПідключення ТЕНів та регуляторів потужностіВибір та підключення електромагнітних клапанівКілька плат PCA9685 на одній шиніПін OE — апаратне зняття всіх виходівПлата PCA9685 зблизька — що на ній є і навіщоПлата розширення PCA9685 — 16 каналів ШІМСервопривід на платі PCA9685 — режим 50 ГцТвердотілки на платі розширенняПідключення LCD та OLED дисплеїв по шині I2CДвигун і частотний перетворювач: силове підключенняПроводка датчиків DS18B20: чому зникають показанняПроводка датчиків DS18B20: як зібрати шину на A6 і A16Промисловий протокол 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Усунення типових несправностей
Робота з веб-інтерфейсом18 Головна сторінка (Home)Технічна підтримка: віддалена допомогаДіаграма процесу (Flow)Сценарії автоматизаціїРедактор скриптівПульти оператораДизайнер пультів HMI DesignerПериферіяПлати та шиниЗагальні налаштуванняОбладнанняТочки монтажуНалаштування графіківОновлення прошивкиНалаштування Wi-FiЛогиПорталПро програму
Написання сценаріїв (C++ Скрипти)10 Огляд скриптівМій перший сценарій: Крок за крокомШІМ-відбір: Як налаштувати клапан правильноНалаштування ПІД-регулятора для стабілізаціїАвтоматизація температурних пауз при затиранні солодуСкрипт ББКРегулювання тискуРозрахунок ABV за температурою париСкрипт «Розрахунок ABV»ABV у сценаріях
Безпека, Хмара та Інтеграція5 Система безпеки oCBot: Захист від аварійСтворення хмарного кабінету UA DistilleryЯк опублікувати звіт про перегонкуШеринг кастомних пультів оператора (HMI)Інтеграція з Home Assistant та MQTT
Сценарії5
ББК5 Сценарій ББК: що робить автоматика і де вона чекає на васББК: залізо й прив'язки — без чого сценарій не стартуєББК: параметри за етапами — що означає кожен і як обратиББК: перший запуск — спочатку на воді, потім брагаББК: аварії — що написано на картці, чому і що робити

Проводка датчиків DS18B20: як зібрати шину на A6 і A16

Написано для прошивки 0.2.232 (коміт fa45ad8) · порталу 0.0.308Можливо, застаріло: поточний портал 0.0.312

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

Чому погана проводка губить показання (зірка, відбиття, підтяжка, завади від частотника), розібрано в статті Проводка датчиків DS18B20: чому зникають показання. Якщо в тебе стартовий комплект на литих роз'ємах M12, там усе вже зібрано так, як тут описано, — див. Термометри стартового комплекту.


Скільки датчиків на один роз'єм#

Кожен роз'єм 1-Wire на платі — окрема шина: своя ніжка ESP32, своя підтяжка 4.7 кОм до 3.3 В і свій послідовний резистор 100 Ом (аркуш Sensors принципової схеми). Прошивка веде всі шини одночасно і кожну окремо.

Плата Роз'єми на колодці Шина в oCBot
KC868-A6 IO-1, IO-2 (+ 3V, GND) IO-1 — 1, IO-2 — 0
KC868-A16 HT1, HT2, HT3 (+ 3.3V, GND) HT1 — 1, HT2 — 0, HT3 — 2

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

Прошивка тримає до 8 датчиків на шині (MAX_SENSORS у коді менеджера DS18B20). Це межа таблиці, а не рекомендація. На практиці на апараті тримай 3–4 датчики на роз'єм, і ось чому:

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


Крок за кроком: від колодки до гільзи#

1. Кабель: три жили, вита пара#

Кожен датчик живиться окремою жилою: VDD на 3V (A6) чи 3.3V (A16), DATA і GND. Дводротове «паразитне» живлення прошивка не підтримує.

Магістраль — вита пара FTP 5e. Правило просте: біла жила кожної пари — GND, кольорова — живлення або сигнал. Тоді DATA скручена з GND по всій довжині, і наведення від ТЕНів і частотника приходить на обидві жили однаково та гаситься. Так само скручене з GND живлення. Червоної жили у витій парі немає, тож плюс — на оранжевому: його найлегше впізнати як живлення, а сигнали — на синьому, зеленому й коричневому.

Жила FTP 5e Куди біля плати Біля датчика, жила зонда
оранжевий +3V (A6) / +3.3V (A16) червоний
біло-оранжевий GND чорний
синій DATA: IO-1/IO-2 (A6), HT1–HT3 (A16) жовтий
біло-синій GND чорний
зелена й коричнева пари запас: не підключати, кінці заізолювати —
екран (фольга й дренажний дріт) GND, лише біля плати обрізати й заізолювати

Кольори зонда в таблиці — найчастіші (червоний VDD, чорний GND, жовтий DATA). Буває й інакше, тож звір з описом продавця.

Дві-три шини одним кабелем. Від щита до апарата шини можуть іти одним FTP, а розійтися вже в коробці біля апарата. Кожна шина — на своїй парі, живлення спільне:

Пара KC868-A6, дві шини KC868-A16, три шини
оранжева +3V + GND +3.3V + GND
синя DATA шини 0 (IO-2) + GND DATA шини 1 (HT1) + GND
зелена DATA шини 1 (IO-1) + GND DATA шини 0 (HT2) + GND
коричнева запас DATA шини 2 (HT3) + GND

Дві шини на A6 одним кабелем:

Три шини на A16 одним кабелем:

Від коробки кожен кабель розкладений як звичайно: оранжевий — плюс, синій — DATA, білі — GND. Тож датчики й пайка біля гільз однакові в обох варіантах.

Дві DATA в одну пару не клади: скручені разом жили наводять одна на одну найсильніше, і шини почнуть чути одна одну. У коробці розгалуження пари DATA розходяться кожна у свій кабель, усі білі з'єднуються на GND, оранжевий — з оранжевими обох чи трьох кабелів, екран продовжується далі й на GND лишається лише біля плати. Ціна — спільний шматок: переб'єш його, і ляжуть усі шини разом. Тож клади його в гофру й подалі від силових кабелів, а для захисних датчиків надійніше окремий кабель від самого щита (що ставити окремо).

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

2. Магістраль 3–4 м: один кабель уздовж зони#

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

3. Відвід до гільзи: до 30 см#

Відвід — шматок від магістралі до датчика. Що коротший, то слабше відбиття. Тримай до 30 см; біля куба — до 50 см силіконового, щоб з'єднання висіло подалі від гарячої стінки.

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

4. Гільза й герметизація#

5. З'єднання: пайка й термоусадка#

На апараті все трясеться (мішалка, насос) і гріється, тому:

6. Маркування#

Прошивка впізнає датчик за адресою, а не за місцем. Тож поки датчики ще не перемішались:

  1. вмикай датчики по одному: підключив, проскануй шину в Периферії, дай датчику назву за місцем («Верх колони», «Куб»);
  2. на кабель біля гільзи — бирка з назвою й останніми чотирма знаками адреси, наприклад КУБ · 3A7F;
  3. на магістраль біля колодки — бирка з роз'ємом: IO-1, HT3.

Переставити датчик у межах своєї шини можна, прошивка знайде його за адресою. Переставити на іншу шину — ні, там вона його не шукає: доведеться заново прив'язати в Периферії.


Що ставити окремо: критичні й захисні датчики#

Розкладка по роз'ємах вирішує, що станеться, коли один кабель усе ж пошкодиться. Датчик без вдалого читання довше 15 с прошивка вважає таким, що даних нема (RB_SENSOR_STALE_S), і блокування, прив'язане до нього, тримає вимкненими ТЕНи. Якщо на одній шині сидить усе, то обрив магістралі зупиняє і процес, і захист одночасно.

Три правила розкладки:


Розкладка: куб, колона, дефлегматор#

KC868-A6: дві шини#

Схема KC868-A6 з двома шинами DS18B20. На колодці плати знизу вгору клеми IO-2, IO-1, 3V і GND; підтяжка 4.7 кОм на кожному роз'ємі вже на платі, 3V і GND ідуть жилою в кожен кабель. Від IO-1, шина 1, магістраль колони: 2 метри до датчика царги, ще метр до датчика верху колони, відводи до 30 сантиметрів, верх колони — кінець шини. Від IO-2, шина 0, магістраль куба й захисту: метр до куба з відводом до 50 сантиметрів силіконовим кабелем, ще півтора метра до датчика води на виході з дефлегматора і пів метра до ТСА, відводи до 30 сантиметрів. Легенда: зелений — керує відбором, золотий — захист, білий — контроль

Роз'єм Шина Датчики Довжина
IO-1 1 царга, верх колони 2 м + 1 м
IO-2 0 куб, вода з дефлегматора, ТСА 1 м + 1.5 м + 0.5 м

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

Обірвався кабель колони — відбір зупиняється, але куб, вода й ТСА живі, і захист працює. Обірвався кабель куба — ТЕНи, прив'язані до куба, вимикаються самі. Розкладка така сама, як у стартовому комплекті: IO-1 — верх, IO-2 — низ.

KC868-A16: три шини#

Схема KC868-A16 з трьома шинами DS18B20. На колодці плати згори вниз клеми GND, HT1, HT2, HT3 і 3.3V; підтяжка 4.7 кОм на кожному роз'ємі вже на платі, 3.3V і GND ідуть жилою в кожен кабель. Від HT1, шина 1, магістраль колони: 2 метри до царги, ще метр до верху колони, відводи до 30 сантиметрів. Від HT2, шина 0, окремий кабель 2 метри до куба з відводом до 50 сантиметрів силіконовим кабелем. Від HT3, шина 2, магістраль охолодження: 2 метри до датчика води з дефлегматора і ще метр до ТСА, відводи до 30 сантиметрів. Легенда: зелений — керує відбором, золотий — захист, білий — контроль

Роз'єм Шина Датчики Довжина
HT1 1 царга, верх колони 2 м + 1 м
HT2 0 куб 2 м
HT3 2 вода з дефлегматора, ТСА 2 м + 1 м

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

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


Розкладка: парогенератор і колона НБК#

На НБК критичних точок дві: парогенератор (захист нагріву) і верх колони (за ним ведеться подача браги й потужність). Їх і розводимо по різних роз'ємах.

Плата Роз'єм Шина Датчики
KC868-A6 IO-1 1 верх колони НБК, низ колони (барда)
KC868-A6 IO-2 0 парогенератор, вода з холодильника
KC868-A16 HT1 1 верх колони НБК, низ колони (барда)
KC868-A16 HT2 0 парогенератор
KC868-A16 HT3 2 вода з холодильника, брага після теплообмінника

Схеми ті самі, що вище: на A6 замість царги й верху — низ і верх колони НБК, замість куба — парогенератор. Парогенератор біля ТЕНів гарячий, тож відвід до нього — силіконовий, як у куба.


Перевірка після монтажу#

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

  1. Прожени апарат під навантаженням хоча б 30 хв: ТЕНи гріють, мішалка чи насос працюють, частотник крутить. Завади з'являються саме тоді.

  2. Відкрий Налаштування → Логи. Раз на 10 хв прошивка пише підсумок лише по датчиках, у яких були збої:

    sensor 0x…: 37 of 600 reads failed (no answer 5, CRC 31, bad data 1)
    

    Рядка про датчик немає — за 10 хв у нього не було жодного збою. Це і є чиста шина.

  3. Порахуй частку: невдалі читання поділити на всі. У прикладі вище 37 із 600 — це 6 %.

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

Частка збоїв за 10 хв Що це Що робити
рядка немає шина чиста нічого
поодинокі, до 1 % шина на межі, але прошивка це покриває глянути при нагоді
1–5 % лінія погана; один датчик у будь-яку мить може зникнути шукати причину до наступного прогону
понад 5 %, або збої на всіх датчиках шини шина от-от ляже цілком не запускати процес, переробляти проводку

Це наші орієнтири, а не цифри з даташиту. На стенді з коротким кабелем збоїв нуль, і на зібраній за цією статтею шині має бути так само.

Що міняти, підкаже, якого лічильника більше:

Лічильник Що означає Куди дивитись
no answer датчик не відповів зовсім контакт DATA, жила живлення, обрив відводу
CRC відповідь прийшла, але зіпсована дорогою завади й відбиття: довгі відводи, бухти, силовий кабель поруч, зірка
bad data відповідь ціла, але не температура: хибні 85 °C чи 0 °C живлення датчика, пайка VDD

Із 0.2.224 поодинокі хибні 0 °C і 85 °C до скриптів не доходять: справжнє таке значення прошивка приймає, лише коли воно повториться наступним читанням. Повний порядок пошуку несправності — у статті чому зникають показання.


Як це виглядає в житті#

Апарат «парогенератор + колона НБК», п'ять термометрів на одній шині, серед них верх колони. Чотири дні журналу:

Що видно в журналі Значення
частка CRC на кожному з п'яти датчиків 14–30 %
датчиків шини без збоїв жодного
зникнення всієї шини разом кілька разів за чотири дні
датчик верху колони після перенесення на нове місце перестав відповідати зовсім

Що з цього читається:

Що зробити на такому апараті: розвести на два роз'єми за таблицею для НБК (парогенератор окремо від колони), магістраль — витою парою подалі від силових, відводи вкоротити до 30 см, верх колони перепаяти. Після цього — 30 хв під навантаженням і журнал.


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