Мови програмування ПЛК за стандартом IEC 61131-3
IEC 61131-3 — міжнародний стандарт, що визначає п'ять мов програмування для ПЛК. Три графічних: Ladder Diagram (LD), Function Block Diagram (FBD), Sequential Function Chart (SFC). Дві текстових: Structured Text (ST) та Instruction List (IL). Кожна має свою сферу застосування, і вибір залежить від задачі, досвіду інженера та конкретного контролера.
На практиці 70% програм пишуть на LD — це релейна логіка, зрозуміла електрикам. Ще 20% — на ST, коли потрібні математичні обчислення або обробка даних. Решта — FBD та SFC для специфічних задач. IL практично вимер — його замінив ST.
Ladder Diagram (LD): релейна логіка
LD виглядає як електрична схема: контакти зліва, котушки справа, логіка посередині. Інженер, який читає електросхеми, прочитає і Ladder без пояснень — ось чому ця мова домінує.
- Сильні сторони: інтуїтивна для електриків, легко читати та діагностувати на об'єкті
- Слабкі сторони: громіздка для складних обчислень, важко працювати з масивами та структурами
- Де використовувати: дискретне керування, прості блокування, пускові послідовності
Приклад: керування насосом з блокуваннями (сухий хід, перевантаження, ручний/автоматичний режим) — 20-30 рядків LD. Те ж саме на ST — 10-15 рядків, але зрозуміти їх зможе не кожен обслуговуючий інженер на об'єкті.
LD підтримують всі ПЛК: Delta DVP, Mitsubishi FX5U, Siemens S7-1200 — без винятків.
Structured Text (ST / SCL): текстова мова
ST нагадує Pascal або C. Змінні, цикли FOR/WHILE, умови IF/THEN/ELSE, масиви, структури. Для інженерів із досвідом програмування — найзручніша мова.
- Сильні сторони: компактний код, зручна робота з математикою, масивами, рядками
- Слабкі сторони: складніше діагностувати онлайн (немає візуальних «палаючих» контактів)
- Де використовувати: ПІД-регулювання, рецептурне керування, обробка аналогових сигналів, протоколи зв'язку
У Siemens TIA Portal ST називається SCL (Structured Control Language). Функціонально — те ж саме, просто інша назва. Mitsubishi GX Works3 підтримує стандартний ST.
Function Block Diagram (FBD): блочна логіка
FBD — графічна мова, де логіка будується з блоків: AND, OR, таймери, лічильники, ПІД-регулятори. Входи зліва, виходи справа, блоки з'єднуються лініями.
- Сильні сторони: наглядна для складних функціональних залежностей, зручна для аналогової обробки
- Слабкі сторони: займає багато місця на екрані, незручна для послідовної логіки
- Де використовувати: регулювання, обробка сигналів, складні математичні функції
FBD часто використовують у поєднанні з LD: основна логіка — на Ladder, а складні обчислювальні блоки — на FBD. Більшість середовищ дозволяють міксувати мови в одному проекті.
Sequential Function Chart (SFC): послідовності
SFC описує процес як послідовність кроків і переходів. Крок — набір дій, перехід — умова переходу до наступного кроку. Ідеально підходить для batch-процесів, рецептурного керування, пускових послідовностей.
- Крок 1: заповнити резервуар (відкрити клапан, контролювати рівень)
- Перехід: рівень досяг 80%
- Крок 2: нагріти (увімкнути нагрівач, контролювати температуру)
- Перехід: температура досягла 60°C
- Крок 3: перемішати (увімкнути мішалку на 15 хв)
SFC підтримують Mitsubishi GX Works3 (як Graph) та Siemens TIA Portal (як S7-Graph). Delta ISPSoft має обмежену підтримку SFC.
Instruction List (IL): архаїзм
IL — асемблер для ПЛК. Мнемонічні коди (LD, AND, OUT, MOV) виконуються послідовно. Був популярний у 1990-х, коли пам'ять контролерів вимірювалась в кілобайтах. Зараз — практично не використовується, бо ST робить те ж саме, але зрозуміліше.
Деякі контролери ще підтримують IL для зворотної сумісності, але писати нові проекти на ній — мабуть, не варто.
Яку мову обрати: порівняльна таблиця
| Мова | Тип | Складність | Найкраще для | Підтримка |
|---|---|---|---|---|
| LD | Графічна | Низька | Дискретна логіка | Всі ПЛК |
| FBD | Графічна | Низька | Аналогова обробка | Всі ПЛК |
| ST/SCL | Текстова | Середня | Математика, масиви, рецепти | Більшість ПЛК |
| SFC | Графічна | Середня | Послідовності, batch | Siemens, Mitsubishi |
| IL | Текстова | Висока | Застаріла | Обмежена |
Рекомендація: почніть із LD для простих задач, переходьте на ST для складних обчислень. Якщо ваш процес — чітка послідовність кроків (варіння пива, миття CIP, автомобільна збірка) — SFC зекономить час.
Поширені запитання
Яку мову вивчати першою?
Ladder Diagram. Вона найпоширеніша, підтримується всіма контролерами і зрозуміла людям із електротехнічною освітою. Після LD переходьте на ST — це відкриє доступ до складніших задач.
Чи можна міксувати мови в одному проекті?
Так. Більшість сучасних середовищ (TIA Portal, GX Works3, ISPSoft) дозволяють створювати різні блоки програми різними мовами. Наприклад, основна логіка на LD, а підпрограма ПІД-регулювання на ST.
Чим SCL відрізняється від ST?
По суті — нічим. SCL (Structured Control Language) — це назва Siemens для мови Structured Text. Синтаксис дещо відрізняється (наприклад, #temp замість temp для тимчасових змінних), але логіка ідентична.
Чи потрібно знати всі п'ять мов?
Ні. Для 90% задач достатньо LD + ST. FBD корисний для роботи з аналоговими сигналами. SFC — тільки для batch-процесів. IL — не потрібний взагалі для нових проектів.
Де навчитись програмувати ПЛК?
Безкоштовно: TIA Portal Basic із вбудованим симулятором PLCSIM — встановіть, створіть проект для S7-1200 і починайте практикувати. Курси: Siemens SCE (Siemens Certified Education) — є партнерські центри в Україні.
Підсумок
IEC 61131-3 дає п'ять мов, але на практиці вистачає двох: LD для дискретної логіки та ST для обчислень. Обирайте мову під задачу, а не під моду. І пам'ятайте: найкращий код — той, який зможе прочитати обслуговуючий інженер на об'єкті о 3 ночі, коли щось зламалось.
Контролери з підтримкою всіх мов IEC: Siemens S7-1200, Mitsubishi FX5U. Бюджетний варіант із LD/FBD/ST: Delta DVP.