
АМ-212_Ткаченко_№4
.pdfМіністерство освіти і науки України Національний університет «Одеська політехніка» Інститут комп’ютерних систем
Кафедра комп'ютерних інтелектуальних систем та мереж
Лабораторна робота №4 з дисципліни
«Системи реального часу» Варіант 10
Виконав студент Ткаченко Т.С. Групи АМ-212.
Перевірили викладачі Шапоріна О.Л. Нагорна А.А.
Одеса 2024
2
ЗМІСТ
1 ХІД РОБОТИ ................................................................................................................ |
5 |
|
1.1 |
Створення програми для керування краном на мові FBD.............................. |
5 |
1.2 |
Перевірка роботи схеми крана на мові FBD .................................................... |
6 |
1.3 |
Створення програми для керування краном на мові ST ................................. |
9 |
1.4 |
Перевірка роботи крана на мові ST ................................................................ |
10 |
1.5 |
Створення сейфу на мові FBD......................................................................... |
11 |
1.6 |
Перевірка роботи сейфу на мові FBD............................................................. |
14 |
1.7 |
Створення сейфу на мові ST............................................................................ |
16 |
1.8 |
Перевірка роботи схеми сейфа на мові ST ..................................................... |
18 |
1.9 |
Створення потенціометру на мові FBD та ST ................................................ |
20 |
1.10 |
Реалізація функції «виключає АБО» на мові ST............................................ |
22 |
1.11 |
Програма, що перетворює кольори, на мовах FBD та ST ............................. |
24 |
1.12 |
Програма на мові програмування IL ............................................................... |
32 |
1.13 |
Створення програми для освітлення на мові LD ........................................... |
34 |
1.14 |
Реалізація світлофору на мові SFC.................................................................. |
38 |
1.15 |
Реалізація Т-тригеру на мові SFC.................................................................... |
41 |
ВИСНОВОК................................................................................................................... |
43 |
3
Тема: «Програмування ПЛК з використанням мов стандарту IEC 61131-3.»
Мета роботи: Набуття практичних навичок створення програм для ПЛК на основі мов стандарту IEC 61131-3: FBD (мова функціональних блоків), IL (мова інструкцій), мови LD (мова релейно-контактних схем), ST (структурований текст), SFC (послідовні функціональні діаграми). Отримання практичних навичок роботи з PC WORX. Закріплення практичних навичок в створенні та використанні компонент програмної організації, роботі з периферійними пристроями.
Закріплення отриманих знань у формі виконанні індивідуальних завдань.
Індивідуальне завдання:
1. Мови програмування FBD та ST:
А) Створити програму, що реалізує систему керування переміщенням горизонтального крану:
Три дискретних сигнали:
—Почати переміщення вліво;
—Почати переміщення вправо;
—Зупинити дію.
Два дискретних виходів для виконуючих механізмів:
—Переміщення крана вліво;
—Переміщення крана вправо.
Рухаючись в одному напрямі, кран не повинен реагувати на команду змінити напрям переміщення. Щоб змінити напрям переміщення, кран потрібно зупинити.
Одночасна подача одиничних значень на виході не дозволяється. Час переміщення крана в кожному напрямі потрібно контролювати. Переміщення вліво повинно зупинятись через 5с, а переміщення вправо — через 10 с. (Часові межі студент має обрати самостійно).
Б) Створити програму, що реалізує роботу «сейфового» замку.
Використовувати потенціометр, як периферійний пристрій, для перевірки.
Значення коду студент обирає самостійно, не менш 4 символів, та обов’язково значення мають змінюватись в обох напрямках. Обмежити введення

4
спроб - 3 спроби. Після триразового неправильного введення даних - блокується можливість введення на 10 секунд.
В) Реалізувати потенціометр на мові ST і на FBD. Порівняти отримані програми. В реалізації даного завдання допоможуть такі ФБ: SHR, AND, DIV, WORD_TO_REAL, WORD_TO_INT в робочій області. Зміна властивостей блоків.
Г) Реалізувати на мові ST функцію «виключає АБО».
Д) Реалізувати програму для перетворення значень, що надходять з потенціометра в кольори. Виконувати перетворення значень 16# в кольори згідно стандарту.
2. Мова програмування IL: Реалізувати логічну схему, яка наведена на рисунку 1.
Рисунок 1 — Логічна схема на мові FBD
3. Мова програмування LD: Реалізувати додаток для керування освітленням.
Визначити часову затримку та автоматичне вимкнення, а також кілька режимів роботи. Керування освітленням виконати:
— В замкнутому просторі с розрахунком кількості присутніх в приміщенні.
При відсутності людей світло повинно вимикатись через вибраний час.
— В довгому коридорі використовувати прохідний вимикач. 4. Мова програмування SFC:
А) Реалізувати програму, що відобразить роботу світлофора. Для відображення використовувати індикаційну панель. Додати режим роботи
«мигаючий жовтий – нічний режим» Б) Відобразити роботу Т-тригеру.

