
Arduino управляє промисловим вантажним ліфтом
Дисклеймер: Якщо ви розбираєтеся в електроніці, деякі технічні рішення, описані в цій статті повалять вас в шок і жах, а також викличуть непереборне бажання відірвати автору руки. Я попередив.
Трохи про те як влаштовані вантажні підйомники і невелика історія створення системи управління для шестиповерхового вантажного ліфта на базі плати Arduino сумісного контролера Seeeduino (ATmega 328).
Досить багато картинок і букв!
Я підробляю електриком у невеликій фірмі, яка займається виробництвом і монтажем вантажних підйомників. На цю роботу активно приймають студентів, які навчаються за близьким профілем і вони охоче погоджуються. У плані творчості така робота просто рай - ніхто не лізе в електричні справи і є повна свобода дій як у виборі електромонтажних матеріалів (аби не сильно дорого), так і в способах реалізації готового продукту (лише б працювало). Оскільки основна маса замовлень зводиться до найпростіших підйомників з двома зупинками, то таку роботу не назвеш складною, і навіть студент без досвіду швидко втягується.
Загалом, благодатна нива для експериментів!
Як правило, вся електрика збирається за вже готовими схемами, які побудовані на примітивній логіці із застосуванням реле. Основними елементами в типовому рішенні є два магнітних пускателі (ПВ і ПН на малюнку), які здійснюють запуск електричної талі (двигун з редуктором і барабаном, на який намотано трос), кінцеві вимикачі поверхів (К1 і К2), кнопки управління пуском (КН) і кінцеві вимикачі ланцюги безпеки (КД), які блокують запуск, фліт.
Вся логіка роботи вантажного ліфта зводиться до того, що поки натиснуті всі кінцеві вимикачі в ланцюгу безпеки (на малюнку вона починається від L1 і до кінцевих вимикачів К1 і2), дотримана фазування, двигун не перегрівся і не натиснута кнопка Стоп, на кнопки управління підйомником подається напруга. У разі натискання однієї з кнопок, запускається відповідний магнітний пускач, який спрацьовуючи, по суті утворює тригер, який розімкнеться, як тільки ліфт доїде до поверхового кінцевого вимикача.
Вся канітель починається після того, як кількість поверхів, на які повинен приїжджати вантажний ліфт стає більше двох. Наприклад, для триповерхового підйомника схема поповниться одним проміжним реле, яке перекомутуватиме схему для забезпечення зупинки на середньому поверсі. Для чотириповерхового підйомника таких реле знадобиться вже два, для п'ятиповерхового - три і так далі. І якщо попередній малюнок Ви розкусили як горішок, то представляю Вашій увазі схему управління дев'ятиповерховим вантажним підйомником:
У наш час така складність схеми управління - це смертний гріх. Зрозуміло, перше що запропонує зробити розумний інженер - використовувати програмований логічний контролер (ПЛК). Правда вартість комплектуючих в такому випадку зросте. Але чому б не застосувати тут дешеву Arduino? Порискавши в мережі, я знайшов кілька цікавих проектів з макетами пасажирських ліфтів з усім знайомого LEGO і вирішив, що вже з вантажним ліфтом ця хустка точно повинна впоратися. Якраз до нагоди, надійшло замовлення на шестиповерховий підйомник.
Крім того, у мене вже досить давно лежала без діла плата Seeeduino (ATmega 328), і китайський LCD дисплей. Якщо вже ваять контролер - то з дисплеєм! І насамперед я підрахував кількість портів на платі, які можна використовувати. А їх на Seeeduino - 14 дискретних і 6 аналогових (які зрозуміло працюють і як дискретні). Ідея була проста: повісити кожну кнопку і кінцевий поверховий вимикач на свій порт, а магнітні пускачі вмикати за допомогою 5VDC/220VAC реле. Ланцюг безпеки також повинен мати свій порт.Разом, для шестиповерхового вантажного ліфта необхідно 13 дискретних входів і два виходи для реле. Але куди ж підключити дисплей? На допомогу приходить зрушений реєстр PCF8574, який дозволить управляти ним всього по двох проводах (про це є пост). Таким чином, використовуючи макетну плату, 13 підтягуючих резисторів і дві лампочки, що імітують реле «пуску вгору» і реле «пуску вниз», я написав керуючу програму (там цикл на циклі і циклом поганяє мені навіть соромно її показувати). Дисплей на жаль у мене без підтримки кирилиці, тому виводить лише повідомлення типу «Lift on a Floor» і «Security Circuit Broken!».
Якщо з кількістю портів все пройшло гладко, то першою великою проблемою виявилося суміщення логічних рівнів. Справа в тому, що електромонтажні вироби, які застосовуються у нас розраховані на 220VAC *. Тобто при натисканні на кнопку або кінцевий вимикач на провід приходить справжнісінька фаза, тоді як Arduino використовує логіку 5VDC. Оскільки в електроніці я аж ніяк не профі, я звернувся за допомогою на радіофорум, і використовуючи підказки згородив таку схему, засновану на оптроні:
Вона чудово працювала зі світлодіодом, і я керуючись принципом Кейва Джонсона («ми просто кидаємо наукою в стінку і дивимося, що прилипне») вирішив відразу напаяти її на плату.
І, зрозуміло, це був провал. Arduino не тільки не бачила логічної одиниці на порту, але й оптрони часто весело горіли разом з резисторами. А тим часом замовник вже чекав свій ліфт. І нічого не залишалося крім як визнати поразку і зробити схему як і раніше, на релі. Ну на релі так на релі, вирішив я, викинув оптрони і взяв тринадцять проміжних реле для використання в якості гальванічної розв'язки. Кожному релі відповідає своя кнопка і поверховий кінцевий вимикач.
Після такого оригінального вирішення проблеми логічних рівнів, я перейшов до завдання включення магнітних пускателів. Варто згадати, що реле 5VDC/220VAC до портів Arduino підключаються не безпосередньо, а за схемою з транзистором і діодиком. Втім, можна просто купити готовий блок.
Проте в питанні управління таким навантаженням, як магнітні пускателі на 220В, мене чекала друга і найбільша проблема - наводки. Оскільки я запхав Arduino, дисплей і обидва релі досить щільно в один корпус, при включенні магнітного пускателя дисплей починав показувати кракозябри замість букв, а контролер міг і зовсім зависнути. Часу залишалося все менше, і я вирішив зробити імпровізоване екранування з кухонної фольги.
Як би безглуздо все не виглядало, але це допомогло. Я шукав в мережі будь-які рішення, але знайшов лише пропозиції використовувати ферритові колечки або знову оптрони, з якими я вже не подружився.
Вся конструкція в зборі:
Далі слідує виїзд на об'єкт для установки електрообладнання. Це фабрика з виробництва пластикової тари. Ось цим красенем, вантажопідйомністю в три тонни буде керувати контролер:
Монтаж електрики заняття досить стомлююче - доводитися цілий день лазити по шахті, простягаючи дроти, а потім, часом вися в незручному становищі, з'єднувати їх в клемних колодках в розподільних коробках. Але це не найстрашніша проблема, яка чекає Вас, якщо ви надумали зробити свій контролер. Найстрашніша як я вже казав - наводки. Виявилося що наводки від магнітного пускателя, який працює в холосту і наводки від пускателя, який замикає або (що найстрашніше) розмикає харчування восьми-кіловаттного двигуна це зовсім не одне і теж (Хто б міг подумати!). Які б екрани я не городив, іскри на контактній групі пускателя зводили їх дію до нуля. І хоча робота контролера не порушувалася, дисплей видавав нісенітницю замість інформаційних повідомлень. Після довгих митарств, в результаті, я відгородив магнітні пускателі від контролера підключеної до нейтральної пластиною (заземлення на жаль на момент установки ще не було), а проблему дисплея вирішив програмно з використанням функції delay ();. Як тільки програма виконувала пуск двигуна або його зупинку, включався секундний delay (); після якого виводилося повідомлення на дисплей.
Зрозуміло, я не міг повністю довірити контролеру питання аварійної або екстреної зупинки ліфта. Як тільки пропадає харчування в ланцюгу безпеки, реле розмикає харчування на пускниках, і подає сигнал на порт arduino. І навіть якщо контролер з якої-небудь причини зависне, підйомник все одно буде зупинений. Крім того, схема передбачає віддалене перезавантаження системи з будь-якого поверху, за допомогою натискання кнопки «Стоп» більше двох секунд.
Відео роботи, за якість заздалегідь вибачаюся.
Підсумки:
За ціною вийшло цілком недорого: Реле - 80 р/шт * 13шт = 1040р, дисплей + Arduino = 1000р, блок живлення, корпус, клемники і резистори = 1000р.
Разом контролер обійшовся десь в 3000р, тоді як самий бюджетний ПЛК, який впорається з таким завданням вийде не менше 7000р.
За надійністю - час покаже. Згорілі ПЛК я вже бачив, так що не факт що Arduino буде гірше. За цим параметром релейна схема все одно поза конкуренцією. Використання контролера дозволило скоротити кількість проводів, а значить полегшити роботу з їх обжимки і маркування, а також спростити монтаж.
Підбиваючи підсумки, хотілося б побажати розвитку платформи Arduino в бік інтеграції з силовими ланцюгами (ну наприклад появи готових блоків оптичної розв'язки) в майбутньому. Я знаю, що багато хто вважає Arduino лише дитячою іграшкою. Однак прогрес не стоїть на місці і все йде до того, що мало-мальськи знайома з електронікою людина зможе збирати складні пристрої, не обертаючись на всякі проблеми на кшталт «який резистор вибрати щоб не згорів оптрон», і звільняти більше часу для технічної творчості.
Дякую за увагу!
PS:
* Так, я прекрасно розумію, що 220В не найкращий вибір для ланцюгів управління. Справа в тому, що у фірмі ще до мого приходу історично так склалося (мабуть лінь було заморочуватися з перетворювачами), ну а ще у постачальників часом важкувато дістати кнопки і пускачі на потрібну напругу. Щоб Вас заспокоїти, скажу що багато замовників підключають вантажні ліфти через УЗО, чого я всім і раджу.
UPD:
Панове, ліфт вантажний, і людям на ньому їздити заборонено. Про це ясно написано на кожних дверях на кожному поверсі. Двері шахти на час роботи заблоковані електрозамками, повністю незалежними від контролера.
На всі аварійні ситуації вже є своя відповідь. Наприклад на випадок обриву троса - механічний ловитель різкого томожіння (його до речі винайшов сам Оттіс), у разі перевантаження або заклинювання кабіни - теплове реле і обмежувачі перевантаження, що також працюють незалежно від контролера.
Коротше кажучи, контролер лише займається логікою пуску ліфта на поверхи, а система безпеки залишилася абсолютно без змін.
UPD2:
Ось текст програми (програміст я такий же як і електронник)