Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Звіт до лабораторної роботи №4
з дисципліни «Контролери систем автоматики»
тема: «Програмування засобів відображення інформації для автоматичних систем керування на базі ПЛК»
Львів – 2013
Мета роботи: освоїти принципи роботи лічильників та методику програмування текстових панелей. Отримати навики розроблення автоматизованих систем з використанням ПЛК фірми Vipa та розроблення програм згідно поставлених задач автоматизації на прикладі автоматичної системи управління ліфтом.
Короткі теоретичні відомості
STEP 7 містить лічильники, з допомогою яких можливо проводити пряму (лічба по зростанню) та зворотну (лічба на зменшення) лічбу. Лічильники розташовані в каталозі елементів редактору програм у папці Counter (Лічильник). Можливо задати лічильникам початкове значення, скинути значення лічильника в нуль, збільшити чи зменшити його значення на 1, зчитати поточне значення лічильника в форматі BCD (двійково-десяткове), в шістнадцятковій формі, а також зчитати стан лічильника. Кожен лічильник має ідентифікатор (назву), який складається із області пам’яті та номеру лічильника (наприклад С0, С1, С2 і т.д.). Лічильники розміщуються в системній пам’яті ЦПУ і їхня кількість залежить від версії ЦПУ. Максимальне значення, яке може прийняти лічильник – 999, а мінімальне – 0 (значення лічильника не може бути меншим 0 і більшим 999).
Опис
Зображення мовою FBD
Зображення мовою LAD
Лічильник прямої/зворотньої лічби з можливістю встановлення/скидання значення
/
/
Лічильники мають вхід збільшення значення лічильника CU; вхід зменшення значення лічильника CD; вхід S встановлення значення, що знаходить на вході PV та вхід скидання R значення лічильника в нуль; ідентифікатора лічильника; вихід Q (дані про стан лічильника); вихід CV (поточне значення лічильника в двійковому форматі); вихід CV_BCD (поточне значення лічильника у двійково-десятковому форматі).
Зміна сигнального стану з 0 на 1 (позитивний фронт RLO) на вході CU призводить до збільшення значення лічильника на одиницю, а на вході CD – зменшення значення лічильника на одиницю.
Зауважимо, якщо поточне значення лічильника рівне 999 і на вході CU присутній позитивний фронт RLO (зміна сигнального стану з 0 на 1) значення лічильника не зміниться, залишиться рівним 999. Так само і якщо поточне значення лічильника становить нуль і на вході CD присутній позитивний фронт RLO, значення лічильника залишиться без змін (нульовим). Лічильник не обробляє від’ємні значення.
Типи даних, які можна подавати на входи чи виходи лічильника подані у таблиці нижче.
Параметр
Тип даних
Область пам’яті
Опис
FBD
LAD
Ідентифікатор лічильника
COUNTER
C
C
Вказується номер лічильника, наприклад С0, С1
CU
BOOL
I, Q, M, L
I, Q, M, L
Збільшення значення на 1
CD
BOOL
I, Q, M, L
I, Q, M, L
Зменшення значення на 1
S
BOOL
I, Q, M, L, T, C
I, Q, M, L
Встановлення значення лічильника з входу PV
PV
WORD
I, Q, M, L чи константа
I, Q, M, L чи константа
Задання значення лічильника з проміжку 0…999
R
BOOL
I, Q, M, L, T, C
I, Q, M, L
Скидання значення лічильника в нуль
CV
WORD
I, Q, M, L
I, Q, M, L
Поточне значення лічильника в шістнадцятковому форматі
CV_BCD
WORD
I, Q, M, L
I, Q, M, L
Поточне значення лічильника в двійко-десятковому форматі
Q
BOOL
I, Q, M, L
I, Q, M, L
Статус лічильника
Входи лічильника CU, CD та S реагують тільки на зміну сигнального стану з 0 на 1. Якщо на цих входах присутня одиниця чи зміна сигнального стану з 1 на 0, то це не призводить до змін стану самого лічильника.
Вхід S використовується для встановлення значення лічильника, яке розташоване на вході PV. Наприклад, якщо на вході PV подане значення C#12, а поточне значення лічильника становить 3, то при позитивному фронті RLO на вході S поточне значення лічильника встановиться рівним 12; якщо на вході PV подане значення C#2, а поточне значення лічильника становить 90, то при позитивному фронті RLO на вході S поточне значення лічильника встановиться рівним 2.
Вхід R використовується для встановлення поточного значення лічильника рівним нулеві, тобто при значення RLO=“1” на вході скидання R, поточне значення лічильника скинеться в нуль. Вхід скидання R працює ідентично до блоку скидання. Якщо на вході R присутня “1”, а на вході CU чи CD або S сигнальний стан змінився з 0 на 1, то поточне значення лічильника встановиться в нуль, перевага надається входові R. Опрацювання входів ЦПУ відбувається зверху-вниз, зліва-направо.
Розглянемо випадок, коли позитивний фронт RLO присутній одночасно на входах CU та CD лічильника прямої/зворотної лічби. У цьому випадку лічильник не змінить свого стану (спочатку лічильник додасть одиницю до свого значення, а потім одразу і відніме).
Ви можете встановити значення лічильника з допомогою входу PV. Значення лічильника на цьому вході можливо записати у вигляді константи (С#12 або W#16#0012), операнда розміром в слово (MW32) або ж як змінну типу WORD (“Counter_Value”).
Входам S, PV та R не обов’язково присвоювати значення.
Виходи CV, CV_BCD і Q використовуються для зчитування поточного значення лічильника. Вихід CV надає інформацію про поточний стан лічильника в шістнадцятковій формі. Вихід CV_BCD містить інформацію про поточне значення лічильника у форматі BCD (двійково-десятковий). Якщо цим входам присвоїти, наприклад маркерну область пам’яті розміром в слово (MW10), то цей операнд буде містити поточне значення лічильника. Стан виходу Q рівний “1”, якщо поточне значення лічильника відмінне від нуля і “0”, якщо поточне значення лічильника дорівнює нулеві.
З допомогою блочного елементу MOVE можна передати поточне значення лічильнику у іншу область пам’яті, наприклад маркерну. Значення лічильника в цій області пам’яті буде збережене в форматі INT. Такий метод зчитування значення лічильника називається прямим зчитуванням.
/а)
/б)
Рис. 0.1. Приклад прямого зчитування значення лічильника: а) мовою FBD б) мовою LAD
Також STEP 7 дозволяє порівнювати значення двох змінних типу INT, DINT та REAL між собою. Функції порівняння розташовані в каталозі елементів в папці Comparator (Компаратори). Всього існує шість функцій порівняння, з допомогою яких можливо виконати такі функції порівняння як: перевірити рівність та нерівність двох змінних; перевірити чи одна змінна є більшою чи меншою за другу; перевірити чи одна змінна є більшою-рівною чи меншою-рівною від іншої. Функції порівняння мовою FBD та мовою LAD представляються у вигляді блоків.
Блок функцій порівняння складається із заголовку блоку, входів IN1 та IN2 та немаркованого виходу. Назва кожного блоку розпочинається із символів СМР (скорочення Comparator, компаратор), за якими слідує тип функції порівняння. Наприклад, якщо заголовок блоку функції порівняння містить такий запис СМР==D, то функція, яку реалізує цей блок, перевіряє рівність двох змінних типу DINT. Якщо назва блоку є СМР>I, перевіряє чи змінна подана на вхід IN1 є більшою від змінної, поданої на вхід IN2. Якщо умова порівняння є дійсною (true), то на немаркованому виході блоку встановлюється RLO=“1”, в іншому випадку RLO=“0”.
У таблиці поданій нижче розшифроване позначення кожної з функцій порівняння.
Позначення функції порівняння
Опис функції порівняння
==
IN1 є більшим IN2
<>
IN1 не дорівнює IN2
>
IN1 є більшим IN2
<
IN1 є меншим IN2
>=
IN1 є більшим-рівним IN2
<=
IN1 є меншим-рівним IN2
Завдання до лабораторної роботи
Варіант №
Адреса пам’яті для збереження значення лічильника (MW)
Кількість поверхів
Адреса пам’яті для збереження коду натиснутої кнопки (MW)
Номер блоку даних
Адреса байту функціональних клавіш
8
9
6
11
8
57
Символьна таблиця
/
Висновок: виконуючи цю лабораторну роботу, я освоїв принципи роботи лічильників та методику програмування текстових панелей. Отримав навики розроблення автоматизованих систем з використанням ПЛК фірми Vipa та розроблення програм згідно поставлених задач автоматизації на прикладі автоматичної системи управління ліфтом.