Саморобний полковник. Принцип роботи та основи програмування полковник. Як же програмувати

Програмовані логічні контролери (ПЛК)

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

У сучасній промисловості існує велика кількість різних систем і процесів, що вимагають автоматизації, але тепер такі системи рідко проектуються з реле. Сучасні виробничі процеси потребують пристрої, який запрограмовано на виконання різних логічних функцій. В кінці 1960-х років американська компанія «Bedford Associates» розробила комп'ютерний пристрій, назване MODICON (Modular Digital Controller). Пізніше назва пристрою стало назвою підрозділу компанії, спроектувала, що зробила і продала його.

Інші компанії розробили власні версії цього пристрою, і, врешті-решт, воно стало відоме як ПЛК, або програмований логічний контролер. Метою програмованого контролера, здатного імітувати роботу великої кількості реле, була заміна електромеханічних реле на.

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

ПЛК легкі в програмуванні, так як їх програмну мову нагадує логіку роботи реле. Так звичайний промисловий електрик або інженер-електрик, який звик читати схеми релейного логіки, буде відчувати себе комфортно і при програмуванні ПЛК на виконання тих же функцій.

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

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

Шість гвинтових клем, розташованих з лівого боку, забезпечують підключення для вхідних пристроїв. Кожна клема представляє свій вхідний канал (Х). Гвинтові клема ( «спільне» підключення) розташована в лівому нижньому кутку зазвичай підключається до L2 (нейтральна) джерела струму напругою 120 В змінного струму.

Усередині корпусу ПЛК, що зв'язує кожну вхідну клему із загальною клемою, знаходиться Оптоізолятори пристрої (світлодіод), який забезпечує електрично ізольований «високий» сигнал для схеми комп'ютера (фототранзистор інтерпретує світло світлодіода), коли 120-тівольтний змінний струм встановлюється між відповідною вхідною клемою і загальної клемою. Світлодіод на передній панелі ПЛК дає можливість зрозуміти, який був прихід знаходиться під напругою:

Вихідні сигнали генеруються комп'ютерної схемотехнікою ПЛК, активуючи перемикаючий пристрій (транзистор, тиристор або навіть електромеханічне реле) і пов'язуючи клему «Джерело» (правий нижній кут) з будь-яким позначеним літерою Y виходом. Клема «Джерело» зазвичай пов'язується з L1. Так само, як і кожен вхід, кожен вихід, знаходить під напругою, відзначається за допомогою світлодіода:

Таким чином, ПЛК може підключатися до будь-яких пристроїв, таким як перемикачі і електромагніти.

Основи програмування ПЛК

Сучасна логіка системи управління встановлена \u200b\u200bв ПЛК за допомогою комп'ютерної програми. Ця програма визначає, які виходи знаходяться під напругою і за яких вхідних умовах. Хоча сама програма нагадують схему логіки реле, в ній не існує ніяких контактів перемикача або котушок реле, що діють всередині ПЛК для створення зв'язків між входом і виходом. Ці контакти і котушки уявні. Програма пишеться і проглядається за допомогою персонального комп'ютера, Підключеного до порту програмування ПЛК.

Розглянемо наступну схему і програму ПЛК:

Коли кнопковий перемикач не задіяне (знаходиться не в натиснутому стані), оповіщення не надсилається на вхід Х1. У відповідність з програмою, яка показує «відкритий» вхід Х1, оповіщення не буде надсилатися і на вихід Y1. Таким чином, вихід Y1 залишиться знеструмленим, а індикатор, підключений до нього, згаслим.

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

Слід розуміти, що контакт Х1 і котушка Y1 з'єднані за допомогою дротів, а «сигнал», що з'являється на моніторі комп'ютера, віртуальний. Вони не існують як реальні електричні компоненти. Вони присутні тільки в комп'ютерній програмі - частина програмного забезпечення - і всього лише нагадують те, що відбувається в схемі реле.

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

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

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

На наступному зображенні ви побачите вже змінену програму, при не активізованому перемикачі:

А тут перемикач активізований:

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

