Програмування ПЛК: мови МЕК 61131-3.
МЕК 61131-3 - стандартизація існуючих мов ПЛК [1], а вірніше, базова платформа для такої роботи в національних комітетах стандартизації.
Уніфікація сотні існуючих версій мов - справа благородна, і такі зусилля можна було б однозначно вітати, якби не деякі
обставини, супутні цьому процесу.
ПЛК як ядро систем автоматики. Специфіка завдання та передумови створення
На сучасному етапі в якості ядра будь-якої системи промислової автоматизації використовується ПЛК, до якого з боку об'єкта автоматизації підключаються датчики і виконавчі органи. Через датчики в ПЛК надходить інформація про поточний стан об'єкта, а через виконавчі органи ПЛК може змінювати стан керованого об'єкта. Ця базова схема може ускладнюватися. Наприклад, ПЛК можуть підключатися до АРМ оператора для супервизорного управління або до БД для накопичення інформації і інтеграції в АСУ підприємства. Оскільки всі ПЛК будуються на базі цифрової техніки, природним чином передбачаються деякі мовні засоби їх програмування. Причому в силу специфіки завдання алгоритмічні мови програмування, такі як Сі, Паскаль, Сі ++, не годяться для цих цілей.
Специфіка автоматизації передбачає наявність власне системи управління, що включає датчики зворотного зв'язку і органи управління, і зовнішньої (по відношенню до системи управління) середовища, на яку система управління впливає через органи управління, - об'єкта управління - технічної системи, що реалізує деяку виробничу технологію. Впливу - або, іншими словами, реакція системи управління - визначаються алгоритмом управління в залежності від подій на об'єкті управління, інформація про яких надходить через датчики зворотного зв'язку. Для цифрових систем ця обставина обумовлює циклічність керуючого алгоритму за схемою: зчитування стану вхідних сигналів через датчики - їх обробка і формування вихідних сигналів - видача вихідних сигналів на виконавчі органи. Подієвість передбачає алгоритмічні зміни програми і набору оброблюваних нею вхідних / вихідних сигналів в залежності від відбуваються на об'єкті подій.
Алгоритм управління передбачає синхронізацію свого виконання з фізичними процесами в зовнішньому середовищі, що обумовлює необхідність розвиненою служби часу і активну роботу з тимчасовими об'єктами: затримками, паузами, таймаут.
Інша характерна риса алгоритмів управління - логічний паралелізм. що відображає існування безлічі паралельно протікають процесів в об'єкті управління. (Оскільки події, що відбуваються в різних компонентах системи, виникають незалежно і в довільній послідовності, то спроба поставити реакцію системи єдиним блоком означає комбінаторний перебір великого числа варіантів і невиправдане зростання складності опису). Логічний паралелізм передбачає наявність в алгоритмі управління незалежних або слабо залежних частин - логічно відокремлених потоків управління.
Оскільки програми пишуться людиною і виключно для людини, то в силу особливостей людської психіки мови повинні бути прості у вивченні. Крім того, мови повинні надавати механізми структуризації алгоритму (в нашому випадку - мовні засоби організації спільного функціонування логічно паралельних частин) і механізми абстрагування (в нашому випадку - понятійний перехід від датчиків і виконавчих органів до цільового технологічного процесу). Тобто програма повинна бути організована у вигляді доступних для огляду, інформаційно-ізольованих компонентів, можливо ієрархічно вкладених один в одного, і
на деякому рівні ієрархії програмування має вестися в природних термінах технологічного процесу.
Перераховані обставини зумовлюють розробку спеціалізованих мов промислової автоматизації.
Міжнародна електротехнічна комісія.
Цілі створення стандарту на мови програмування ПЛК
Міжнародна електротехнічна комісія - це міжнародний орган стандартизації, створює базові стандарти для подальшої адаптації в національних комітетах. Цікавий факт, яким можуть пишатися громадяни Росії. У становленні і роботі цієї комісії брав активну участь СРСР, тому російська - це один з трьох офіційних мов МЕК. Що стосується стандартизації мов, які використовуються для програмування ПЛК, то ця проблема назріла давно. До кінця 80-х десяток базових концепцій на практиці був представлений
більше сотнею варіацій. Їх уніфікація обіцяла відчутний економічний ефект. Для вирішення цієї проблеми була створена робоча група, що складається з представників провідних гравців на ринку автоматизації, яка розпочала роботу.
В силу того, що загальноприйнятого підходу до програмування ПЛК не існувало (і не існує до цих пір), членам комісії не вдалося домовитися про єдиний мовою. Тому було прийнято компромісне рішення - включити в стандарт мови, що використовуються в фірмах, представникам яких пощастило опинитися в членах групи. Серед язиков- "щасливців" виявилися:
• SFC (Sequential Function Chart) - графічна мова, що використовується для опису алгоритму у вигляді набору пов'язаних пар: крок (step) і перехід (transition). Крок являє собою набір операцій над змінними. Перехід - набір логічних умовних виразів, що визначає передачу управління до наступній парі крок-перехід. За зовнішнім виглядом опис на мові SFC нагадує добре відомі логічні блок-схеми алгоритмів, хоча ідеологічно SFC близький до мереж Петрі. SFC має можливість розпаралелювання алгоритму. Однак SFC не має коштів для опису кроків і переходів, які можуть бути виражені лише засобами інших мов стандарту. Походження: Grafcet (Telemechanique-Groupe Schneider).
• LD (Ladder Diagram) - графічна мова, стандартизований варіант класу мов релейно-контактних схем. Логічні вирази на цій мові описуються у вигляді реле, які широко застосовувалися в області автоматизації в 60-х роках. Через своїх обмежених можливостей мову доповнений привнесеними засобами: таймерами, лічильниками і т.п. Походження: різні варіанти мови релейно-контактних схем (Allen-Bradley, AEG Schneider Automation. GE - Fanuc. Siemens).
• FBD (Functional Block Diagram) - графічна мова, за своєю суттю схожий на LD: замість реле в цій мові використовуються функціональні блоки. Алгоритм роботи деякого пристрою, виражений засобами цієї мови, нагадує функціональну схему електронного пристрою: елементи типу "логічне« І »,« логічне АБО "і т.п. з'єднані лініями. Коріння мови з'ясувати складно,
однак більшість фахівців сходяться на думці, що це ні що інше, як перенесення ідей мови релейно-контактних схем на іншу елементну базу.
• ST (Structured Text) - текстовий високорівнева мова загального призначення, по синтаксису орієнтований на Паскаль. Самостійного значення не має: використовується тільки спільно з SFC. Походження: Grafcet (Telemechanique - Groupe Schneider).
• IL (Instruction List) - текстова мова низького рівня. Виглядає як мову асемблера, що пояснюється його походженням: для деяких моделей ПЛК фірми Siemens є мовою асемблера. В рамках стандарту IEC 1131-3 до архітектури конкретного процесора не прив'язаний. Самостійного значення не має: використовується тільки спільно з SFC. Походження - STEP 5 (Siemens).
Мова програмування LD
Ladder Diagram (LD, LAD, РКС) - мова релейного (сходовій) логіки.
Застосовуються також назви:
* Мову релейно-контактної логіки
* Мова програмування релейно-сходовій логіки стандарту МЕК 61131-3.
Призначений для програмування промислових контролерів (ПЛК). Синтаксис мови зручний для заміни логічних схем, виконаних на релейного техніці. Орієнтований на інженерів по автоматизації, які працюють на промислових підприємствах. Забезпечує наочний інтерфейс логіки роботи контролера, який полегшує не тільки завдання власне програмування і введення в експлуатацію, але і швидкий пошук неполадок в підключається до контролера обладнанні. Є найпоширенішим мовою програмування для ПЛК в США, дуже широко поширений у всіх країнах світу.
Програма на мові релейного логіки має наочний і інтуїтивно зрозумілий інженерам-електрикам графічний інтерфейс, який представляє логічні операції, як електричний ланцюг з замкнутими і роз'єднаними контактами. Перебіг або відсутність струму в цьому ланцюзі відповідає результату логічної операції (true - якщо струм тече; false - якщо струм не тече).
Основними елементами мови є контакти, які можна образно порівняти з парі контактів реле або кнопки. Пара контактів ототожнюється з логічної змінної, а стан цієї пари - зі значенням змінної.
Розрізняються нормально замкнуті і нормально розімкнені контактні елементи, які можна зіставити з нормально замкнутими і нормально розімкнутими кнопками в електричних ланцюгах.
* Нормально розімкнутий контакт розімкнений при значенні false, призначеної йому змінної і замикається при значенні true.
* Нормально замкнутий контакт, навпаки, замкнутий, якщо змінна має значення false, і розімкнений, якщо змінна має значення true.
Підсумок логічного ланцюжка копіюється в цільову змінну, яка по-англійськи називається coil. Це слово має безліч технічних значень (нитка розжарення лампи, обмотка реле або електродвигуна і т. П.). Тут же узагальнений образ виконавчого пристрою, тому в російськомовній документації зазвичай говорять про вихід ланцюжка, хоча можна зустріти і приватні значення терміна coil, наприклад котушка.
Конкретні версії мови реалізуються зазвичай в рамках програмних продуктів, для роботи з певними типами ПЛК. Часто такі реалізації містять команди, що розширюють безліч стандартних команд мови, що викликано бажанням виробника повніше врахувати бажання замовника, але в підсумку призводять до несумісності програм, створених для контролерів різних типів.
Основні серії ПЛК компанії Thinget
Основних серій, що поставляються на ринки 3-тю - бюджетний, стандартний і розширений типи. Основні їх відмінності - це набори підтримуваних функцій, яка підключається периферії та природно ціна. Розглянемо табличку: