Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

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



При розробці великих і складних програм рекомендується і частково є необхідно «структурувати» (розбивати) програми з виділенням блоків. Операційна система контролера пропонує користувачеві різні типи блоків для реалізації алгоритмів керування та зберігання даних. В залежності від вимог процесу, програма може бути реалізована в різних типах блоків (рис. 5.1).

Рисунок 5.1 – Типи програмних блоків

 

Організаційні блоки (OB) формують інтерфейс між операційною системою і програмою користувача. Вся програма може бути запрограмована в ОВ1, що викликається операційною системою циклічно (лінійне програмування). Або програма може бути розбита на кілька підпрограм і реалізована в декількох блоках (структурне програмування).

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

Системні функції (SFC) – це параметровані функції, вбудовані в операційну систему ЦПУ. За кожним номером SFC закріплені конкретні завдання.

Функціональні блоки (FB) виконують ті ж завдання, що і функції (FC). Але, крім цього, вони мають свою власну область пам'яті у формі екземплярних блоків даних. В результаті чого функціональні блоки підходять для керування різними процесами, наприклад такими, як задачі ПІД-керування.

Системні функціональні блоки (SFB) – це параметровані функціональні блоки вбудовані в операційну систему ЦПУ, за кожним номером SFВ закріплені конкретні завдання.

Блоки даних (DB) – це області пам'яті для збереження структурованих даних користувача.

При розробці програм звертання до змінних здійснюється з адресами; це входи, виходи, таймери, блоки. До всіх змінних можуть бути присвоєні абсолютні адреси (наприклад, I1.0) або символічні адреси (наприклад, Start signal). Символічна адресація використовує замість абсолютної адреси імена. Застосовуючи осмислені імена, програма буде більш зрозумілою користувачу.

У символічній адресації розрізняють локальні (local) і глобальні (global) символи. Локальні символи відомі тільки в тих блоках, в яких вони були визначені. При розробці програм можна використовувати однакові локальні символи в різних блоках для різних цілей. Глобальні символи присвоюються у всій програмі і мають однакові значення у всіх блоках. Глобальні символи призначаються в таблиці символів.

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

Програмне середовище WinPLC7 дозволяє працювати з різними типами даних, що обумовлюють характеристики даних, представлення змісту змінної та допустимі області значень. Основні типи даних наведено в таблиці 5.1.

Таблиця 5.1 – Типи даних

Тип даних Розрядність Опис Приклад запису константи
BOOL 1 біт Біт (одно розрядне значення) False True
BYTE 8 біт 8-ми розрядне шістнядцяткове число B#16#00, 16#00 B#16#FF, 16#FF
CHAR 8 біт Одна літера (ASCII) Друковані літери, наприклад, ‘A’
WORD 16 біт 16-ти розрядне шістнядцяткове число W#16#0000, 16#0000 W#16#FFFF, 16#FFFF
6-ти розрядне двійкове число 2#0000_0000_0000_0000 2#1111_1111_1111_1111
Значення лічильника, 3 декади (розряди) BCD C#000 C#999
Два 8-ми розрядних числа без знака B(0, 0) B (255, 255)
DWORD 32 біти 32 розрядне шістнядцяткове число DW#16#0000_0000, 16#0000_0000 DW#16#FFFF_FFFF, 16#FFFF_FFFF
32 розрядне двійкове число 2#0000_0000..0000_0000 2#1111_1111..1111_1111
Чотири 8-ми розрядних числа без знака B(0, 0, 0, 0) B (255, 255, 255, 255)
INT 16 біт Число з фіксованою комою -32 768 +32 767
DINT 32 біти Число з фіксованою комою L#-2 147 483 648 L#+2 147 483 647
REAL 32 біти Число з плаваючою комою +1.234567Е+02
123.4567
S5TIME 16 біт Значення часу в форматі SIMATIC S5T#0ms S5TIME#2h46m30s
TIME 32 біти Значення часу в форматі IEC T#-24d20h31m23s647ms TIME#-24d20h31m23s647ms
T#-24.855134d TIME#-24.855134d
DATE 16 біт Дата D#1990-01-01 DATE#2186-12-31
TIME_OF_DAY 32 біти Час суток TOD#00:00:00 TIME_OF_DAY#23:59:59.999

 

При розробці різних програм часто використовуються числові функції, які дозволяють обробляти числові значення таких типів даних як INT (цілі числа), DINT (подвійні цілі числа) і REAL (дійсні) і, таким чином, розширюють функціональні можливості PLC. До числових функцій можна віднести:

– функції порівняння – формують бінарний результат порівняння двох значень. Вони дозволяють працюють з типами даних INT, DINT і REAL;

– арифметичні функції – використовуються для здійснення обчислень у створюваній програмі. Всі основні арифметичні дії проводяться над типами даних INT, DINT і REAL.

– математичні функції – розширюють можливості обчислювань за основні арифметичні функції, включаючи, наприклад, тригонометричні функції;

– функції перетворення – дозволяють привести числові значення до необхідного типу даних;

– функції зрушення – дозволяють вирівнювати вміст змінної шляхом зсуву вправо або вліво.

– побітові логічні операцій (числова логіка) – дозволяє маскувати цифрові значення, виділяючи (вказуючи) окремі біти і встановлюючи їх в «1» або «0».

Арифметичні функції комбінують два значення у відповідності з основними арифметичними операціями додавання, віднімання, множення і ділення. Арифметичні функції можливо застосовувати до змінних типів INT, DINT і REAL (таблиця 5.2).

Таблиця 5.2 – Арифметичні функції

