atpv

Навчальні матеріали з автоматизації технологічних процесів та виробництв, розроблені спільнотою

<- До підрозділу

Стано-орієнтовний підхід в програмуванні: практична частина

Необхідне програмне забезпечення. EcoStruxure Machine Expert Basic

Якщо Ви маєте труднощі з встановленням даного ПЗ, можете почитати за цим посиланням

Порядок виконання роботи

1. Опис та формалізація завдання.

рис.5.1. Спрощена апаратурно-технічна схема установки

Після натискання кнопки “ПУСК”, якщо ємність не порожня, повинен відкритися клапан LVS3, і присутня в ємності рідина повинна вивантажитися з неї. Якщо (коли) ємність буде порожня необхідно закрити клапан LVS3 і відкрити клапан LVS1 і почати її наповнювати до спрацювання середнього рівня. Після цього необхідно закрити клапан LVS1 і відкрити LVS2 для заповнення ємності до верхнього рівня. Потім клапан LVS2 треба закрити і відкрити клапан TV1 повністю. Після досягнення температури 50°С клапан треба залишити відкритим на 50%. Після досягнення значення 55°С клапан TV1 треба закрити повністю і вивантажити рідину з апарату. Якщо не натиснута кнопка “СТОП” - цикл повинен повторюватися.

2. Аналіз завдання.

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

  1. Що значить закрити або відкрити клапан, яке для клапанів є нормальним положенням? Якщо клапани нормально-закриті, то відкриття для ПЛК буде значити подачу логічної одиниці, у іншому випадку - навпаки, нуля.
  2. Як працюють сигналізатори рівня? Якщо ємність порожня, то сигналізатор нижнього рівня буде замкнутим або розімкнутим?
  3. У якому стані має знаходитися клапан гарячої води на кожному із кроків?
  4. Як повинен вести себе алгоритм в нештатних ситуаціях?
  5. Що повинен робити ПЛК, коли він включається (подаєтья на нього живлення) або запускається (включається в RUN)?

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

3. Самостійне визначення необхідних датчиків та виконавчих механізмів (ВМ).

При аналізі завдання, ще перед підбором датчиків та ВМ визначаються з кількістю та типом сигналів, які будуть підключатися до ПЛК.

4. Перевірка визначення необхідних датчиків та виконавчих механізмів.

Таблиця 5.1. Типи сигналів

Позначення параметру Тип сигналу для ПЛК Примітка
Кнопка SB1 “ПУСК” DI вмикається людиною, без фіксації
Кнопка SB2 “СТОП” DI вмикається людиною, з фіксацією
Сигналізатор LS1 DI необхідно дізнатися про значення “ВКЛ” та “ВІДКЛ”
Сигналізатор LS2 DI необхідно дізнатися про значення “ВКЛ” та “ВІДКЛ”
Сигналізатор LS3 DI необхідно дізнатися про значення “ВКЛ” та “ВІДКЛ”
Температура TE1 AI необхідно дізнатися про діапазон вимірювання та сигналу з датчика
Клапан LVS1 DO необхідно дізнатися про нормальний стан регулюючого органу (РО)
Клапан LVS2 DO необхідно дізнатися про нормальний стан РО
Клапан LVS3 DO необхідно дізнатися про нормальний стан РО
Клапан TV1 AO необхідно дізнатися про нормальний стан РО

де DI - дискретний вхід, DO - дискретний вихід, AI - аналоговий вхід, AO - аналоговий вихід

5. Уточнення після вибору датчиків та ВМ.

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

Таблиця 5.2.Перелік змінних та вимоги до них

Позначення параметру Діапазон зміни Діапазон сигналу на/з ПЛК Вхід/вихід ПЛК Примітка
Кнопка SB1 “ПУСК” вкл/відкл Вкл.=24В, Відкл=0 %I0.0 вмикається людиною, без фіксації
Кнопка SB2 “СТОП” вкл/відкл Вкл.=24В, Відкл=0 %I0.1 вмикається людиною, з фіксацією
Сигналізатор LS1 вкл/відкл Вкл.=24В, Відкл=0 %I0.2 “ВКЛ” коли присутня рідина на даному рівні, коли ємність порожня буде в стані “ВІДКЛ”
Сигналізатор LS2 вкл/відкл Вкл.=24В, Відкл=0 %I0.3 “ВКЛ” коли присутня рідина на даному рівні, буде “ВКЛ” коли в ємності рідини більше за 50%
Сигналізатор LS3 вкл/відкл Вкл.=24В, Відкл=0 %I0.4 “ВКЛ” коли присутня рідина на даному рівні, буде “ВКЛ” коли в ємності рідини більше за 95%
Температура TE1 0 - 100 °С 0-10 В %IW0.0 лінійна шкала
Клапан LVS1 Відкритий/закритий Відкр=24В, Закр=0В %Q0.0  
Клапан LVS2 Відкритий/закритий Відкр=24В, Закр=0В %Q0.1  
Клапан LVS3 Відкритий/закритий Відкр=24В, Закр=0В %Q0.2  
Клапан TV1 0 - 100 % 0 - 10 В %QW0.100 0% - повністю закритий, лінійна шкала

рис.5.2. Схема установки з вказівкою входів/виходів

