Приклад модернізації електричної схеми вантажного підйомника з використанням програмованого контролера (ПЛК)

Останнім часом стає все більш популярною тема автоматизації різних технологічних процесів з використанням програмованих контролерів (ПЛК). Незважаючи на це, в Інтернеті зустрічається дуже мало практичних статей з реальними прикладами як ці ПЛК програмувати. Тема ця дуже цікава, тому що вона знаходиться на стику електрообладнання, електроніки та програмування. Навчиться писати програми для ПЛК можна навіть не маючи їх в наявності. У цьому добре допомагає режим емуляції, який є у всіх сучасних програмних пакетах.

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

Релейная схема вантажного підйомника

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

Схема електрична засадничо грузвого підйомника з одним двигуном на дві зупинки

У схемі присутній всього один двигун, який піднімає і опускає підйомник між двома поверхами. Це реверсивний трифазний асинхронний двигун з фазним ротором на 380 В. До ротору двигуна підключені пускові опору і контакти трьох електромагнітних пускачів, що дозволяють запускати двигун в 3 ступені. Це рішення дозволяє в процесі запуску двигуна зменшувати його пусковий струм і збільшувати пусковий момент.

Пуск двигуна автоматизований за допомогою трьох реле прискорення (1РУ – 3РУ). Це звичайні реле часу на 24 вольта постійного струму. Для їх харчування є понижуючий трансформатор і випрямляч.

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

Реверс двигуна виконується за допомогою контактів двох електромагнітних пускачів (на схемі В і Н). Харчування на схему подається через рубильник (на схемі – ВУ) і автоматичний вимикач (1А).

Включення в роботу підйомника можливо тільки при наявності напруги. Його контролює реле напруги (РН), яке знаходиться в лівій частині схеми. Там же знаходяться штепсельні розетки і дзвінок, який можна включити з будь-якого майданчика для виклику провідника.

Двері шахти і кабіни відкриваються і закриваються вручну. Управління ліфтом виконується за допомогою важеля перемикача на три положення – “Вгору”, “Вниз” і “Нульове”.

При переводі рукоятки в одне з крайніх положень ліфт починає рухатися і при досягненні потрібного поверху рукоятка механічно перекладається в положення “Нульове”. При цьому розриваються контакти в ланцюзі перемикача, котушка пускача знеструмлюється, двигун відключається від мережі, розмикаються контакти в ланцюзі його ротора і ліфт зупиняється. Після цього можна запустити рух ліфта в зворотну сторону.

Вантажний підйомник відноситься до пристроїв підвищеної небезпеки і в його схемі (як і в схемах будь-яких ліфтів) присутня велика кількість різних блокувальних контактів колійних вимикачів і контактів різних захисних пристроїв.

В даній схемі це шляхові (кінцеві) вимикачі контролюючі закриття дверей кабіни, шахти на нижньому і верхньому поверсі, підйому і спуску кабіни вище робочої верхньої і нижньої зони, контакти “слабини підйомних канатів”, які розмикаються при обриві або ослабленні каната, на якому важить кабіна підйомника, контакти обмежувача швидкості, ловителя і натягача приводу троса. Всього – 14 дискретних датчиків.

При розмиканні будь-якого з перерахованих контактів електродвигун підйомника повинен миттєво відключатися і загальмовується, тому всі датчики, контакт реле напруги і кнопка “Загальний стоп” включені послідовно в ланцюг котушок керуючих двигуном електромагнітних пускачів.

Створення програми для ПЛК для вантажного підйомника

Завдання полягало в тому, що б нічого не змінюючи в пристрої, в принципі роботи та органах управління підйомника перевести його схему з застарілого релейного виду на варіант з використанням програмованого контролера.

Перевага програмної форми управління установками полягає в тому, що в подальшому при бажанні програму можна легко доопрацювати, поліпшити зручність керування підйомником, поміняти логіку його роботи, поліпшити його функціональність. Але ці дії повинні супроводжуватися зміною в конструкції підйомника і додаванням в схему інших додаткових пристроїв. У нашому ж варіанті такого завдання не ставилося.