Арифметична функція Тип даних
INT DINT REAL
Додавання ADD_I ADD_DI ADD_R
Віднімання SUB_I SUB_DI SUB_R
Множення MUL_I MUL_DI MUL_R
Ділення DIV_I DIV_DI DIV_R
Ділення з залишком, в якості результату MOD_DI

Блоковий елемент арифметичних функцій містить всі операції в формі функціональних входів і функціональних виходів (рис. 5.2).

а) б)
Рисунок 5.2 – Графічне представлення арифметичної функції: а) мова програмування LAD; б) мова програмування FBD

 

Крім дозволяючого входу (enable input) EN і дозволяючого виходу (enable output) ENO блоковий елемент арифметичної функції має два входи IN1 і IN2 і вихід OUT. «Заголовок» у блочному елементі ідентифікує виконувану арифметичну дію (ADD_I, наприклад, означає складання чисел типу INT).

Комбіновані значення подаються на входи IN1 і IN2, результат обчислення знаходиться на виході OUT. Входи і вихід можуть мати різні типи даних в залежності від арифметичної функції. Наприклад, у разі арифметичної функції ADD_R (складання чисел типу REAL) входи і вихід віднесені до типу REAL. Використовувані змінні повинні бути того ж типу даних, що і входи або вихід. Якщо для операндів використовуються абсолютні адреси, то розміри операндів повинні відповідати типам даних.

Арифметична функція виконується, якщо на дозволяючому вході присутня «1». Якщо під час обчислення виникає помилка, то дозволяючий вихід встановлюється в "0", в іншому випадку він встановлюється в «1». Якщо виконання функції не дозволено (EN = «0»), то обчислення не виконуєть, і ENO також обнуляється.

На рис. 5.3 наведено приклад арифметичної операції, в якій значення слова пам'яті (маркерів) MW 100 ділиться на 250; цілочисельний результат зберігається в слові пам'яті (маркер) MW 102.

Рисунок 5.3 – Приклад виконання арифметичної функції з типом даних INT

Мови програмування LAD і FBD дозволяють використовувати наступні математичні функції:

– синус, косинус, тангенс;

– арксинус, арккосинус, арктангенс;

– зведення в квадрат, визначення квадратного кореня;

– експоненціальна функція з основою е, натуральний логарифм.

Усі математичні функції працюють з числами типу даних REAL.

Блочний елемент математичної функції (рис. 5.4) має вхід IN і вихід OUT, а також дозволяючий вхід EN і дозволяючий вихід ENO. «Заголовок» у блочному елементі ідентифікує виконувану математичну функцію.

а) б)
Рисунок 5.4 – Графічне представлення арифметичної функції: а) мова програмування LAD; б) мова програмування FBD

Математична функція виконується, якщо на дозволяючому вході (EN) присутня «1», або якщо через вхід EN проходить «електричний струм». Якщо при обчисленні виникне помилка, то дозволяючий вихід встановлюється в "0"; інакше він встановлюється в «1». Якщо виконання функції не дозволено (EN = «0»), то обчислення не виконуються, і ENO також стає рівним «0».

На рис. 5.5 наведено приклад арифметичної операції, в якій квадратний корінь визначається з значення змінної «MathVal1» і зберігається в змінній «MathRoot».

Рисунок 5.5 – Приклад виконання математичної функції

 

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

 

Хід роботи

1. Ознайомитися з основними типами лічильників в програмному пакеті WinPLC7.

2. Створити функціональний блок для розрахунку математичної функції.

Створити функціональний блок можливо у вкладці «Вид – Управление блоками». При вибору даного пункту відкриється вікно показане на рис. 5.6.

Рисунок 5.6 – Створення функціонального блоку

 

У даному вікні створити новий блок.

3. У створеному блоці, згідно з варіантом завдання (табл.. 5.3), призначити локальні змінні необхідних параметрів (рис. 5.7).

Рисунок 5.7 – Завдання локальних змінних

 

4. Створити програму обчислення математичної функції.

Приклад 1. Скласти програму розв’язання рівняння:

.

При розв’язання рівняння спочатку знаходяться квадрати змінних a і b, потім вони складаються. Завершується приклад визначенням квадратного кореня з суми. Програма розв’язання зазначеного рівняння представлено на рис. 5.8.

Рисунок 5.8 – Приклад програми розв’язання рівняння

Приклад 2. Скласти програму розв’язання рівняння:

.

Програма розв’язання зазначеного рівняння представлено на рис. 5.9.

Рисунок 5.9 – Приклад програми розв’язання рівняння

 

Таблиця 5.3 – Варіанти завдань

№ п/п Завдання № п/п Завдання

 

Зміст звіту

1. Титульна сторінка.

2. Тема й мета роботи.

3. Опис проведеної роботи.

4. Структурна схема розробленої програми.

5. Висновки щодо роботи.

 

Контрольні питання

1. Охарактеризуйте типи програмних блоків.

2. Охарактеризуйте функції, що виконують організацій блоки.

3. Поясніть різницю між блоками функцій та системних функцій.

4. Яким чином здійснюється символьна адресація.

5. Поясніть різницю між глобальними та локальними змінними.

6. З якими типами даними дозволяють працювати числові функції.

7. Перерахуйте функції, що відносяться до числових функцій.

8. В чому полягає різниця між арифметичними та математичними функціями.

9. До яких типів змінних можливо застосовувати арифметичні функції?

10. Перерахуйте арифметичні функцій, що використовуються у пакеті WinPLC7.

11. Перерахуйте математичні функцій, що використовуються у пакеті WinPLC7.

12. За якої умови можливе виконання арифметичних та математичних функцій?

Література:[8, с. 153–167; 10, с. 35–39; 11, с. 26–53].

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.