Щоб побудувати аналогічну схему, використовуючи реле, будуть потрібні три реле з двома відкритими контактами при нормальних умовах, кожен з яких повинен бути використаний. Однак використовуючи ПЛК, ми можемо без додавання додаткового обладнання запрограмувати стільки контактів для кожного «Х» входу, скільки нам хотілося б (кожен вхід і вихід повинен займати не більше, ніж 1 біт в цифровій пам'яті ПЛК) та викликати їх стільки разів, скільки необхідно .

Крім того, так як кожен вихід ПЛК займає не більше одного біта в його пам'яті, ми можемо вносити контакти в програму, приводячи Y вихід в не активована стан. Для прикладу візьмемо схему двигуна з системою контролю початку руху і зупинки:

Перемикач, підключений до входу Х1, служить кнопкою «Старт», в той час як перемикач, підключений до входу Х2 - кнопкою «Стоп». Інший контакт, названий Y1, подібно друку в контакті, дозволяє контактора двигуна залишатися під напругою, навіть якщо відпустити кнопку «Старт». При цьому ви можете побачити, як контакт Х2, «закритий» при нормальних умовах, з'явиться в кольоровому блоці, показуючи тим самим, що він знаходиться в «закритому» ( «електропровідному») стані.

Якщо натиснути кнопку «Старт», то по «закритому» контакту Х1 пройде ток ток і він відправить 120 В змінного Токак до контактора двигуна. Паралельний контакт Y1 також «закриється», тим самим замкнувши ланцюг:

Якщо ми тепер натиснемо кнопку «Старт», контакт Х1 перейде в «відкрите» стан, але двигун буде продовжувати працювати, тому що замкнутий контакт Y1 все ще буде тримати котушку під напругою:

Щоб зупинити двигун, потрібно швидко натиснути кнопку «Стоп», яка повідомить напруга входу Х1 і «відкритого» контакту, що призведе до припинення подачі напруги до котушки Y1:

Коли ви натиснули кнопку «Стоп», вхід Х1 залишився без напруги, повернувши тим самим контакт Х1 в його нормальне «закрите» стан. Двигун ні за яких умов не стане працювати знову, поки ви знову натиснете кнопку «Старт», тому що друк в контакті Y1 була втрачена:

Дуже важлива відмовостійка модель пристроїв контролю ПЛК, так само, як і в пристроях контролю електромеханічного реле. Потрібно завжди враховувати вплив помилково «відкритого» контакту на роботу системи. Так, наприклад, в нашому випадку, якщо контакт Х2 буде помилково «відкритий», то не буде ніякої можливості зупинити двигун!

Вирішенням цієї проблеми є перепрограмування контакту Х2 всередині ПЛК та фактичне натискання кнопки «Стоп»:

Коли кнопка «Стоп» не було натиснуто, вхід ПЛК Х2 знаходиться під напругою, тобто контакт Х2 «закритий». Це дозволяє двигуну почати роботу, коли контакту Х1 повідомляється струм, і продовжувати роботу, коли кнопка «Старт» відпущена. Коли ви натискаєте кнопку «Стоп», контакт Х2 переходить в «відкрите» стан і двигун перестає працювати. Таким чином, ви можете побачити, що функціональної різниці між цією і попередньою моделлю немає.

Проте, якщо вхідний контакт Х2 був помилково «відкритий», вхід Х2 може бути зупинений натисканням кнопки «Стоп». В результаті двигун негайно відключається. Ця модель безпечніше, ніж попередня, де натискання кнопки «Стоп» унеможливить зупинку двигуна.

На додаток до входів (Х) і виходів (Y) в ПЛК є можливість використовувати «внутрішні контакти і котушки. Вони використовуються так само, як і проміжні реле, що застосовуються в стандартних релейних схемах.

Щоб зрозуміти принцип роботи «внутрішніх» схем і контактів, розглянемо наступну схему і програму, розроблену за принципом трьох входів логічної функції AND:

В даній схемі, лампа горить, до тих пора поки котрась із кнопок не натиснута. Для того щоб вимкнути лампу слід натиснути все три кнопки:

У цій статті, присвяченій програмованим логічним контролерам, ілюстрована лише невелика вибірка їх можливостей. Як комп'ютер ПЛК може виконувати і інші розширені функції з набагато більшою точністю і надійністю, ніж при використанні електромеханічних логічних пристроїв. Більшість ПЛК мають більше шести входів і виходів. Наступна ілюстрація показує один з ПЛК компанії Allen-Bradley:

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

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

Переклад з англійської - Юлія Сурт.

Я займаюся розробкою програм для програмованих логічних контролерів (ПЛК) в промислових автоматизованих системах управління технологічними процесами (АСУ ТП).

Для тих, хто стикається з цим словом вперше, поясню. ПЛК це спеціальний міні-комп'ютер, який працює так:
1. Приймає вхідні дискретні (Di) або аналогові (Ai) сигнали;
2. Обробляє ці сигнали по заданій програмістом програмі;
3. Видає керуючий сигнал через дискретні (DO) або аналогові (AO) виходу.

Дискретний - коли у сигналу може бути тільки 2 стани: 0 або 1, «так» або «ні». Наприклад, кнопка натиснута або відтиснуті, лампочка включена або виключена.
Аналоговий - коли значення параметра залежить від рівня електричного сигналу. Наприклад, чим вище рівень сигналу (вольт або міліампер) від датчика температури, тим більше вимірюється температура.

Застосовуються ПЛК в основному в промисловості, верстатах, системах домашньої автоматизації «розумний будинок» і т.д.

Природно, в силу професії мене цікавить все, що стосується ПЛК та іншого устаткування, яке застосовується в АСУ ТП. Якось, блукаючи по мережі, я зайшов на сайт американської компанії Velocio, яка виробляє ПЛК серій Ace, Branch, Embeded.

Головні фішки цих контролерів - маленький розмір, всього 2.5 "" x 2.5 "", харчування 5 вольт і ціна від 49 $ за модель з 6 дискретними входами і 6 дискретними виходами. Особливо вразив розмір, такого маленького ПЛК я ще не зустрічав:

ПЛК мене зацікавив, я зв'язався з компанією Velocio і мені прислали контролер моделі Ace 3090v5. Хотілося б коротенько розповісти про це ПЛК і більш широкої аудиторії Хабра. Забігаючи вперед скажу, що ПЛК компанії Velocio найкраще підходять для «розумних будинків» та інших систем домашньої автоматизації.

Ось до мене прийшла посилочка з контролером прям з міста Хантсвілл, штат Алабама:

Склад посилки:
1. ПЛК Velocio Ace 3090v5, $ 179
2. Кріплення на DIN-рейку, $ 5
3. Коннектори сигнальних ліній (3,4,8 pin, крок 2.5 мм), 6 шт., $ 6 * 3
4. Викрутка плоска, жало 1.5 мм, безкоштовно
5. Конектор живлення (2 pin, крок 2.5 мм), $ 2
6. Кабель USB Am-miniB, $ 5

Кабель USB для програмування Ace не обов'язково купувати в Velocio, це звичайний кабель USB Am-miniB, який продається в будь-якому комп'ютерному магазині. Коннектори теж можна пошукати в іншому місці, але кріплення на DIN-рейку унікально і його потрібно купувати разом з контролером.

Очікування Ace 3090v5 виправдав, він дійсно дуже маленький:

Характеристики:

Назва Velocio Ace 3090v5
призначення ПЛК для домашньої і промислової автоматизації
Кількість DI 6
Кількість DO 18, транзисторні
AI Кількість, всього 7
Кількість AI 16 біт / тип 4 / Термопари J, K, T, N;
± 0.256 V, ± 0.512 V, ± 1.024 V, ± 2.048 V
Кількість AI 12 біт / тип 3/0 ... + 5 V
порти зв'язку Mini USB (може працювати по Modbus), RS-232
Протоколи передачі даних Modbus RTU slave
Швидкість передачі даних, bps 9600, 19200, 38400, 57600
кріплення DIN-рейка
харчування 5 V DC
Габарити 63.5х63.5х12.7 мм
температура експлуатації -40 ... 85 ° С
Ступінь захисту IP IP65
Середовище програмування Velocio vBuilder, безкоштовна
Ціна 179 $

конструкція

При своїх розмірах, контролер в загальній сумі має 31 вхід і вихід, порт послідовної зв'язку RS-232 і порт Mini USB для завантаження програм і зв'язку з зовнішніми пристроями.

Спереду на корпусі видно світлодіоди індикації харчування і стану дискретних входів і виходів:

Ззаду на корпусі є виїмки для монтажу кріплення на DIN-рейку:


На бічних стінках корпусу знаходяться порти для підключення всіх сигналів через роз'єми. Порти маркуються літерами A, B, C, D, E, F:


Підключення проводів відбувається через коннектори COMBICON PTSM Series фірми Phoenix Contact з кроком ніжок 2.5 мм (0.098 ""):

Вставляються дроти в коннектор з допомогою що йде в комплекті з ПЛК викруткою так:

Дискретні вихода- транзисторні, на те є такі причини:

  • реле в корпус контролера все одно не поміститься
  • для забезпечення великого швидкодії, наприклад при управлінні кроковими двигунами
Природно, для комутації електричної мережі 220 В транзисторні виходу не підходять і потрібно після них ставити проміжні реле. Можна купити модулі з проміжними реле там же у Velocio, при покупці ПЛК. А можна заощадити і купити на ебее аналогічні китайські плати, як зробив я:

Аналогові входи (Ai) в Ace 3090v5 розділені на 2 групи:

  • 3 Ai із загальною землею в порту A, діапазон вхідних сигналів 0 ... 5 V
  • 4 Ai диференціальних в порту F, підключення датчиків температури (термопар) типу J, K, T, N, а так само міллівольтних сигналів
Ось я підключив на вхід Ai F1 термопару типу «К» від китайського тестера і вивів значення температури на ноутбук:

До речі, в цьому прикладі я термопару в контролері не калібрований. Проте, показники температури відповідали значенням спиртового градусника, який виступав у мене в ролі контрольного приладу.

Ace відрізняється маленьким енергоспоживанням: 5 В при макс. силі струму до 0.3 А. Тобто, в якості блоку живлення можна використовувати 5-вольтную зарядку для мобільника.

програмування

Розробка програм здійснюється через безкоштовну середу програмування vBuilder. У пакеті установки знаходиться так само драйвер віртуального COM-порту, необхідний для підключення контролера до комп'ютера:

Вивчення vBuilder краще почати з перегляду відеоуроків. Є так само повна документація англійською мовою під назвою «vBuilder Manual» в кілька сотень сторінок.

Розробка програм можлива на двох графічних мовах: мовою релейного логіки (Ladder Logic) і мовою блок-схем (Flow Chart).

Мова релейного логіки (Ladder Logic) це добре відомий всім програмістам ПЛК мову, який є одним з стандартизованих за стандартом IEC 61131-3 промисловим мовою.
LD придумали спеціально для того, що б на ньому писали програми не тільки програмісти, але і звичайні електрики. Програма на LD і виглядає, як електрична схема:

Це легкий для вивчення і роботи мову.

Мова блок-схем (Flow Chart) це графічна мова, на якому програма створюється у вигляді блок-схем:

Блок-схеми та принципи їх побудови багато хто пам'ятає ще з часів інформатики в школі. Наприклад, я закінчив 11 клас в 1999 році, в похмурі часи пострадянського комп'ютерного середньовіччя. Тоді фірма «Інтел» вже торгувала процесорами Pentium-II, Білл Гейтс продавав Windows 98, а в нашій школі стояли радянські комп'ютери «Електроніка» з чорно-білими екранами. Більшу частину уроку ми сиділи за партою і малювали програми в зошитах саме блок-схемами. Потім переводили їх на бейсик, сідали за «Електроніку» (по 4 людини на машину) і вже після вводили в комп'ютер. А в інших школах взагалі комп'ютерів не було.

Так що для початківців мову Flow Chart навіть легше, ніж LD. При цьому, на мою думку, він наочніше і дозволяє створювати більш складні програми. До речі, блок-схеми я часто використовую і зараз, працюючи з різними ПЛК. Коли мені потрібно продумати який-небудь складний алгоритм, я спочатку малюю блок-схеми на листочку, а потім вже перекладаю їх у програму на конкретній мові.

В обох мовах програмування доступні одні і ті ж програмні блоки:

  • порівняння (<, >, \u003d І ін.)
  • присвоювання з можливістю введення формул
  • копіювання
  • лічильник
  • таймер
  • годинник реального часу
  • цифровий фільтр
  • читання енкодерів
  • управління кроковим двигуном
  • ПІД-регулятор
  • плавний пуск / зупинка
  • масштабування
  • побітовий зрушення і «переворот» числа
  • статистика
  • управління com-портом для реалізації власних протоколів передачі даних
  • виклик підпрограм
Як «швидкого Хелп» з програмних блоках використовується та ж сторінка завантаження vBulder. Просто тиснеш по піктограм відповідних блоків vBuilder справа на сторінці і читаєш, як вони працюють:

Якщо з англійським зовсім туго, на допомогу прийде перекладач браузера Ghrome: права кнопка миші-\u003e перекласти російською. Переклад технічний, але сенс буде зрозумілий.

Доступні можливості при програмуванні:

  • створення власних змінних (тегів) типу bit, unsigned int 8/16 bit, signed int 16/32 bit, float;
  • створення масивів;
  • створення підпрограм;
  • причому, підпрограми тут це об'єкти на кшталт FB як в Step-7 і Codesys;
  • кожному входу / виходу та тегами можна призначити адресу для передачі їх значень по Modbus;
  • зв'язок по Modbus з ПК, сенсорними панелями і ін. по Modbus в режимі slave; можливе підключення по Modbus до 2-м майстер-пристроїв одночасно;
  • можливість реалізовувати власні протоколи передачі даних по RS-232;
  • налагодження програми по кроках.

Підключення Ace до комп'ютера і сенсорним панелям

Для зв'язку з зовнішніми пристроями по мережі в Ace 3090v5 є 2 порти: RS-232 і USB. Обидва цих порту можуть передавати дані по протоколу Modbus RTU slave. Одночасно до Ace можуть бути підключені 2 майстер пристрою. Наприклад, комп'ютер по USB, а сенсорна панель по RS-232. Для управління з комп'ютера застосовуються спеціальні програми типу SCADA, але можна і на якомусь візуал бейсике програму написати.

RS-232 це старий добрий COM-порт комп'ютера. Раніше в нього миші підключалися. Для підключення комп'ютера до Ace я і знайшов стару комовскую миша з кулькою, відрізав від неї хвіст і підключив його до 3-піновий роз'єму RS-232 AСE ось за такою схемою:

Якщо в комп'ютері немає COM-порту, потрібно купити будь-який перетворювач USB / RS-232 за ціною близько $ 8.

Варіанти реалізації обміну даними Ace з зовнішніми пристроями:

  • по внутрішньому протоколу Ace для зв'язку з комп'ютером, на якому встановлена \u200b\u200bбезкоштовна SCADA vFactory;
  • за універсальним протоколу передачі даних Modbus RTU для зв'язку з комп'ютерами, сенсорними панелями і іншими ПЛК;
  • за власним протоколу, реалізованому програмним шляхом в контролері.
Безкоштовна СКАДА vFactory працює тільки з ПЛК компанії Velocio, тому що використовує не Modbus, а внутрішній закритий протокол контролерів. Документації на vFactory немає, щоб їй опанувати, досить одного видеоурока. Дуже проста СКАДА без скриптового мови і можливості ведення архівів. Панель інструментів невелика:

Зате, можна швидко зробити працюючу програму без особливих навичок програмування:

Якщо можливостей vFactory замало, можна підключити по протоколу Modbus RTU будь-яку іншу SCADA. Наприклад, в ролику з термопарою, я застосував SCADA Trace Mode 6 Base.

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

ПЛК Ace в домашньої автоматизації

Думаю, цей контролер добре себе покаже в системі «розумний дім». Плюси контролера: маленький розмір, мале енергоспоживання, харчування за все від 5 В, безліч дискретних виходів, можливість підключення термопар, 2 порти зв'язку з зовнішніми пристроями, легкість програмування, велика кількість різних програмних блоків.

Якщо контролер Ace сподобався, але 6 дискретних входів замало, можна придивитися до серії Branch - той же Ace, тільки з можливістю підключення модулів розширення (до 450 входів / виходів). Втім, це вже без мене - мені поки вистачить погратися Ace.

Теги: Додати теги

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

Однак, слід зазначити, що в умовах виробництва дуже часто не потрібно великих обчислювальних потужностей. Більшість верстатів, що використовуються у виробництві, виконують чітко задані операції і не є універсальними. Дуже часто у цих верстатів навіть немає дисплея, а всі параметри задаються за допомогою кнопок або перемикачів. Грубо кажучи, встановлені на цих верстатах ПЛК часом використовуються для заміни стійки з пускателями / реле / \u200b\u200bкінцевиками. І досить часто зустрічаються ситуації, коли на заміну застарілого обладнання, виконаного з використанням пускачів, надходить обладнання цього ж виробника з аналогічною функціональністю, але вже з використанням ПЛК.

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

Саме з міркувань, викладених вище, була розроблена схема простого ПЛК для заміни вийшов з ладу ПЛК KUAX667 на швейному автоматі VS3005 - AMF Reece S 2000. Не будемо зупинятися на описі даного швейного автомата, тим більше, що розглянута тут схема повторно використовувалася на іншому верстаті в меблевому виробництві. При розробці ПЛК ставилося завдання створити схему максимально дешеву, з доступних деталей, з можливістю діагностики навіть з урахуванням відсутності дисплея. Також було прийнято рішення відмовитися від гальванічної розв'язки вхідних ланцюгів, оскільки датчиками служили кнопки, концевики і перемикачі, які здійснюють простий механічної контакт.

Схема пристрою і принцип роботи аналогічні побудови більшості промислових ПЛК. Є центральний мікроконтролер і є порти введення-виведення.

За основу взято мікроконтролер фірми PIC12F629. Цей мікроконтролер вибраний виходячи з доступності і дешевизни. Входу і виходи реалізовані за допомогою зсувних регістрів. Логічно вони розбиті на дві групи по 8 контактів. Передача даних відбувається в послідовному вигляді. Протокол передачі даних ідентичний протоколу SPI, проте він повністю реалізований програмно і на 16 біт. Ланцюги для вхідних даних і вихідних даних зроблені роздільними. Це, на мій погляд, полегшує розуміння роботи і спрощує контроль. Крім того це дозволило використовувати раніше написані модулі для прийому-передачі даних в зсувні регістри. Ну і все-одно ці висновки залишилися б невикористаними, так навіщо пропадати добру :). Вхідними елементами є концевики, кнопки, перемикачі з комутацією на загальний провід. Тому входу реалізовані без використання оптопар. Звичайно, це знижує надійність схеми. Але, як показала практика, ПЛК працює стабільно. При використанні регістрів 155ІР9 або 555ІР9 підтягує резистори до +5 В можна не встановлювати (саме цей варіант представлений на фото нижче). При використанні регістрів 74HC165 наявність підтягують резисторів обов'язково. Особливо слід відзначити вхід 1.0. Цей вхід реалізований з використанням оптопари і розширювачем імпульсів на мікросхемі 155ЛА3. В одному з верстатів датчиком вироблявся імпульс +24 Вольта і тривалістю близько 1 мксек. Оскільки реальна частота опитування входів становила близько 1 кГц, то був ризик, що імпульс буде пропущений. Для виключення цього в схему був введений розширювач імпульсів, що збільшує час імпульсу приблизно до 0,1 сек. Час імпульсу визначається елементами C1, R4. Перестановкою джамперів на платі (на схемі джампери не вказані, їх можна відстежити по друкованій платі) можлива комутація входу 1.0 минаючи оптопару, минаючи розширювач імпульсів або минаючи оптопару і розширювач імпульсів. Завдяки вбудованим в регістри триггерам, фіксуючим вхідні рівні за сигналом строба, виключена можлива невизначеність рівнів логічний "0" або "1". Це, а також послідовний опитування вхідних ланцюгів мікро контролером, дозволило не враховувати явище "брязкоту", характерне для механічних датчиків. Виконавчими механізмами є обмотки пневмоклапанов і реле, які під'єднані до зсувними регістрів 74HC595 через мікросхеми-драйвера ULN2803. Харчування здійснюється від джерела постійної напруги +24 Вольта, наявного в верстаті для харчування обмоток реле і пневмоклапанов, через імпульсний стабілізатор напруги на LM2576 (мікросхема в корпусі TO-263 для поверхневого монтажу, розташована з боку фольги, фольга ж служить і радіатором), включеної за типовою схемою.