В даному випадку запропонований варіант модернізації електроустаткування вантажного підйомника шляхом зміни його схеми управління з таким підходом, що б, наприклад, для керуючого таким механізмом людини абсолютно нічого не змінилося.

Тому ми збережемо головний орган управління підйомником – важеля перемикач і залишимо в роботі асинхронний двигун з фазним ротором з його триступінчатим пуском, хоча так і хочеться його замінити на асинхронний двигун з короткозамкненим ротором, що включається через пристрій плавного пуску. Але поки так робити не будемо, так як це рішення дуже істотно спростить і так не надто складну електричну схему підйомника.

Отже, розділимо нашу схему на чотири зони (дивіться схему підйомника на малюнку).

У зоні 1 нічого чіпати не будемо, тому що вона відповідає за звуковий виклик ліфтера і контроль наявності напруги в схемі. Зона 2 з двигуном, електромагнітним гальмом і силовими контактами пускачів теж не зміниться. Всі апарати із зони 4 можна видалити, тому що порядком включення контактів в ланцюзі ротора двигуна при його запуску будуть управляти програмні таймери. Залишається зона 3. Основна модернізація торкнеться саме цієї зони.

В якості контролера візьмемо ПЛК фірми ОВЕН. Програму для нього будемо складати мовою . На мій погляд, це самий зручний мову для початківців. Він дуже схожий на мову функціональних блоків, але зі своїми невеликими особливостями. Дуже багато хто любить ще один чудовий мову – мову релейних діаграм. Я нічого не маю проти, але на складати програму для ПЛК мені зручніше, тому я використовував саме цю мову, але тут все на любітеля.Для складання програми використовуємо пакет CoDeSys 2.3.

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