5
1 ХІД РОБОТИ
1.1 Створення програми для керування краном на мові FBD
Для того, щоб почати розробку програми для керування горизонтальним краном, потрібно спочатку створити функціональний блок (ФБ) та обрати мову FBD, як показано на рисунку 1.1.
Рисунок 1.1 — Створення ФБ на мові FBD
Згідно першого завдання, необхідно створити кран, що автоматично змінює напрямок переміщення. Для задавання напрямку переміщення, необхідно створити вхідні зміні In_right та In_left. In_left відповідає за лівий напрямок переміщення,
а In_right — правий. Також, потрібно створити змінні, що будуть ідентифікувати поточний напрямок переміщення крану — Q0 (переміщення вліво) та Q1 (переміщення вправо). Для перевірки закінчення переміщення двигуна в певну сторону, треба створити відповідні зміні, а саме: time_left_end (закінчення переміщення вліво) і time_right_end (закінчення переміщення вправо). Змінні time_left і time_right відповідають за затримку, тобто за час, який буде використано для переміщення крану в певну сторону.
Для повної зупинки крану використовується змінна stop. Щоб запобігти переміщення крану одразу в обидві сторони, потрібно додати на схему два елементи
AND. На перший вхід елемента, подається сигнал керуючої змінної In_right, а на

6
другий — інверсне значення Q1. Для другого елемента AND, навпаки, подається
In_left та інверсне значення Q0 у відповідні входи.
Щоб реалізувати скидання тригерів, потрібно доєднати до входів RESET1
елементи OR, які будуть перевіряти спосіб перемикання, або за закінченням часу переміщення, або після подачі сигналу про зупинку двигуна, що керується за допомогою змінної stop. Вихід RS-тригера Q потрібно з’єднати з елементом TON,
який реалізує затримку сигналу відповідно значенню змінних time_left (time#5s) і time_right (time#10s). Повністю зібрана схема крану показана на рисунку 1.2.
Рисунок 1.2 — Схема горизонтального крану на мові FBD
1.2 Перевірка роботи схеми крана на мові FBD
З метою перевірки правильності зібраної схеми на наявність будь-яких помилок необхідно використати програмний інструмент MAKE, який дозволить автоматизувати процес компіляції та збірки схеми. Після цього, проводиться запуск схеми в режимі симуляції, щоб перевірити її роботу. Переміщення горизонтального крану показано на рисунках 1.3, 1.4.

7
Рисунок 1.3 — Кран рухається вправо та закінчує переміщення після 5 секунд
Рисунок 1.4 — Кран рухається вліво та закінчує переміщення після 10 секунд Незалежно від того, які сигнали будуть надані, напрямок буде вибрано лише
один раз. Результат одночасного подання сигналу на обидві сторони руху показаний на рисунку 1.5. Зупинка горизонтального крану продемонстрована на рисунку 1.6.

8
Рисунок 1.5 — Кран обирає лише одну сторону руху при подачі двох сигналів
Рисунок 1.6 — Зупинка руху горизонтального крану

9
1.3 Створення програми для керування краном на мові ST
Для того, щоб почати розробку програми для керування горизонтальним краном, потрібно спочатку створити ФБ та обрати мову ST, як показано на рисунку 1.7.
Рисунок 1.7 — Створення ФБ на мові ST
Щоб почати написання програмного коду для реалізації крану, необхідно спочатку додати змінні та ФБ у файл CRANSTV, як наведено на рисунку 1.8.
Рисунок 1.8 — Створення та ініціалізація змінних, додавання ФБ Для того, щоб використати ФБ, необхідно присвоїти для нього вхідні змінні
таким чином: TP_1(IN:=In_left, PT:=time#500ms);. Щоб використати вихідне значення ФБ, потрібно прописати таку конструкцію: TP_1.Q. Повний програмний код на ST для роботи горизонтального крану показаний на рисунку 1.9.
Рисунок 1.9 — Програмний код ST для роботи крану

10
1.4 Перевірка роботи крана на мові ST
З метою перевірки правильності написаного програмного коду ST на наявність будь-яких помилок необхідно використати програмний інструмент
MAKE, який дозволить автоматизувати процес компіляції. Після цього,
проводиться запуск ФБ в режимі симуляції, щоб перевірити його роботу.
Переміщення горизонтального крану показано на рисунках 1.10, 1.11.
Рисунок 1.10 — Кран рухається вліво
Рисунок 1.11 — Кран рухається вправо Незалежно від того, які сигнали будуть надані, напрямок буде вибрано лише
один раз. Результат одночасного подання сигналу на обидві сторони руху показаний на рисунку 1.12.
Рисунок 1.12 — Кран обирає лише одну сторону руху при подачі двох сигналів