Вся схема зібрана на платі 100 * 130 мм. Поряд з кожною мікросхемою по харчуванню варто конденсатор, ємністю по 0,1 mkF (на схемі не показані). Як вже вище зазначалося, в пристрої використовувалися мікросхеми 555ІР9, які не потребують підтягують резисторів. Проте, для використання 74HC165, на платі передбачена можливість установки підтягують резисторів, які можуть бути від 1 до 10 кОм. Як підтягують резисторів добре використовувати збірки опорів типу 9A472J (невикористовувані висновки просто обкушує), які широко застосовувалися в комп'ютерах на базі 286-486 процесорів.

Програма для мікроконтролера написана в середовищі PIC Simulator IDE, яка використовує діалект мови BASIC. Використання BASIC дозволяє легко розробляти програми не особливо занурюючись в архітектуру мікроконтролерів. Крім того, так чи інакше, з реалізаціями мови BASIC доводиться стикатися починаючи зі шкільної лави і у більшості непрофесійних розробників він не викликає шанобливого побоювання. Розглянемо програму і зупинимося на тих місцях, де безпосередньо відбувається настройка на той чи інший верстат.

Програма додається в повної версії для швейного автомата. Спочатку йде секція опису змінних і символів. При переробці програми під інше обладнання незмінними будуть рядки з 7 по 11, тут оголошуються змінні для отриманих / переданих даних і службова змінна і з 18 по 28, що відносяться до опису контактів для протоколу прийому / передачі даних. Далі в програмі з 50-ї по 96-ю рядки йде перевірка на включення режиму "Тест" і реалізація тестового режиму. Режим "Тест" включається установкою перемички між висновком GP2 (5-й висновок) і загальною шиною (кнопка "Test" за схемою) до подачі живлення на схему. При подачі живлення мікроконтролер встановлює висновок GP2 як вхід (рядок 54), включаємо підтягує резистори (стоки 64,65), виробляє опитування стану виведення GP2 (рядок 76). Якщо режим тестування встановлено, то після зняття перемички починається нескінченний цикл (стоки 81-95), в якому стан виходів безпосередньо залежить від стану входів. Таким чином послідовно замикаючи входу ми можемо перевірити спрацьовування виконавчих елементів, приєднаних до виходів, тобто провести тестування обладнання від датчиків до виконавчих механізмів.