Спочатку нам знадобляться блоки (Елемент І). На виході елемента знаходиться логічна одиниця (в програмі – тільки тоді, коли на всіх входах теж знаходяться логічні одиниці. Якщо стан навіть одного входу відрізняється від одиниці, то вихід скидається в нуль (в програмі – FALSE.

Цей елемент нам допоможе організувати все блокувальні контакти і контакти безпеки (дискретні входи), а їх у нас як ви пам’ятаєте 14 (в програмі вони позначені під назвою SQ1 – SQ14). На вхід блоку підключимо також контакт реле напруги і кнопу “Загальний стоп” (SB1). Для зручності сприйняття я завів всі контакти на 3 елементи, а потім використовував ще один для їх об’єднання в один ланцюг. 

За замовчуванням при додаванні в програму будь-якої функуіональний блок має 2 входи. У разі необхідності додати додатковий вхід потрібно навести на блок мишкою, натиснути у неї на праву клавішу і вибрати пункт “Вхід блоку”. Таким чином можна додати будь-яку необхідну кількість додаткових входів на блок.

Важеля перемикач підключений до двох входів контролера (в програмі – “SA_verh” і “SA_niz”). Перемикач в кожному зі своїх двох крайніх положень подає логічну одиницю на один з двох тригерів “RS_verh” або “RS_niz”). Тригер – аналог котушки пускача з блокувальним контактом в релейного схемою управління.

Для того щоб його включити потрібного подати логічну одиницю на контакт “”, для того щоб відключити – на “RESET” Вихід тригера “” передає сигнал на один з виходів контролера – “” або “” до яких підключені котушки електромагнітних пускачів. Пускачі перемикають контакти і управляють двигуном.

Триступеневий пуск в програмі організований з використанням 2-х таймерів “ТОN”. При подачі логічної одиниці на вхід таймера “” він відраховує час заданий на вході “” і перемикає з витримкою часу вихід “” з логічного нуля в одиницю. Після спрацьовування первгого таймера (Т1) за сигналом з його виходу (Q) запускається відлік часу на другому таймері (Т2) і через час заданий на вході PT другий таймер теж подає на свій вихід (Q) логічну одиницю.

До виходів контролера (в програмі -, і підключено 3 котушки електромагнітних пускача. Перший з них включається відразу при включенні КМ1 або Кі підключає до ротора двигуна максимальний опір, і включаються за таймером і по черзі закорачивается частина пускового опору. Після запуску двигуна все три пускача залишаються у включеному положенні.

Елемент (логічне АБО) потрібен для того, що б одночасно із запуском одного з двох основних пускачів, в роботу включалася частина схеми, що відповідає за триступеневий пуск двигуна. При наявності логічної одиниці на одному з входів елемента “”, на його вихід передається логічна одиниця, тобто для його спрацьовування досить сигналу на будь-якому з його входів.

Між таймерами і виходами контролера включені елементи з одним з інверсних входів (гурток на вході). У даного елемента логічна одиниця на виході з’являється тільки тоді, коли на звичайний вхід поданий сигнал логічної одиниці, ка на інверсний – логічного нуля.

Такий же елемент, тільки вже з двома інверсними входами знаходиться поруч з входами “SA_verh” і “SA_niz”, які беруть сигнали від важеля перемикача. Це потрібно для того, що б забезпечити відключення всіх пускачів на виходах при поверненні перемикача в нульове положення, коли обидві ланцюга “Вгору” та “Вниз” розімкнуті.

При наявності двох логічних нулів на вході такого елемента дає логічну одиницю на виході елемента. Цей сигнал приходить за програмою на вхід тригерів “RESET”, тригери скидаються в нуль і пускачі на виходах відключаються. Елементи з одним інверсним входом між таймерами і виходами і відключають ці виходи і, відповідно, відключають пускачі відповідають за шунтування опорів в ланцюзі ротора при зупинці двигуна.

Для установки інверсного входу або виходу необхідно підвести мишку до фукціонального блоку, вибрати потрібний вхід або вихід, натиснути праву кнопку мишки і вибрати “Інверсія”. Аналогічним чином можна будь-інверсний вхід або вихід перетворити в звичайний. 

Елементи під номерами 5 і 10 не дають включитися пускачів, які відповідають за рух двигуна “Вгору” та “Вниз” одночасно (захист від короткого замикання в ланцюгах силових контактів пускачів при одночасному їх включенні). Хоча в даній схемі з перемикачем важеля це і так не можливо. Але так як блокувальні контакти такого типу були присутні у вихідній релейного схемою, то вирішено було їх зберегти і в програмі для ПЛК.

Ну і нарешті, залишилося забезпечити миттєве відключення електродвигуна при розмиканні будь-якого з контактів на вході. Наявність тригерів в схемі не дозволяло спочатку це зробити. Для того щоб схема працювала коректно при будь-якої аварійної ситуації (спрацьовування контактів безпеки, контактів колійних вимикачів, контакту реле напруги або кнопки “Загальний стоп”) в схему була додана два ланцюжки з елементів і і 7). 

Елемент NOT преварщает логічну одиницю на вході в логічний нуль на виході і навпаки – нуль на вході в одиницю на виході. Чи зможете пояснити як працюють в програмі ланцюжка з NOT і OR? Напишіть в коментарях.

Емуляція роботи програми на мові CFC в CoDeSys

Після створення програми її можна перевірити в CoDeSys в режимі емуляції. Для цього потрібно у вкладці “Онлайн” вибрати “Режим емуляції”, натиснути кнопку “Підключення”, потім виставити на всіх входах логічний одиницю – “”, записати ці значення в програму натиснувши “” і натиснути для старту.

Режим емуляції CoDeSys:

Імітуючи перемикання входів ( “” і “FALSE”) можна дивитися за зміною ланцюгів в синій колір (шлях проходження сигналів) і зміною станом виходів. Після кожної зміни стану входу не забувайте записувати ці значення в програму натискаючи “”. Для відключення режиму емуляції натисніть “Стоп”, потім “Відключення” на вкладці “Онлайн” і зніміть галочку “Режим емуляції”.

висновок

Ще раз хочу відзначити, що цей проект був пов’язаний виключно з навчальною метою і навіть на реальному програмованому контролері поки не тестувався. Якщо у вас виникли питання і щось з викладеного залишилося не зрозуміло, питайте в коментарях, я спробую на них відповісти. І ще для мене дуже важливо отримати відповідь на питання – чи продовжувати робити статті на таку тему? Загалом, готовий вислухати будь-які конструктивні зауваження і пропозиції.

Андрій повну

Ссылка на основную публикацию