Сьогодні я ділюся практичною статтею, щоб допомогти вам зрозуміти, як виглядає ідеальна програма ПЛК, і надаю стандарти програмування ПЛК і пропозиції щодо практичної роботи.
Вимоги до дизайну ідеальної програми ПЛК:
Повна програма ПЛК – це не просто забезпечення роботи системи; це також вимагає повних коментарів, добре-структурованої архітектури, гарної масштабованості, комплексної системи сигналізації та захисту, а також-системи попереднього моделювання.
1. Простота
Зробіть програму PLC максимально простою. Простота означає використання стандартизованої програми та простих інструкцій. Загалом кажучи, це передбачає оптимізацію структури програми та спрощення програми за допомогою інструкцій керування потоком. Точніше, це означає заміну одно-функціональних інструкцій на більш потужні та звернення уваги на порядок інструкцій.
2. Читабельність
Розроблена програма повинна бути легко читабельною. Це не тільки допомагає програмісту краще зрозуміти програму та полегшує налагодження, але й полегшує її розуміння для інших і для користувачів – для підтримки. Це також має сприяти розповсюдженню програми, коли це необхідно.
Щоб забезпечити хорошу читабельність, дизайн програми має бути максимально зрозумілим. Зверніть увагу на ієрархію та модульність, навіть використовуючи об’єктно-методи проектування. Використовуйте стандартні практики проектування якомога більше.
Якщо мови програмування використовуються в особливих випадках, у більшості випадків слід використовувати сходові діаграми для полегшення читання. Розподіл вводу/виводу має бути систематичним для легшого запам’ятовування та розуміння. За необхідності додайте коментарі. Використання внутрішніх компонентів також має бути систематичним; уникайте їх випадкового використання.
Читабельність слід розглядати з самого початку розробки програми. Цього нелегко досягти повністю, тому що під час налагодження програми додавання або видалення інструкцій і зміни у використанні внутрішніх компонентів можуть зробити спочатку зрозумілу програму дещо брудною. Тому дозвольте коригування під час налагодження на етапі проектування, а потім наведіть порядок після налагодження. Це призведе до більш високої якості програми.
Коментарі до програми повинні містити принаймні таке:
A. Системні коментарі: власник авторських прав і мета всієї програми; B. Блок коментарів: Основна мета та автор блоку; C. Коментарі сегмента: призначення сегмента коду; D. Коментарі змінних: важливість-очевидна, включаючи коментарі введення/виведення та коментарі проміжних змінних. Що стосується міркувань конфіденційності, їх слід вирішувати за допомогою алгоритму шифрування або блокового шифрування програми, а не шляхом зменшення коментарів.
3. Правильність
Програма PLC має бути правильною та перевіреною під час фактичної роботи, щоб підтвердити її правильну роботу. Це найважливіша вимога до програми ПЛК; якщо цього не досягти, незалежно від того, наскільки хороші інші аспекти, вони марні.
Щоб забезпечити коректність програми, необхідно точно використовувати інструкції та внутрішні пристрої. Точне використання інструкцій пов’язане з точним їх розумінням; тому значення та умови використання інструкцій повинні бути повністю зрозумілі. При необхідності можна написати невеликі програми для перевірки деяких незрозумілих інструкцій.
Для однієї інструкції, через відмінності у виробничих партіях ПЛК або серійних моделях, деякі деталі інструкцій можуть відрізнятися. Необхідно уважно ознайомитися з посібником з програмування.
Також важливо правильно використовувати внутрішні пристрої. Наприклад, деякі ПЛК мають-захист від вимкнення живлення, а інші — ні. Важливо переконатися, що використовуються пристрої, які потребують-захисту живлення, і навпаки.
Коротше кажучи, найфундаментальнішою вимогою до програм ПЛК є точне використання інструкцій і правильне використання внутрішніх компонентів для забезпечення правильного виконання запрограмованої програми.
Для простого прикладу ПЛК Siemens потребують змінних із функцією зберігання як проміжних змінних для наростаючих і спадаючих фронтів, таких як M-точки або DB-точки. Використання змінної temp FC може спричинити проблеми.
4. Надійність
Програми повинні бути не тільки коректними, але й надійними. Надійність відображає стабільність програми ПЛК, що також є основною вимогою.
Деякі програми ПЛК працюють належним чином за звичайних робочих умов або під час дозволених операцій, але не функціонують належним чином за ненормальних робочих умов (таких як тимчасове відключення електроенергії з наступним швидким відновленням живлення) або після незаконних операцій (таких як натискання кнопок не в порядку послідовності або натискання кількох кнопок одночасно). Такі програми є ненадійними, нестабільними або погано розробленими.
Хороші програми ПЛК можуть визначати ненормальні робочі умови та бездоганно інтегрувати їх із нормальними умовами, дозволяючи програмі адаптуватися до різних ситуацій. Хороша програма PLC може відхиляти незаконні операції, не залишаючи жодних «слідів», приймаючи лише законні операції.
Блокування є поширеним методом відхилення незаконних операцій; релейні схеми часто використовують цей метод, і ПЛК також можуть успадкувати цей підхід.
5. Легкість модифікації
Програму має бути легко модифікованою. Однією з характеристик ПЛК є його зручність і гнучкість в адаптації до різних ситуацій. Це досягається шляхом модифікації або переробки програми.
Редизайн програми використовується, коли потрібно змінити вимоги програми до процесу ПЛК. Мало того, що програма переписується, але введення/виведення також потребує перерозподілу. У більшості випадків переписувати програму не потрібно; достатньо незначних змін. Це вимагає, щоб програму було легко модифікувати.
Легкість модифікації також означає гнучкість, що вимагає лише незначних змін для досягнення мети зміни параметрів або модифікації дій.
6. Розширюваність
Багато програм можуть бути попередньо-запрограмовані перед розгортанням на сайті, але додаткові програми може знадобитися додати на-сайт. Щоб уникнути порушення загальної структури системи, у кожній функціональній зоні має бути зарезервовано достатньо місця для резервного апаратного забезпечення. Програмне забезпечення має бути розроблено з урахуванням ручної, автоматичної та напівавтоматичної роботи, а простір має бути розподілено відповідно.
7. Комплексна система сигналізації
Системи ПЛК часто використовуються в промислових середовищах, де кожна аварія може спричинити великі чи малі втрати. Щоб забезпечити запобігання нещасним випадкам або мінімізувати збитки під час аварії, слід звернути увагу на функції сигналізації та захисту ПЛК. Тому це виділяється як важливий компонент системи.
8. Програмне моделювання
Щоб забезпечити -налагодження на місці або для демонстрацій клієнтам, перед розгортанням часто потрібна повністю автоматична симуляція програми. Це вимагає додавання розділу програми моделювання до існуючої програми, яка від’єднується після звичайної роботи на-сайті. Щоб увімкнути програму для виконання моделювання, необхідно виконати наступні кроки:
(1) Перетворення фактичних точок введення/виведення ПЛК у проміжні змінні або змінні блоку даних;
(2) Напишіть програми моделювання для кожної частини обладнання відповідно до вимог процесу.
Хорошою програмою PLC можна вважати ту, яка відповідає вищевказаним вимогам.
Специфікації програмування ПЛК
1. Виберіть відповідну модель ПЛК і кількість точок введення/виведення. Виберіть спеціальні функціональні модулі для конкретних функціональних вимог.
2. Ознайомтеся з вибраними інструкціями з програмування ПЛК і програмним забезпеченням компіляції.
3. Сплануйте програмні компоненти, включаючи внутрішні реле, реле утримання, регістри даних, таймери та лічильники.
4. Сплануйте програму, загалом дотримуючись послідовності виявлення помилок, обробки помилок, ручної обробки, автоматичної обробки та обробки вихідних даних. Більші проекти або обладнання слід розділити на функціональні одиниці, такі як ліфти, транспортні пристрої та підйомні/обертові пристрої в автоматизованій виробничій лінії. Вони повинні бути запрограмовані в сегментах і блоках відповідно до наведеної вище структури блоку.
5. Додайте короткі коментарі до сегментів перед кожною сегментованою або блочною-програмою, пояснюючи її функції. Якщо необхідно, вкажіть відповідний процес. Порядок сегментованих або блокових-програм у загальній програмі, як правило, має відповідати послідовності процесу для зручності читання.
6. Перед розробкою програми необхідно абстрагувати обладнання. Загальні фактори, такі як зупинка, аварійна зупинка, перевантаження, перевищення-ліміту, тайм-аут, світлова завіса безпеки, зупинка при зіткненні та дверний вимикач, слід вилучити та розмістити в ланцюзі запуску-запуску або головному ланцюзі керування та блокування-запуску. Це служить основною передумовою всієї структури програми. На основі цього програма розділена на дві основні функціональні області: автоматичну та ручну.
7. Загальні фактори в ручній функціональній зоні структури програми, такі як ручне керування та фактори, що загрожують обладнанню та особистій безпеці, повинні бути виділені та розміщені в ручному головному управлінні та схемі блокування для захисту, екранування та сигналізації для ручного керування.
8. Загальні фактори в області автоматичних функцій структури програми, такі як автоматична робота, перевищення -ліміту та фактори тайм-ауту, слід виділити та розмістити в схемі автоматичного головного керування та блокування для захисту, екранування та сигналізації для обладнання під автоматичним керуванням. Загальний принцип полягає в тому, щоб суворо обмежити вхід обладнання, одночасно незначно обмежуючи вихід обладнання, забезпечуючи безпеку.
9. У програмі має бути розроблена функція повного скидання, щоб полегшити швидке та легке відновлення нормальної роботи обладнання у разі несправності. Основне скидання має повністю враховувати безпеку обладнання та персоналу під час процесу скидання.
10. При переході з автоматичного режиму в ручний програма повинна очистити виходи і проміжні стани з автоматичного режиму. Особливо при використанні інструкції SET в автоматичному режимі, її потрібно скинути за допомогою інструкції RESET в ручному режимі.
11. Подвійні виходи суворо заборонені в програмуванні; тобто один і той самий вихідний оператор або та сама вихідна котушка з’являється в програмі два або більше разів. Для однієї вихідної точки в різних умовах режиму використовуйте проміжне реле для передачі та, нарешті, об’єднайте їх в одну вихідну точку.
12. Під час використання сенсорного екрана область керування та область стану, спільні для сенсорного екрана та ПЛК, не повинні використовуватися для іншого функціонального програмування.
13. Перед використанням будь-якого спеціального модуля ПЛК перевірте, чи його область керування та область стану займають робочі слова. Якщо так, не програмуйте ці робочі слова для інших цілей.
14. Входи, виходи, проміжні реле, таймери, лічильники та регістри даних ПЛК повинні бути анотовані китайськими ієрогліфами. Входи та виходи також повинні містити назви компонентів і номери тегів. Відповідні точки входу, як правило, за замовчуванням є НО контактами, підключеними до зовнішніх перемикачів. Для входів, які вимагають NC контактів, це має бути зазначено в коментарях. Усі коментарі мають бути чіткими та недвозначними, уникати непорозумінь і мінімізувати використання загальних термінів.
15. Після завершення налагодження проекту остаточну програму необхідно зберегти. Назва збереженого файлу повинна містити номер проекту, автора, дату та номер версії.
16. Щодо шифрування програми: пароль для зашифрованої програми має зберігатися у спеціальному файлі з чітким зазначенням імені користувача, пароля та дозволів. Цей файл має бути розповсюджений принаймні двом людям, щоб дізнатися пароль і запобігти недоступності програми через втрату пароля.
Пропозиції щодо програмування
1. Коли ПЛК і головний комп’ютер (або сенсорний екран) утворюють систему моніторингу, на екрані часто потрібно відображати такі режими керування, як «ручний» і «автоматичний» (як правило, кілька режимів можуть мати лише один). У програмі можна використовувати інструкцію "MOV". Наприклад, коли вибрано «вручну», константа 1 переміщується в регістр VB10; коли вибрано "автоматично", 2 переміщується в той самий регістр VB10. Перевіривши дані в реєстрі, можна визначити режим керування системою. Перевагою цього підходу є його легкість для розуміння та уникнення потреби у складних процедурах, таких як блокування.
2. Якщо програма включає в себе керування аналоговим сигналом, якщо зчитаний аналоговий сигнал практично не має помилок, для затримки введення можна використовувати фільтрацію за часом. Якщо зчитані дані містять велику помилку, потрібні інші методи фільтрації, наприклад усереднення. Для отримання додаткової інформації зверніться до відповідної документації.
3. Під час налагодження програми, якщо умова виконана, але вихідна котушка не активована, перевірте, чи цей розділ вашої програми містить такі оператори, як-от `JUMP go to`. Інша можливість полягає в тому, що після переривання програми умова виконується, але вихідних даних немає; зазвичай це означає, що цей розділ програми не сканується.
4. У послідовних керуючих програмах, тобто коли одна дія завершена та розпочато наступну, дуже зручний режим керування +10+10. Ідея полягає в наступному: регістр попередньо встановлюється на 0 під час ініціалізації. Після запуску системи він збільшується на 10, доводячи значення регістра до 10. Коли регістр має значення 10, можна виконати першу дію. Після першої дії регістр знову збільшується на 10, доводячи значення регістру до 20, що дозволяє виконати другу дію. Після другої дії він знову збільшується на 10, доводячи значення регістру до 30. Таким чином, перевіряючи значення в регістрі, можна визначити потрібну дію. Коли потрібна дія стрибка, приріст можна змінити від 10 до 20, 30 тощо, залежно від конкретних вимог.
Навіщо збільшувати на 10 замість 1? Тому що після збільшення на 10, якщо потрібно вставити сегмент, його можна вставити в будь-який із 10 доступних слотів.
5. Під час розробки програми, якщо виникає-несправність, пов’язана з процесом (не контролюється системою керування), найкраще підтримувати явище несправності та забезпечувати візуальні та звукові сигнали тривоги, доки оператор не перезавантажить систему, щоб він знав про несправність. Інакше, якщо система зупиниться, інші можуть припустити, що з програмою виникла проблема. Ці моменти зазвичай слід враховувати при проектуванні нової системи.
6. Часто викликані підпрограми можна перетворити на підмодулі для частих викликів.
7. Оскільки для виконання кожного кроку в робочому циклі виробничої машини потрібен певний проміжок часу, і цей час має певні межі, таймер можна запустити одночасно з початком етапу, який слід контролювати. Налаштування часу таймера має бути на 20–30% довшим за звичайну тривалість дії. Вихідний сигнал таймера можна використовувати для сигналізації або автоматичного відключення пристроїв. Коли час кроку перевищує вказаний час, досягаючи відповідного попередньо встановленого часу таймера, і перед початком наступного кроку, таймер видає сигнал несправності. Цей сигнал припиняє нормальний робочий цикл і ініціює тривогу або процедуру вимкнення; це те, що ми зазвичай називаємо захистом-циклу.
8. Деякі вимикачі виявлення безпеки (такі як кнопки аварійної зупинки, світлові завіси безпеки, кінцеві вимикачі тощо) мають використовувати нормально закриті (NC) входи.
9. З міркувань безпеки та енергозбереження виходи повинні бути спроектовані так, щоб вони активувалися лише за потреби та зупинялися після завершення дії, а не так, щоб виводити безперервно, доки не буде потрібно зупинка.
10. Принцип роботи приводів повинен бути таким: краще залишатися нерухомим, ніж рухатися безладно.
11. Керування обладнанням окремого-блока: кожен блок повинен мати функцію ручного/автоматичного перемикання та функцію запуску/зупинки під час ручного керування. При переході з автоматичного на ручний режим роботи обладнання не повинно зупинятися; при переході з ручного на автоматичний пуск/зупинка обладнання залежить від автоматичної програми.
12. Кожна одиниця обладнання (насос, вентилятор та інше велике обладнання) має чергуватися після 24 годин роботи, і має бути запис сукупного часу роботи, якщо послідовність запуску/зупинки не встановлена головним комп’ютером; інакше оператор повинен встановити його вручну.





