Статті бази ▾ ← Усі бази знань
Автоматика 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: Захист від аварійПідключення контролера до кабінету the.in.uaЯк опублікувати звіт про перегонкуШеринг кастомних пультів оператора (HMI)Інтеграція з Home Assistant та MQTT
Сценарії5
ББК5 Сценарій ББК: що робить автоматика і де вона чекає на васББК: залізо й прив'язки — без чого сценарій не стартуєББК: параметри за етапами — що означає кожен і як обратиББК: перший запуск — спочатку на воді, потім брагаББК: аварії — що написано на картці, чому і що робити
У каталозі:KinCony KC868-A16

Сухі контакти й аналогові входи KC868-A16

Написано для прошивки 0.2.93 (коміт 9648be9) · порталу 0.0.176Можливо, застаріло: поточна прошивка 0.2.237, поточний портал 0.0.330

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

Три типи датчиків на входах KC868-A16: сухий контакт між IN1 і GND, датчик тиску 0–5 В на A1 із живленням від 12 В, DS18B20 на роз'ємі HT1


Дискретні входи: сухий контакт на землю#

Дві колодки, 1–8 і 9–16, на кожній своя клема GND. Кожен вхід — оптопара EL357, і влаштовано його так (аркуш Digital схеми):

Принципова схема цифрових входів KC868-A16: шістнадцять оптопар EL357 з резисторами 2 кОм від 12 В, два розширювачі PCF8574P

Плюс 12 В плати через резистор 2 кОм іде на світлодіод оптопари, а з нього — на клему INn. Замкнули клему на GND — світлодіод засвітився, вхід активний. Прошивка читає стан через розширювачі PCF8574P (0x22 для входів 1–8, 0x21 для 9–16).

Що з цього випливає:

Нотатка

Індикаторів стану на входах немає — на молодшій A4 вони були, на A16 їх прибрали. Перевіряти спрацювання доведеться в Периферії oCBot: замкнули контакт — канал змінив стан.

У прошивці кожен вхід — це окрема периферія типу «дискретний вхід» із можливістю інверсії. Пресостат із перекидним контактом підключайте тим контактом (NO чи NC), який дає безпечний стан при обриві дроту: аварійний датчик має спрацьовувати, коли дріт розімкнений, — тоді обрив кабелю зупинить нагрів, а не сховає аварію.


Аналогові входи: 0–5 В без зовнішнього дільника#

Колодка Analog Input 1–4 з клемою GND. Всередині кожен канал проходить три ступені (аркуш Analog схеми):

Принципова схема аналогових входів KC868-A16: дільник 5.1 кОм / 10 кОм, буфер на LM324, обмежувальні діоди BAT54S на 3.3 В

  1. Дільник 5.1 кОм / 10 кОм — 5 В на клемі перетворює на 3.3 В.
  2. Буфер LM324 (живиться від 12 В плати) — розвʼязує датчик від АЦП.
  3. Діоди BAT54S на шину 3.3 В — обрізають усе, що вище, щоб не вбити ESP32.

Тобто клема розрахована саме на датчики зі шкалою 0–5 В, і зовнішній дільник, як у статті про датчики тиску, на A16 не потрібен. Та стаття описує підключення до «голого» піна ESP32, який тримає лише 3.3 В; тут ділення вже зроблене на платі. Поставити другий дільник 10 к / 10 к зверху — означає завести на АЦП 1.65 В замість 3.3 і втратити половину шкали.

Далі сигнал іде на внутрішній АЦП ESP32 — GPIO 36, 34, 35, 39 з атенюацією 12 дБ, 12 біт (rb_environment_parts.cpp). Прошивка віддає частку від повної шкали, а перерахунок у кПа чи кілограми задається калібруванням у налаштуваннях периферії.

Дві чесні межі цього тракту:

Живлення датчика — від блока живлення 12 В, а не від плати: більшість промислових датчиків тиску живляться 12–24 В, а на платі вільних 5 В немає (чому).

Нотатка

Нумерація каналів = нумерація клем — з прошивки FW_VER. Прошивка бере порядок каналів АЦП із розкладки плати (ain_adc_channel у board_peripheral_map.cpp: для A16 — GPIO 36, 34, 35, 39, як розведені клеми 1–4), тож «Аналоговий вхід 2» у Периферії — це клема 2 на корпусі.

Якщо A16 працює на прошивці до FW_VER — там була стала таблиця в порядку GPIO 36, 39, 34, 35, і канали 2, 3, 4 читали клеми 4, 2, 3. Після оновлення датчики, привʼязані на старій прошивці до каналів 2–4, треба переприв'язати на номер клеми, куди вони фізично заведені (або переставити дроти). На A6 порядок не змінився.


Витратомір: ті самі чотири піни#

Імпульсний вихід витратоміра рахує апаратний лічильник ESP32, і прошивка вішає його на той самий пул GPIO 36/39/34/35, що й аналогові входи. Тобто витратомір займає одну з чотирьох аналогових клем, і датчик тиску з витратоміром конкурують за них. Через дискретні входи на PCF8574 імпульси не порахувати: шина I2C надто повільна (стаття про витратоміри).

На A16 ця клема, як і аналогові, проходить дільник 5.1 к / 10 к — імпульси від датчика Холла з живленням 5 В дають на піні 3.3 В, лічильник їх бачить.


Датчики температури: три роз'єми, не чотири піни#

Роз'єм GPIO's 1–3, 3.3V, GND — це три шини 1-Wire HT1, HT2, HT3 з підтяжкою 4.7 кОм на платі. DS18B20 підключається трьома дротами: DQ на HTn, VDD на 3.3V, GND на GND; другу підтяжку не ставити. Це вже не входи «сухий контакт», і докладно про них — у статті про шини.


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