Відповідно до таблиці 5.2 необхідно більше формалізувати завдання, яке зручно буде перетворювати на алгоритм та робити перевірочні тести. Для цього спочатку виділяють задачі та функції (роблять декомпозицію). Функції постійно формують виходи за станом входів. Задачі - це функції, які описуються певною послідовністю кроків. Задачі мають початок і кінець, а їх виконання описується послідовністю умов та дій.

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

6. Формалізація задачі через послідовнісне виконання

Задача може формалізуватися алгоритмом, який має початок і завершення і складається з певних кроків. Це називається послідовнісним (sequentional) алгоритмом який добре рішається через стано-орієнтований підхід. Опишемо задачу через кроки.

0. Ініціалізація (ПЛК перейшов в RUN).

Усі виходи виставити в стан ВІДКЛ (для дискретних) або 0 (для аналогових). Перейти на крок “Простій, очікування пуску задачі”.

1. Простій, очікування пуску задачі.

Усі виходи виставити в стан ВІДКЛ (для дискретних) або 0 (для аналогових). При спрацюванні кнопки “ПУСК” в залежності від стану LS1 :

2. Наповнення речовиною 1.

LVS1=1, усі інші 0. При спрацюванні LS2 (LS2=1) перейти на крок “Наповнення речовиною 2”.

3. Наповнення речовиною 2.

LVS2=1, усі інші 0. При спрацюванні LS3 (LS3=1) перейти на крок “Нагрівання”.

4. Нагрівання 1.

TV1=100% (10000) усі інші 0. При досягненні заданої температури 50°С (TE1>=500) перейти до кроку “Нагрівання 2”

5. Нагрівання 2.

TV1=50% (5000) усі інші 0. При досягненні заданої температури 55°С (TE1>=550) перейти до кроку “Вивантаження продукту”

6. Вивантаження продукту.

LVS3=1, усі інші 0. При досягненні нижнього рівня (LS1=0), в залежності від стану кнопки “СТОП”:

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

7. Розробка методики перевірки

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

Враховуючи що у даному випадку система у кожен момент часу перебуває у певному стані, поведінка програми залежить не тільки від входів але і від теперішнього стану. Тому перевірка правильності виконання задачі зводиться до перевірки поведінки виходів ПЛК при зміні стану та входів ПЛК. Це зручно оформити у вигляді таблиці, яка має форму як в таб.5.3. При перевірці послідовно змінюють значення вхідних змінних (SB1, SB2, LS1, LS2, LS3, TE1) і дивляться на те, як змінюються вихідні змінні.

Таблиця 5.3. Табличний вигляд методики перевірки роботи задачі приготування продукту.

стан/зміна стану системи SB1 SB2 LS1 LS2 LS3 TE1 LVS1 LVS2 LVS3 TV1 Примітка
1 початковий (включення ПЛК) - - - - - - 0 0 0 0  
2 Предпуск 0 - - - - - 0 0 0 0  
3 Пуск порожнім 1 0 0 0 0 - 1 0 0 0  
4 Пуск не порожнім 1 0 1 0 0 - 0 0 1 0 Продовжити перевірку з п.14
5 Наповн. нижче рівня LS2 0 0 1 0 0 - 1 0 0 0  
6 рівень LS2     1 1 0 - 0 1 0 0  
7 Наповн. нижче рівня LS3 - - 1 1 0 - 0 1 0 0  
8 рівень LS3 - - 1 1 1 - 0 0 0 100%  
9 Нагрівання 1 - - - - - <50°С 0 0 0 100%  
10 температура 50°С - - - - - 51°С 0 0 0 50%  
11 Нагрівання 2 - - - - - <55°С 0 0 0 50%  
12 температура 55°С - - - - - 56°С 0 0 0 0  
13 Вивантаження до LS2 - - 1 1 0 - 0 0 1 0  
14 Вивантаження до LS1 - - 1 0 0 - 0 0 1 0  
15 Ємність порожня при “СТОП” 0 1 0 0 0 - 0 0 0 0 продовжити перевірку з п.2
16 Ємність порожня без “СТОП” 0 0 0 0 0 - 1 0 0 0 продовжити перевірку з п.5

- - вказує незалежність дій від значення вхідних сигналів, бажано перевіряти що стан системи не міняється при зміні цих вхідних сигналів

8. Конфігурування ПЛК

9. Найменування змінних.

10. Розробка програми користувача.

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

Таблиця 5.4. Змінні стану.

Стан Змінна Символьна назва Примітка
Простій, очікування пуску задачі %M100 S_IDLE  
Наповнення речовиною 1 %M101 S_LOAD1  
Наповнення речовиною 2 %M102 S_LOAD2  
Нагрівання 1 %M103 S_HEA1  
Нагрівання 2 %M104 S_HEA2  
Вивантаження продукту %M105 S_DWNLD  

рис.5.3. Зміст Rung0

рис.5.4. Зміст Rung1

рис.5.5. Зміст Rung2

рис.5.6. Зміст Rung3

рис.5.7. Зміст Rung4

рис.5.8. Зміст Rung5

рис.5.9. Зміст Rung6

Наведена програма не передбачає блокування можливості зміни виходів а також корків із-зовні (наприклад з панелі оператора). Так, наприклад, можна змінити стан ВМ подачі гарячої води на кроках наповнення. Для того,щоб це унеможливити, можна добавити додаткові дії.

11. Перевірка роботи програми користувача.

Розробив лабораторну - Олександр Пупена. АКТСУ НУХТ