При подачі живлення без встановленої перемички мікроконтролер перейде до ділянки програми, де запрограмований безпосередньо робочий режим верстата (в даній програмі це рядки 98-261). Ця частина програми залишена для прикладу і, оскільки вона прив'язана безпосередньо до обладнання, то особливо її розглядати не будемо. Зупинимося лише на загальних принципах роботи і підпрограма прийому-посилки даних. У найпростішому випадку при роботі обладнання проводиться опитування входів (підпрограма data_input, використовувана в ній підпрограма sinchro_input). Стан входів в програмі зберігається в змінних data_in1 і data_in2. Залежно від алгоритму роботи обладнання в програмі аналізується стан входів, приймається рішення про зміну стану виходів і це рішення записується в дані data_out1 і data_out2. Після цього проводиться виведення даних (підпрограма data_out, використовувана в ній підпрограма sinchro_out). І так цикл повторюється до припинення подачі живлення. У разі необхідності можлива організація програми з використанням переривань мікроконтролера. Наприклад, це може знадобиться при здійсненні операцій на обладнанні, обмежених у часі.

При програмуванні мікроконтролера необхідно встановити слово конфігурації в & h31С4. Розшифровку можна подивитися на малюнку нижче.

P.S. Цей абзац спеціально для критиків. Як вже вище зазначалося, програма писалася не «з нуля", а з використанням вже готових напрацювань. Тому в програмі багато коментарів від попередніх програм, в тому числі є і коментарі, щодо використання переривань за таймером. Я спеціально не став їх прибирати, оскільки вважаю, що вони можуть допомогти іншим людям при модифікації програми. Якщо ж дану програму переписати заново, то напевно можна досягти більш оптимального коду і більш високої частоти опитування вхідних елементів. Як говориться "немає такої програми, яку не можна скоротити хоча б на одну команду". Але навіть в такому вигляді програма займає менше 700 байт і верстат, під керуванням даної програми, працює стабільно.

Ну і наостанок фотографії зібраної і встановленої в верстат плати.

В архіві:
1. PLC 12F629 - вихідний файл і HEX \u200b\u200bфайл.
2. Проект ст.
3. Друкована плата в

список радіоелементів

позначення Тип Номінал кількість ПриміткаМагазинМій блокнот
U1 МК PIC 8-біт

PIC12F629

1 В блокнот
U2, U3 зсувний регістр

SN74HC595

2 В блокнот
U4, U5 зсувний регістр

SN74HC165

2 В блокнот
U6 вентиль

SN7400

1 В блокнот
U7 оптопара