Технійчний процесс: рафінаційна-екстракційна колона
Правила аналізу базових схем автоматизації промислових технологічних процесів. Процедура розробки системи автоматичного керування промислових технологічних процесів. Розробка та реалізація людино-машинного інтерфейсу в SCADA-системі Simple SCADA.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 11.03.2019 |
Размер файла | 4,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Одеська національна академія зв'язку імені О. С. Попова
Кафедра комп'ютерно-інтегрованих технологічних процесів та виробництв"Основи комп'ютерного управління"
КУРСОВА РОБОТА
з дисципліни "Основи комп'ютерного управління"
Технійчний процесс: рафінаційна-екстракційна колона
Виконала: Федонюк Вікторія
Студентка групи :
КТ-3.18
Варіант №11
Перевірив: Тігарєв А.М
Одеса
2018
Зміст
1. Правила аналізу базових схем автоматизації (БСА) промислових технологічних процесів (ПТП)
1.1 Основні типи параметрів ПТП
1.2 Типові позначення автоматичних регуляторів ПТП
1.3 Типові позначення параметрів технологічних потоків ПТП
1.4 Приклад аналізу БСА ПТП
2. Процедура розробки системи автоматичного керування (САК) ПТП
2.1 Математичне моделювання ПТП
2.2 Розрахунок параметрів ПІ-регуляторів
2.3 Моделювання поведінки(динаміки) САК
3. Розробка програмного забезпечення для моделювання птп в реальному часі
3.1 Аналіз БСА ПТП та визначення тегів для OPC-сервера
3.2 Розробка скрипта для моделювання ОК
4. Розробка макета людино-машинного інтерфейсу (ЛМІ) системи автоматизації
4.1 Визначення основних вимог до функціональності ЛМІ
4.2 Розробка макета екрана I рівня
4.3 Розробка макета екрана II рівня
4.4 Розробка макета екрана III рівня
5. Реалізація людино-машинного інтерфейсу в SCADA-системі Simple SCADA
5.1 Налаштування переліку змінних проекта
5.2 Розробка програми для ПІД-регулювання
5.3 Підготовка зображень
5.4 Розробка екрана I рівня
5.5 Розробка екрана II рівня
5.6 Розробка екрана III рівня
Висновок
Литература
1. Правила аналізу базових схем автоматизації (БСА) промислових технологічних процесів (ПТП)
1.1 Основні типи параметрів ПТП
Параметри виробничих процесів розділимо на три основні типи:
1) керовані змінні (КЗ) - параметри, що підлягають автоматичному регулюванню (підтриманню постійного значення);
2) керуючі впливи (КВ) - параметри, що підлягають зміні для досягнення постійних значень керованих змінних.
3) параметри для аналізу стану виробництва (ПС) - параметри, відхилення яких від норми свідчить про порушення ходу технологічного процесу, що може призвести до аварійної ситуації, зниження якості продукції чи збільшення собівартості виробництва. Параметр виробничого процеса може належати як до одного, так і до декількох типів одночасно. Наприклад, витрата газу в котел - це одночасно КВ і ПС.
1.2 Типові позначення автоматичних регуляторів ПТП
Алгоритм регулювання в контурі технічно змінює кількість витрати пари шляхом зміни ступеню відкриття положення регулюючого клапану. Така зміна проводиться алгоритмом в випадку якщо значення концентрації заданого компоненту відхилюється від бажаного (заданого). Позначення регуляторів на БСА проводиться за допомогою незафарбованого кола, в середині якого записуються дві літери, друга з яких обов'язково літера «C». КЗ та КВ контура показуються за допомогою пунктирної лінії, що веде до кола.
1.3 Типові позначення параметрів технологічних потоків ПТП
Стандартні позначення параметрів технологічних потоків ПТП приведені в таблиці 1.1 Методичні вказівки до курсової роботи з дисципліни «Основи комп'ютерного управління»
1.4 Аналіз БСА ПТП
автоматизація промисловий технологічний рафінаційний
Насіння високоолійного соняшнику надійно зберігається, якщо вологість їх не перевищує 7%, а температура знижена до 10 0 С і нижче. При вологості вище критичної і температурі 20 - 25 0 С, характерною для щойно сформованих партій насіння соняшнику, в насипу насіння починається бурхливий розвиток мікроорганізмів, интен- пасивного відбуваються гідролітичні і окисні процеси, що приво- дит до швидкого погіршення якості насіння соняшнику як мас- особистого сировини. Навіть кілька годин зберігання щойно зібраного насіння високоолійного соняшнику вологістю вище критичної призведе до масового самозігрівання і псування, що робить неможлива отримання масла високої якості.
Самосогревание соняшнику розвивається дуже швидко і призводить до повної псування насіння, зростанню кислотного числа масла до 30 - 35 мг КОН на 1 г жиру. Серед причин самозігрівання - засо- ренность (при зберіганні в одних і тих же умовах вологість органі- чеський домішки майже в 2 рази вище вологості насіння), а також наяв- ність мікроорганізмів в насінній масі, переважно неспоро-утворюють епіфітних бактерій і цвілевих грибів. При поступ- лення в короткі терміни великої кількості вологого і сирого під- солнечника, висушити його в потоці не завжди вдається можли вим. У зв'язку з цим доцільно застосовувати різні способи по- щення стійкості щойно зібраного насіння соняшнику, серед них
-Сушка.
У шахтних зерносушарках сушать до 90% заготовляється се- мян соняшнику. З усіх зерносушарок шахтного типу краще вико -пользовать для сушіння насіння соняшнику спарені сушарки, на- приклад ДСП-32-ОТ.
Вони дозволяють сушити насіння за різними технологічними схемами в залежності від початкової вологості і необхідного знімання вологи. Так, при порівняно невисокій початковій вологості (до 14%) насіння соняшнику можна висушити за один пропуск за схемою сушіння-охолодження. Обидві зерносушарки працюють паралельно. При вологості насіння від 14 до 20% доцільним є послідовний пропуск насіння через обидві сушарки за схемою сушіння-отлежка-сушка- охолодження (вентилятор зони охолодження першої сушарки - отклю- чен).
При вологості насіння вище 20% охолоджувальну шахту першої зерносушарки можна використовувати як сушильну, підключивши її до топки.
Насіння, що підлягають висушування, подають норією 1 в загру- зочний розподільний надсушильний бункер 3 у верхній частині шахтної сушарки (рис. 2.1). Далі насіння рухаються, огинаючи короба в зонах сушіння і охолодження в сушильних шахтах 4 і 5. У зв'язку з цик- лическими характером роботи затвора випускного механізму 10 при випуску насіння з шахтної сушарки насіння рухаються шахтах нерав- номерно - при відкритті затвора переміщаються вниз, а в період за-криття затвора - зупиняються в своєму низхідному русі. Сушильний агент (суміш продуктів згоряння і повітря) нагнітається по газоходу в розподільні камери зон сушіння 2 і 13 вентиля- торами 6 і 7, які наводяться електродвигунами загальною потужно- стю 60 кВт.
Через випускний механізм 17 рециркулируют насіння посту- пают в норію 4, з неї самопливом в надсушильний бункер 6, через перегородку бункера зливаються в інший бункер і підігрівач. Від- сюди вони йдуть в норію 3, де змішуються з сирими насінням з бункера. У надсушильний бункері насіння проходять через сушильну шахту 10 і шахту охолодження 15, транспортером і норією подаються на склад або в силос. Якщо вологість насіння на виході з шахти ох- лажденія вище норми, то насіння повертаються на досушку. Агент сушіння з топки 16 і паралельно з шахти охолодження 15 засасива- ється вентиляторами 9 і 11 і подається в підігрівач. з подогревателя він надходить в сушильні шахти, де пронизує насіння в щільному малорухливому шарі. Відпрацьований агент сушіння очищається в пилеосадочних камерах 12 і циклони 7 і потім викидається в атмосферу.
Охолоджуються насіння в шахті охолодження 15 зовнішнім возду- хом, який засмоктується вентилятором і, пройшовши через пилеоса- дочно камеру 14, змішується з агентом сушіння.
Для сушіння насіння соняшнику в олійно-жировій промисло- ності застосовують барабанні сушарки з диференційованими ре- жимами сушки, в залежності від вологості насіння. Температура агента сушіння повинна бути тим вище, чим вище вологість насіння. Великими недоліками застосування барабанних сушарок є часткове розтріскування лузги й обрушення насіння, низьке знімання вологи за один пропуск через сушарку, низька продуктивність.
Сушіння насіння в барабанних сушарках відбувається в переси- Пающіє шарі насіння при його продувці агентом сушіння. У барабанних сушарках температура агента сушіння в залежності від вологості се- мян і продуктивності підтримується на рівні 250 - 350 0 С, на виході з сушарки - 50 - 80 0 С. Середня тривалість преби- вання насіння в сушарці 14 - 17 хв.
У барабанній сушарці сушіння відбувається швидше, ніж в шахт- ної, але коефіцієнт заповнення обсягу барабана насінням состав- ляє 20 - 25%, в зв'язку з чим, кількість вологи, що випаровується в 1 м 3
простору барабана, менше, ніж в шахтній зерносушарці.
Жорсткі режими сушіння, різний час перебування насіння соняшнику в барабанних сушарках викликають нерівномірний на- грев і сушку, збільшення кислотного числа жиру, підвищений рас хід палива.
Екстрактор.
Під екстракцією розуміється вилучення масла з маслосодер- жащего матеріалу за допомогою легколетучего розчинника.
Екстракційний спосіб добування олії забезпечує най- леї глибоке витяг масел з матеріалу при досить високому їхній якості.
Екстракційний спосіб вилучення масел може застосовуватися як в чистому вигляді, так і в комбінації з пресовим.
Процес безперервної екстракції олії розчинником в про- промислових умовах здійснюється в основному двома способами:
• способом занурення матеріалу в противоточно рухомий розчинник;
• способом багаторазового зрошення розчинником матеріалу, що переміщається за допомогою будь-якого транспортного механізму, при цьому найбільш знежирений матеріал зрошується чистим розчинником, а свіжий матеріал
- найбільш концентрованою мис- целлой.
До екстрактор, які працюють за способом занурення матеріалу в противоточно рухомий розчинник, відноситься екстрактор НД-1250
В даний час на вітчизняних олійноекстракційних за- водах експлуатується модернізований екстрактор НД-1250 в двох модифікаціях. Один з них (рис. 7.1) складається з трьох колон: екстракційної 4, завантажувального 1 і горизонтального передавального шнека 3.
Відмінною особливістю цієї модифікації екстрактора є змінена конструкція завантажувального колони і, перш за все, її шнекового вала. У витках верхній частині валу робиться раз-рив, що забезпечує створення безвітковой зони, що дозволяє ма- теріали в цій частині колони переміщатися вільно, без перемішування вання.
Маслосодержащей матеріал у вигляді пелюстки, крупки або гранул надходить через патрубок 8 у верхню частину центральної живильної тічки 9. Наявність радіальної пластини 10 перешкоджаєобертанню матеріалу і забезпечує його рух по гвинтової поверхні шнека 6. Обмежувальна планка 12 створює певний шар матеріалу на його витках .
Нижня частина тічки 9 перфорована, що дає можливість місцелли з декантатор проникати в шар рухається матеріалу і витягувати поверхневе масло. Матеріал, пройшовши шар місцелли, потрапляє в межвиткового зону (між шнековими витками 5 і 6).
Під дією сили тяжіння він опускається вниз підхоплюється верхним витком шнека 5. Матеріал послідовно проходить загрузочну колону 1, передавальний шнек 3 і екстракційну колону 4, в противотоке обробляючи місцелли відбувають концентрацій. У верхній частині екстракційної колони він зрошується чистим раство- телеглядачам, проходить зону стоку розчинника і через патрубки 15 ви- водиться з екстрактора.
Чистий розчинник надходить в екстракційну колону через патрубки 7 або 14 і рухається в противотоке з матеріалом. У міру руху по екстракційної колоні 4, передавальному шнеку 3 і завантажувального колоні 1 він збагачується маслом. У міжвиткової зоні місцелла самофільтруется через шар матеріалу і надходить в декан- татор 2, де додатково відстоюється, і потім виводиться через патрубок 16.
Важливу роль в роботі екстрактора грає положення ограничи- тільних планок 12 і 13, які регулюють шар матеріалу на вит- ках верхньої і нижньої частин шнекового вала завантажувального колони. Співвідношення висот шару матеріалу, відповідно, у верхній і нижній частинах вала має становити 2: 1 - 1,5: 1.
При співвідношенні менше 1,5: 1 відбувається подпрессовка мате- ріалу в нижній частині вала, що може привести до запрессовке екстрактора, а при співвідношенні більше 2: 1 - знижується виробник-ність екстрактора.
екстракторах, які працюють за способом багатоступінчастого зрошення матеріалу, що екстрагується розчинником, процес извле- чення масла здійснюється в режимі протитечії за допомогою ре- циркулюючої місцелли. В ході рециркуляції на матеріал на ка- ждой ступені подається місцелла, відкачувана зі збірки, распо- лежання під тією ж або сусідній щаблем екстракції. На по-останньої ступені екстракції матеріал зрошується чистим розчинником. До цього типу належить велика група екстракторів: ленточ- ні (Де Смет, МЕЗ, Трійка), рамкові, лоткові і креслень.
ДСТУ 4492:2005 Олія Соняшникова.
Цей стандарт поширюється на олію соняшникову, яку виробляють пресуванням або екстрагуванням насіння соняшникового.
Олія соняшникова призначена для вживання в їжу та реалізацію через торговельну мережу, під час виробництва гідрованих та переетерифікованих жирів, маргарину, майонезу та інших продуктів харчування.
Олія соняшникова повинна відповідати вимогам цього стандарту, і її виробляють згідно з чинними технологічним регламентом або технологічною інструкцією, затвердженими у встановленому порядку, з додержуванням вимог ДСП 4.4.4 - 90 [1] з насіння соняшнику згідно з ГОСТ 22391
Назва |
Характеристика |
показників олії |
Метод |
|
Показника |
вищого ґатунку |
першого ґатунку |
Випробовування |
|
Прозорість |
Прозоре без осаду |
ГОСТ 5472 |
||
Смак та запах |
Притаманні олії соняшниковій без стороннього запаху, присмаку та гіркоти |
ГОСТ 5472 |
||
Колірне число, мг йоду, не більше ніж |
10 |
15 |
ГОСТ 5477 |
|
Назва |
Характеристика |
показників олії |
Метод |
|
Показника |
вищого ґатунку |
першого ґатунку |
Випробовування |
|
Кислотне число, мг КОН/г, не більше ніж |
1,0 |
1,5 |
ДСТУ 4350 ГОСТ 5476 |
|
Пероксидне число, ^ О ммоль/кг, не більше ніж — під час випуску з підприємства — наприкінці терміну зберігання |
3.0 10.0 |
6,0 10,0 |
ДСТУ ISO 3960 ГОСТ 26593 |
|
Масова частка фосфоровмісних речовин, %, не більше ніж — у перерахунку на стеароолеолецитин — у перерахунку на Р2О5 |
0,10 0,009 |
0,20 0,016 |
ГОСТ 7824 |
|
Масова частка нежирових домішок, %, не більше ніж |
0,01 |
0,03 |
ДСТУ ISO 663 ГОСТ 5481 |
|
Масова частка вологи та летких речовин, %, не більше ніж |
0,10 |
0,15 |
ДСТУ ISO 662 ГОСТ 11812 |
|
Віск та воскоподібні речовини |
Відсутність |
Згідно з додатком А |
||
Ступінь прозорості, фем, не більше ніж |
25 |
ГОСТ 5472 |
||
Анізидинове число |
Не нормують* |
ДСТУ ISO 6885 |
||
Масова частка вітаміну Е, мг %, не менше ніж |
80,0 |
ДСТУ ISO 9832 ГОСТ 30417 |
||
Масова частка вітаміну А, м. е., не менше ніж |
15,0 |
ГОСТ 30417 |
||
* Визначання показника не нормують до 01.01.2008 р. Примітка 4. Реалізація з легким помутнінням або «сіткою» не є ознакою браку. Під «сіткою» розуміють присутність у прозорій олії окремих дрібних часточок воскоподібних речовин, а під «легким помутнінням» розуміють присутність в олії суцільного фону дрібних часточок воскоподібних речовин, які злегка знижують прозорість олії. Примітка 5. Показник «Ступінь прозорості» визначають на вимогу замовника, якщо є розбіжності під час оцінювання показника «Прозорість». Примітка 6. Віск та воскоподібні речовини можна визначати за методами, затвердженими центральним органом виконавчої влади у сфері охорони здоров'я. |
Таблиця 3 -- Органолептичні та фізико-хімічні показники олії соняшникової нерафінованої
Назва Показника |
Характеристика показників олії |
||||||
нерафінованої |
Метод |
||||||
невимороженої |
вимороженої пресової |
||||||
вищого ґатунку |
першого ґатунку |
другого ґатунку |
вищого ґатунку |
першого ґатунку |
Вання |
||
Прозорість |
Допустимо наявність «сітки» над осадом |
Допустимо легке помутніння над осадом |
Прозоре без осаду |
ГОСТ 5472 |
|||
Смак та запах |
Притаманні олії соняшниковій без стороннього присмаку, гіркоти та запаху |
Притаманні олії соняшниковій. Допустимо присмак легкої гіркоти та злегка затхлого запаху |
Притаманні олії соняшниковій без стороннього присмаку, гіркоти та запаху |
Притаманні олії соняшниковій із присмаком легкої гіркоти |
ГОСТ 5472 |
||
Назва показника |
Характеристика показників олії |
Метод випробову вання |
|||||
Нерафінованої |
|||||||
невимороженої |
вимороженої пресової |
||||||
вищого ґатунку |
першого ґатунку |
другого ґатунку |
вищого ґатунку |
першого ґатунку |
|||
Колірне число, мг йоду, не більше ніж |
15 |
25 |
35 |
15 |
25 |
ГОСТ 5477 |
|
Кислотне число, мг КОН/г, не більше ніж |
1,5 |
4,0 |
6,0 |
1,5 |
4,0 |
ДСТУ 4350 ГОСТ 5476 |
|
Пероксидне число, ^ О ммоль/кг, не більше ніж — під час випуску з підприємства — наприкінці терміну зберігання |
7.0 10.0 |
8,0 10,0 |
7.0 10.0 |
ДСТУ ISO 3960 ГОСТ 26593 |
|||
Масова частка фосфоровмісних речовин, %, не більше ніж — у перерахунку на стеароолеолецитин — у перерахунку на Р2О5 |
0,40 0,03 |
0,60 0,05 |
0,80 0,070 |
0,30 0,02 |
0,40 0,03 |
ГОСТ 7824 |
|
Масова частка нежирових домішок, %, не більше ніж |
0,05 |
0,10 |
0,20 |
Відсутність |
ДСТУ ISO 663 ГОСТ 5481 |
||
Масова частка вологи та летких речовин, %, не більше ніж |
0,20 |
0,20 |
0,30 |
0,15 |
0,15 |
ДСТУ ISO 662 ГОСТ 11812 |
|
Віск та воскоподібні речовини |
Не визначають |
Відсутність |
Згідно з додатком А |
||||
Температура спалаху олії екстракційної, оС, не нижче ніж |
225 |
Не визначають |
ГОСТ 9287 |
||||
Ступінь прозорості, фем, не більше ніж |
40 |
Не визначають |
25 |
ГОСТ 5472 |
|||
Анізидинове число |
Не нормують* |
ДСТУ ISO 6885 |
|||||
* Визначання показника не нормують до 01.01.2008 р. Примітка 7. Олію нерафіновану другого ґатунку направляють тільки для промислового переробляння. Примітка 8. Олія нерафінована з підвищеними кислотним і (або) пероксидним числами призначена на технічні цілі або може бути реалізована для промислового переробляння за узгодженням із замовником. |
Вимоги до сировини
Для виробництва олії соняшникової використовують насіння соняшнику згідно з ГОСТ 22391.
Для виробництва олії соняшникової гідратованої використовують олію соняшникову не- рафіновану вищого та першого ґатунків.
Для виробництва олії соняшникової рафінованої та рафінованої дезодорованої використовують олію соняшникову нерафіновану та гідратовану.
Для виробництва олії соняшникової вимороженої та невимороженої нерафінованої, гідратованої, рафінованої та рафінованої дезодорованої використовують:
— кислоту лимонну харчову -- згідно з ГОСТ 908;
— кислоту ортофосфорну марки А -- згідно з ГОСТ 10678;
— кислоту ортофосфорну -- згідно з ГОСТ 6552;
— їдкий натр марок РХ, РД -- згідно з ГОСТ 2263;
— сіль кухонну -- згідно з ДСТУ 3583;
— глини вибілювальні -- згідно з чинною нормативною документацією;
— порошок перлітовий фільтрувальний -- згідно з ДСТУ 3665;
— азот газоподібний та рідкий -- згідно з ГОСТ 9293;
— розчинники гексанові -- згідно з чинною нормативною документацією.
Дозволено використовувати інші матеріали згідно з чинною нормативною документацією або згідно з гігієнічним висновком центрального органу виконавчої влади у сфері охорони здоров'я.
Дозволено вводити в олію соняшникову антиокислювачі, біологічно активні та смако- ароматичні харчові добавки за технологічної необхідності згідно з чинною нормативною документацією або згідно з гігієнічним висновком центрального органу виконавчої влади у сфері охорони здоров'я.
Олію соняшникову нерафіновану та гідратовану, яка призначена для постачання в торговельну мережу та на підприємства ресторанного господарства, виробляють з насіння соняшнику тільки вищого та першого класів.
Олію соняшникову нерафіновану холодного пресування першого віджиму виробляють з насіння соняшнику тільки вищого та першого класів.
Частина терміну зберігання, що минула від дати виготовлення, для вищезазначеної сировини та інгредієнтів, які надходять на виробництво, не повинна перевищувати 1/3 частки загального терміну придатності.
Вміст токсичних елементів, пестицидів і мікотоксинів у сировині, яка призначена для промислового переробляння на харчові продукти, повинен відповідати вимогам чинної нормативної документації і МБВ № 5061 [2].
Вміст радіонуклідів у сировині для виробництва олії соняшникової не повинен перевищувати встановлені допустимі рівні вмісту радіонуклідів Cs-137 та Sr-90 у продуктах харчування і питній воді згідно з ДР «Допустимі рівні вмісту радіонуклідів Cs-137 і Sr-90 у продуктах харчування і питній воді» [6].
Рисунок 1.5 Рафінаційно-Екстракційна колона в процесі виробництва рафінованого масла
2. Розробки системи автоматичного керування (САК) ПТП
Для виконання завдання вона виконується в три кроки:
1) Математичне моделювання динаміки ПТП;
2) Розрахунок параметрів ПІ-регуляторів з використанням математичної моделі;
3) Моделювання поведінки(динаміки) САК при впливі збурень з метою визначення працездатності САК й можливості дотримання технологічного регламенту при заданих збуреннях.
2.1 Математичне моделювання ПТП
Стовпці матриці означають входи(u) об'єкту, строки - виходи (y). Математична модель динаміки в вигляді матриці передатних функцій (час в секундах)
Позначення |
Назва параметру |
Номінал |
Пристиме відхилення |
|
u1 |
Витрата пари |
0.2 м3/год |
+-50% номінала |
|
y1 |
Температура вихідного бензину |
65 *С |
-+ 3*С |
|
u2 |
Витрата бензину |
50 |
+-50% |
|
y2 |
Масличність шроту |
1.7% |
+-0.2 % |
Математична модель представляється наступним чином.
k=[0.106 -0.7; -0.7 -0.33];
T=[4.2 3;17 22]; %час в хв
tau=[8 32 ;21 33]; %час в хв
Введемо позначення і номінальні значення КЗ і КВ розглянутого ОК, а
також вкажемо одиниці вимірювання часу.
model_time_units = 'час в хв';
u1_title='Витрата пари, м3/год';
u2_title='Витрата бензину , тис. м3/год';
y1_title='Температура вихідного бензину, *С';
y2_title=' Масличність шроту ';
ynom=[64;1.7];
unom=[0.2;50];
1 Матриця передатних функцій моделі ОК в програмі сформується наступним чином.
W11=tf(k(1,1),[T(1,1) 1],'ioDelay', tau(1,1));
W12=tf(k(1,2),[T(1,2) 1],'ioDelay', tau(1,2));
W21=tf(k(2,1),[T(2,1) 1],'ioDelay', tau(2,1));
W22=tf(k(2,2),[T(2,2) 1],'ioDelay', tau(2,2));
W=[W11 W12;W21 W22];
W.InputName = {'u1','u2'}; W.OutputName = 'y';
Якщо виконати скрипт, то розгіні характеристики мають вигляд:
Аналіз розгінних характеристик дозволяє перевірити коректність завдання моделі: коефіцієнтів передачі, постійних часу, часів запізнення усіх передатних функцій.
Рисунок 2.1 - Розгінні характеристики ОК
2.2 Розрахунок параметрів ПІ-регуляторів
Найпростіша структура САК для розглянутих в завданні ОК - структура зі зворотнім звязком, що включає два ПІ-регулятора. Налаштування ПІ-регуляторів в такій структурі можливо визначити великою кількістю шляхів, однак більшість з них не буде враховувати наявність перехресних зв'язків між каналами ОК. Тому результативні налаштування в ряді випадків будуть не оптимальними чи взагалі непрацездатними, оскільки ПІ-регулятори будуть «заважати» один одному.
Для багатовимірного об'єкту, тобто для ОК що має число входів та виходів ? 2, для визначення параметрів декількох пов'язаних ПІ регуляторів з гарантованою робастністю можливо використовувати функцію Matlab looptune.
Робастное управління - сукупність методів теорії управління, метою яких є синтез такого регулятора, який забезпечував би гарна якість управління (наприклад, запаси стійкості), якщо об'єкт управління відрізняється від розрахункового або його математична модель невідома. Таким чином, робастної означає мале зміна виходу замкнутої системи управління при малій зміні параметрів об'єкта управління. Системи, що володіють властивістю робастності, називаються робастний (грубими) системами. Зазвичай робастні контролери застосовуються для управління об'єктами з невідомої або неповної математичною моделлю, і що містять невизначеності
Ця функція в якості аргументу приймає орієнтовну частоту зрізу для всієї системи, яку потім уточнює шляхом вирішення оптимізаційної задачі. Простим варіантом вибору такої частоти wc буде вибір частоти, що розраховується з визначення що Ts становить двократне середнє арифметичне суми постійних часу та запізнень передатних функцій ОК.
Наприклад для розглянутого ОК:
Програмний код розрахунку параметрів ПІ-регуляторів для розглянутого ОК матиме наступний вид:
D = tunableGain('Decoupler',eye(2));D.Gain.Free = [0 0;0 0];
D.InputName = 'e'; D.OutputName = {'uu1','uu2'};
PI_AC1 = tunablePID('PI_AC1','pi');
PI_AC1.InputName = 'uu1';PI_AC1.OutputName = 'u1';
PI_AC2 = tunablePID('PI_AC2','pi');
PI_AC2.InputName = 'uu2';PI_AC2.OutputName = 'u2';
sum1 = sumblk('e = r - y',2);
C0 = connect(PI_AC1,PI_AC2,D,sum1,{'r','y'},{'u1','u2'});
wc=1/(2*(fix(mean(mean(T))+mean(mean(tau)))/(2*pi)));
[W,C,gam,Info] = looptune(pade(W,1),C0,wc);
Wss=c2d(ss(pade(W,1)),1);Css=c2d(ss(C),1);
В результаті виконання коду будуть отримані 2 ПІ-регулятори з налаштуваннями:
2.3 Моделювання поведінки(динаміки) САК
Для моделювання та представлення багатовимірних систем зручним є використання форми простору станів, що представляє систему диференційних рівнянь першого порядку, представлених в матричному вигляді.
Wss=c2d(ss(pade(W,1)),1);Css=c2d(ss(C),1);
Проведемо моделювання системи керування при збільшенні завдання на 1%
Витратати пари та бензину
r=[1;1];
xr=zeros(length(Css.a),1);x=zeros(length(Wss.a),1);
y=[0;0];uu1=[];uu2=[];yy1=[];yy2=[];
tt=[];f=0;t_max=max(max(T))+max(max(tau));u=[0;0];
for i=0:3.5*t_max
e=[r(1);r(2);y(1);y(2)];
uu1=[uu1;u(1)];uu2=[uu2;u(2)];
yy1=[yy1;y(1)];yy2=[yy2;y(2)];
tt=[tt; i];
if abs(r(1)-y(1))<0.01 && abs(r(2)-y(2))<0.01
f=f+1;
if f>t_max*0.2, break; end
else
f=0;
end
xr=Css.a*xr+Css.b*e; u=Css.c*xr+Css.d*e;
x=Wss.a*x+Wss.b*u; y=Wss.c*x+Wss.d*u;
end
figure(1);
clf
subplot(2,2,1);plot(tt,yy1+ynom(1));ylabel(y1_title);
subplot(2,2,2);plot(tt,uu1+unom(1));ylabel(u1_title);
subplot(2,2,3);plot(tt,(yy2+ynom(2))/1e6);ylabel(y2_title);
xlabel(model_time_units);subplot(2,2,4);
plot(tt,uu2+unom(2));xlabel(model_time_units);ylabel(u2_title);
Рисунок 2.6 - Перехідні процеси при збільшенні завдань Температури вихідного бензину та Масличність шроту.
3. Розробка програмного забезпечення для моделювання птп в реальному часі
Для моделювання ПТП необхідно розробити Matlab-скрипт, що виконується в реальному часі. Засобом обміну даними з моделлю має бути протокол OPC. В якості емулятора OPC-сервера доцільно використовувати сервер Greybox.
3.1 Аналіз БСА ПТП та визначення тегів для OPC-сервера
В сервері Greybox доступно 20 тегів для збереження дійсних чисел та 20 тегів для логічних значень. Це цілком достатньо для виконання завдання. За результатами аналізу прикладу БСА (рис. 1.4) сформуємо таблицю з закріпленням певних тегів за параметрами.
Таблиця 3.1 - Перелік змінних OPC-сервера
Ім'я тега |
Параметр |
Значення за замовчуванням |
|
storage.numeric.reg01 |
Витрата пари(u1) |
0.2 м3/год |
|
storage.numeric.reg02 |
Витрата бензину(u2) |
50% |
|
storage.numeric.reg03 |
Температура вихідного бензину(y1) |
64*С |
|
storage.numeric.reg04 |
Масличність шроту(y2) |
1.7% |
|
Storage.numeric.reg05 |
Витрата живлення |
0.8т/год |
|
storage.numeric.reg06 |
Збурення за витратою пари |
0 |
|
Storage.numeric.reg07 |
Збурення за витратою води |
||
storage.bool.reg01 |
Система запушена |
True |
|
storage.bool.reg02 |
Відмова двигуна клапана витрати пари |
False |
|
storage.bool.reg03 |
Відмова двигуна клапана витрати бензину |
False |
3.2 Розробка скрипта для моделювання ОК
Основні вимоги до скрипта, що моделює ОК наступні:
1) Скрипт зчитує та записує необхідні параметри як змінні на OPCсервері
2) Скрипт моделює реакцію об'єкта в реальному часі з інтервалом циклу в 0.5с
Для відлагодження роботи скрипта будемо використовувати Matrikon OPC Explorer. Програмний код реалізуємо в вигляді функції kursVika. Вихідними даними функції буде модель, що відлагоджена в розділі 2.1 та дані таблиці 3.1.
function kurs
listOfTimers = timerfindall;
if ~isempty(listOfTimers)
delete(listOfTimers(:));
end
da = opcda('localhost','Graybox.Simulator.1');
connect(da);
cleanupObj = onCleanup(@finishScript);
Ts=0.5;
grp = addgroup(da,'MColumn');
f_reflux = additem(grp,'storage.numeric.reg01');
write(f_reflux, 0.2);%Витрата пари)
f_steam = additem(grp,'storage.numeric.reg02');
write(f_steam, 50);%Витрата бензину
c_top = additem(grp,'storage.numeric.reg03');
write(c_top, 64);%температурара вихідного бензину)
c_btm = additem(grp,'storage.numeric.reg04');
write(c_btm, 1.7);%Масличність шроту
d_reflux = additem(grp,'storage.numeric.reg05');
write(d_reflux, 0);%Збурення 1
d_steam = additem(grp,'storage.numeric.reg06');
write(d_steam, 0);%Збурення 2
running = additem(grp,'storage.bool.reg01');
write(running,1);%Система запущена (1/0)
f_reflux_alarm = additem(grp,'storage.bool.reg02');
write(f_reflux_alarm, 0); %Двигун для зміни витрати флегми відмовив (1/0)
f_steam_alarm = additem(grp,'storage.bool.reg03');
write(f_steam_alarm, 0); %Двигун для зміни витрати пари відмовив (1/0)
pause(1)
vars={'f_reflux', 'f_steam', 'c_top', 'd_reflux', ...
'd_steam', 'c_btm', 'f_feed', 'f_reflux_alarm', ....
'f_steam_alarm', 'running'};
ynom=[65;1.7];
unom=[0.2;50];
k=[0.106 -0.7; -0.7 -0.33];
T=[4.2 3;17 22]; %час в хв
tau=[8 32 ;21 33]; %час в хв
W11=tf(k(1,1),[T(1,1) 1],'ioDelay', tau(1,1));
W12=tf(k(1,2),[T(1,2) 1],'ioDelay', tau(1,2));
W21=tf(k(2,1),[T(2,1) 1],'ioDelay', tau(2,1));
W22=tf(k(2,2),[T(2,2) 1],'ioDelay', tau(2,2));
W=[W11 W12;W21 W22];
obj=c2d(ss(pade(W,1)),Ts);
x=zeros(length(obj.a),1);
t = timer;
t = timer('StartDelay',0, 'TimerFcn', ...
@(h,~)onTimerCallback(h),'Period',Ts);
set(t,'ExecutionMode', 'FixedRate');
start(t)
while 1
fprintf('%s %s %s\n', datestr (now, 'HH:MM:SS'), ...
['u=',num2str(u')],...
['y=',num2str(y')])
pause(1)
end
function onTimerCallback(~)
u=[f_reflux.Value-unom(1)+d_reflux.Value;...
f_steam.Value-unom(2)+d_steam.Value];
if u(1)<-unom(1), u(1)=-unom(1); end
if u(2)<-unom(2), u(2)=-unom(2); end
if u(1)>unom(1), u(1)=unom(1); end
if u(2)>unom(2), u(2)=unom(2); end
x=obj.a*x+obj.b*u;
y=obj.c*x+obj.d*u;
write(c_top,y(1) + ynom(1));
write(c_btm,y(2) + ynom(2));
end
function finishScript()
listOfTimers = timerfindall;
if ~isempty(listOfTimers)
delete(listOfTimers(:));
end
write(running,0);%Система запущена (1/0)
end
end
Запустимо скрипт в командному вікні Matlab В командному вікні почнеться вивід поточних значень відхилень КВ та КЗ.
12:38:45 u=0 0 y=0 0
12:38:46 u=0 0 y=0 0
Запустимо OPC Explorer і додамо в ньому необхідні змінні. Зменшимо значення витрати газу на 5%.
В командному вікні почнеться зміна значень КЗ
12:39:01 u=5 0 y=-0.011743 0.0046095
12:39:02 u=5 0 y=-0.02548 0.013793
12:39:03 u=5 0 y=-0.02897 0.02293
12:39:04 u=5 0 y=-0.024795 0.032019
…
12:39:21 u=5 0 y=0.3561 0.17962
12:39:23 u=5 0 y=0.38136 0.18791
12:39:24 u=5 0 y=0.40654 0.19616
12:39:25 u=5 0 y=0.43162 0.20436
…
12:39:28 u=5 0 y=0.5062 0.22872
Перехідні процеси тривали більше 2хв масштабованого часу, що відповідає рис. 2.1.
4. Розробка макета людино-машинного інтерфейсу (лмі) системи автоматизації
4.1 Визначення основних вимог до функціональності ЛМІ
Визначення принципів розробки ЛМІ оператора-технолога СА проведемо виходячи з аналізу основних проблем проектування інтерфейсів за Анохіним.
Проблема ступеню автоматизації. Оператор має виконувати наступні можливості втручання в хід процесу: зміна технологічного режиму роботи (завдань) і ручне управління технологічним процесом (відключення регуляторів). Задачі автоматичного пуску, зупинки, переналаштування процеса не розглядаємо. ЛМІ в SCADA-системі має виконувати задачу представлення інтерфейсу оператора та автоматичного регулювання параметрів за допомогою ПІ-регуляторів.
Проблема підтримки когнітивної діяльності. Функціональність елементів інтерфейсу для оператора повинна бути легко зрозумілою. Для цього використовуються такі засоби як колір, форма і положення на екрані. Найбільш швидким для розрізнення фактором інтерфейсу є колір. ISA 101 рекомендує використовувати в якості фону інтерфейсу світло-сірий колір. Цей колір мінімізує відблиски і віддзеркалення на екрані і оптимальний для порівняння з червоним, за яким закріплюються аварійні ситуації. За жовтим кольором закріплюються передаварійні ситуації. Рекомендовані значення кольорів відображені в таблиці 4.1.
Положення на екрані елементів інтерфейсів визначається по зонам для спрощення локалізації. Екрани розбиваються на зони за допомогою товстих сірий пунктирних ліній. Для спрощення визначення зв'язків між елементами контуру регулювання використовується тонка крапкова лінія.
Табл. 4.1 - Кольорова карта ЛМІ оператора-технолога
Табл. 4.2 - Елементи ЛМІ оператора-технолога
Проблема великих обсягів даних. Відомо, що можливості пам'яті людини обмежені, тому кількість змінних, що необхідні для прийняття рішення оператором в ефективному ЛМІ не має перевищувати число Міллера (7±2). Для досягнення цієї мети використовується три підходи: розбивання інформації на екрани, функціональна ієрархічна організація екранів, динамічна перестройка екранів.
Розбиття інформації на екрани має ґрунтуватися на проблемо-орієнтованому принципі. Тобто кожен екран повинен бути призначений для вирішення однієї або більше завдань. Інформації на екрані має бути достатньо для вирішення поставленого завдання, але сам екран не повинен по можливості бути перевантаженим інформацією і надлишково складним. Для зниження складності використовується поділ екрану на логічні зони та подання інформації за допомогою найбільш підходящих елементів.
Для виконання завдання необхідно провести розробку екранів трьох рівнів: I - оглядового, II - первинного і III - налагодження.
4.2 Розробка макета екрана I рівня
1) В ПТП основними показниками виробництва доцільно обрати витрату газу, повытря
2) Необхідно сигналізувати значні відхилення витрати газу, повітря, температуру в І зоні печи, Концентрация О2 в воді .
3) Присутні два регулятори -Температура в І зоні печі та Конценрация О2 в воді (TC, AС).
4) Критерій ефективності має давати узагальнене представлення об енергоефективності процесу, тобто скільки витрачається енергоресурсів на одиницю якісної продукції. Зрозуміло, що чим менше - тим краще. Бажано, щоб критерій був нормований, наприклад до 1. 1 - найвища енергоефективність, 0 - найнижча.
Визначимо, що критерій ефективності буде визначатись за відношенням кількості затраченої пари та бензину на одиницю потоку живлення й нормуватись до одиницу . Припустимо, що витрата пари й бензину однаково важлива, тоді вклад кожного компоненту складає від 0 до 0.5.
Задамо, що припустиме відхилення параметрів складає ±30% від номіналу.
Тоді відхилення витрату пари знаходиться в межах, 210…390 відхилення витрати повітря знаходиться в межах 0.14..0.26
Відхилення витрати відходів в межах 0.56…1.4
Виведемо рівняння енергоефективності відношення витрати газу до витрати відходів
Максимальним значенням відношення буде: .9286
Мінімальним значенням відношення буде:
Використовуючи лінійне рівняння
y=ax+b
Сформуємо систему:
Розв'язком системи буде : a=-0.9233, b=0.3203;
Таким чином, рівняння енергоефективності приймемо як:
Де .
Рисунок 4.1 - Приклад екрана макета I рівня
4.3 Розробка макета екрана II рівня
Екран II рівня призначено для постійного перегляду оператора, але не для втручання в хід ПТП. Для розв'язку задачі розробки макета екрана II рівня необхідно дати відповідь на наступні запитання:
1) Необхідно реализувати интерфейс. Оскільки схема цілком зручна для розуміння технологічного процесу та локалізації місця помилки.
2) Все відображення має відображатись тільки на трендах з зображенням шкали та поточного значення параметра.
3) Усі параметри мають відображатись за допомогою трендів (діапазон 5 годин, тобто масштабовані 5 хв).
Приклад макета для екрана II рівня наведено на рисунку 4.2.
Рисунок 4.2 - Приклад макета екрана II рівня
4.4 Розробка макета екрана III рівня
Екран III рівня призначено для втручання оператора в хід ПТП.
1) Необхідно організувати інтерфейс на базі БСА ПТП. Оскільки схема цілком зручна для розуміння технологічного процесу та локалізації місця помилки. Зображення техн. схеми на екрані цього рівня краще незначно змінити.
2) Оскільки кількість параметрів незначна усі з них можливо зображувати трендом з надписом й дублювати значення в панелях управління регуляторів. 3) Всі основні параметри з часових діапазон 5 год (в масштабованому часі - 5 хв.)
4) За допомогою таблиць, що пов'язують КЗ (PV) з КВ (OP). Оператор може змінювати завдання (SP) та вимикати регулятор.
Приклад макета екрана III рівня наведено на рисунку 4.3.
Рисунок 4.3 - Приклад екрана макета III рівня
5. Реалізація людино-машинного інтерфейсу (ЛМІ) в SCADA-системі Simple SCADA
5.1 Налаштування переліку змінних проекта
Змінні проекта розділяються в Simple SCADA на два типи: зовнішні (пов'язані з OPC-сервером) та внутрішні (що використовуються тільки в межах проекту). Кожна змінна має мати відповідну шкалу, в якій вказується діапазон вимірювання, значення аварійні та передаварійні. Значення шкали мають братись з технологічного регламенту ведення процеса.
Для реалізації проекта ЛМІ необхідні шкали та змінні наведені в табл.5.1 й 5.2
Таблиця 5.1 - Перелік шкал Simple SCADA для ЛМІ СА
Ім'я шкали |
Од.вим |
Мін |
Макс |
|
u1_scale |
м3/год |
0.05 |
0.4 |
|
u2_scale |
% |
0 |
100 |
|
y1_scale |
*С |
58 |
70 |
|
y2_scale |
% |
1.3 |
4 |
|
kp_scale |
% |
-10 |
2.1 |
|
ki_scale |
1/s |
-1 |
1 |
|
y1_normed_scale |
% |
0 |
1150 |
|
y2_normed_scale |
% |
0 |
2 |
Таблиця 5.2 - Перелік змінних Simple SCADA для ЛМІ СА
Рафінаційно-екстракційна колонна
|
|
Шкала |
|
|
|
|
|
|
Границы |
||||
Имя переменной |
Тип данных |
Имя шкалы |
Ед. измерения |
Максимум |
Минимум |
Описание |
Тип тега |
Имя ПК |
ВА |
ВП |
НП |
НА |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var_u1 |
Double |
u1_scale |
м3/год |
0.4 |
0.05 |
Storage register |
Внешний |
localhost |
0.4 |
0.3 |
0.1 |
0.05 |
|
var_u2 |
Double |
u2_scale |
% |
100 |
0 |
Storage register |
Внешний |
localhost |
100 |
80 |
20 |
0 |
|
var_y1 |
Double |
y1_scale |
*С |
70 |
58 |
Storage register |
Внешний |
localhost |
70 |
67 |
61 |
58 |
|
var_y2 |
Double |
y2_scale |
% |
1.3 |
2.1 |
Storage register |
Внешний |
localhost |
2.1 |
1.9 |
1.5 |
1.3 |
|
var_running |
Boolean |
|
|
|
|
Storage register |
Внешний |
localhost |
|
|
|
|
|
var_u1_fail |
Boolean |
|
|
|
|
Storage register |
Внешний |
localhost |
|
|
|
|
|
var_u2_fail |
Boolean |
|
|
|
|
Storage register |
Внешний |
localhost |
|
|
|
|
|
PID1_Kp |
Double |
kp_scale |
% |
-10 |
10 |
|
Внутренний |
|
|
|
|
|
|
PID1_Ki |
Double |
ki_scale |
1/s |
-1 |
1 |
|
Внутренний |
|
|
|
|
|
|
PID1_PrevInput |
Double |
|
|
|
|
|
Внутренний |
|
|
|
|
|
|
PID1_MaxOutput |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID1_MinOutput |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID1_First_Time |
Boolean |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID1_Int_Improvement |
Boolean |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID1_Diff_Improvement |
Boolean |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID1_Prev_Abs_Error |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID1_Integrated |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID1_Output_Nominal |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_Kp |
Double |
kp_scale |
% |
-10 |
10 |
|
внутренний |
|
|
|
|
|
|
PID2_Ki |
Double |
ki_scale |
1/s |
-1 |
1 |
|
внутренний |
|
|
|
|
|
|
PID2_PrevInput |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_MaxOutput |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_MinOutput |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_First_Time |
Boolean |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_Int_Improvement |
Boolean |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_Diff_Improvement |
Boolean |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_Prev_Abs_Error |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_Integrated |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_Output_Nominal |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
var_regon1 |
Boolean |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
var_regon2 |
Boolean |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
efficiency |
Single |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
counter_alarms |
Int64 |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
counter_warnings |
Int64 |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
state_steam |
Integer |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
state_water |
Integer |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
state_feed |
Integer |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
state_pres |
Integer |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
state_temp |
Integer |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
state_reg1 |
Integer |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
state_reg2 |
Integer |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
var_sp1 |
Double |
|
внутренний |
|
|
|
|
|
|||||
var_sp2 |
Double |
|
внутренний |
|
|
|
|
|
|||||
PID1_Kd |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
PID2_Kd |
Double |
|
|
|
|
|
внутренний |
|
|
|
|
|
|
var_y1_normed |
Double |
y1_normed_scale |
% |
0 |
1150 |
|
внутренний |
|
|
|
|
|
|
var_y2_normed |
Double |
y2_normed_scale |
% |
0 |
2 |
|
внутренний |
|
|
|
|
|
5.2 Розробка програми для ПІД-регулювання
Мовою програмування Simple SCADA є мова Object Pascal. В проект додаються скрипти цією мовою, що мають певний фіксований інтервал виконання. Кожен скрипт компілюється окремо. В цьому розділі буде описано як реалізувати САК з ПІ-регуляторами в Simple SCADA. Для відлагодження програми створимо простий екран відлагодження, що не входить до переліку необхідних в ЛМІ.
Рисунок 5.1 - Екранна форма відлагодження роботи регуляторів в редакторі Simple SCADA
Код налаштування параметрів регулятора тиску верхнього продукту і температури нижнього продукту, має наступний вигляд:
procedure initPID (Sender: TM_Control);
begin
var_sp1.Value := 64;
PID1_Kp.Value := -0.0249;
PID1_Ki.Value := 0.012;
PID1_Kd.Value := 0;
PID1_Output_Nominal.Value := 0.2;
PID1_MaxOutput.Value := 100;
PID1_MinOutput.Value := 0;
PID1_First_Time.Value := True;
PID1_Int_Improvement.Value := False;
PID1_Diff_Improvement.Value := False;
Pid1_Prev_Abs_Error.Value := 0;
PID1_Integrated.Value :=0;
var_sp2.Value := 1.7;
PID2_Kp.Value := -6.76;
PID2_Ki.Value := -0.0648;
PID2_Kd.Value := 0;
PID2_Output_Nominal.Value := 50;
PID2_MaxOutput.Value := 100;
PID2_MinOutput.Value := 0;
PID2_First_Time.Value := True;
PID2_Int_Improvement.Value := False;
PID2_Diff_Improvement.Value := False;
Pid2_Prev_Abs_Error.Value := 0;
PID2_Integrated.Value :=0;
state_reg1.Value := True;
state_reg2.Value := True;
end.
Додамо скрипт PIDCount, що виконується кожну секунду виконання проекта .
Збережемо проект та відкриємо його в клієнті. Результат виконання показан на рисунку 5.2.
Рисунок 5.2 - Екранна форма виконання в клієнті після зменшення завдання першого регулятора і повертання його на попереднє значення.
5.3 Підготовка зображень
Для реалізації ЛМІ необхідно підготовити наступні зображення:
1) Зображення стрілки для індикатора ПС
2) Зображення сигналізатора помилки
3) Зображення технологічної схеми для екрана II рівня
4) Зображення схеми з вказування контурів керування для екрана III рівня.
Приклад зображення стрілки показано на рис. 5.3.
Рисунок 5.3 - Приклад зображення стрілки в індикаторі ПС (називається arrow2.png)
Приклад зображення сигналізатора, що складається з двох кадрів, показано на рис. 5.4.
Рисунок 5.4 - Приклад зображення сигналізатора (називається indicator4.png)
Приклад зображення технологічної схеми для екрана II рівня показаний на рис. 5.5
Рисунок 5.5 - Зображення технологічної схеми для екрана II рівня (файл 1111.png)
5.4 Розробка екрана I рівня
Зона 1 - Показники виробництва. Підпишимо першу зону текстовим написом «ОСНОВНІ ПОКАЗНИКИ ВИРОБНИЦТВА», також добавимо в неї підписи «ЗМІНА», «ГОДИНА», та підписи назв ПС. Розглянемо задачу відображення індикатора TC на прикладі реалізації індикатора кількості Витрати газу в ПТП піч для спалення відходів. Для розуміння спростимо її - будемо відображати не середнє значення за період, а поточне значення.
Додамо поле приблизно розміром 136х56. Назвемо його kpi_steam_h. Встановимо колір шрифта - синій, колір рамки - чорний. Розмір шрифта зменшимо, щоб залишилось місце для шкали, орієнтовно до 24 px.
Додамо шкалу. Назвемо її kpi_steam_h_scale. Зробимо положення вертикальним. Знімимо підписи. Поставимо кількість міток - 9. Поставимо шкалу внизу поля.
Додамо зображення та поставимо текстуру - arrow2. Назвемо зображення kpi_steam_h_arrow. Змасштабуємо зображення та поставимо в центр знизу поля. Для точності будемо використовувати властивості X та Y.
Додамо зелену лінію товщиною 4px kpi_steam_h_line та розмістимо її по середині шкали над стрілкою. Індикатор, що додано, має бути аналогічним тому, що зображено на рис. 5.8.
Рисунок 5.8 - Еталонне зображення індикатора ПС
Розробка та відображення інших індикаторів ПС виконується аналогічно.
Зона 2 - Сигналізатори параметрів.
Встановимо сигналізатори Витрати, газу, повітря, Температури в І зоні, Конценрация О2 в воді за допомогою інструмента «фігура» (TM_Shape). Надамо їм наступні імена - lamp_steam, lamp_water, lamp_feed, lamp_temp, lamp_pres. Товщина межі для всіх фігур - 2, колір межі - чорний. Встановимо сигналізатори помилки справа від кожної лінії як зображення з текстурою indicator4: ind1_main, ind1_feed, ind1_conc. Таким чином, частина форми має мати вигляд, аналогічний до рис. 5.10
Рисунок 5.10 - Зона сигналізатора параметрів в редакторі
Додамо скрипт lampUpdate, що виконується кожну секунду виконання проекта:
procedure indicateLamp (lamp:TM_SHAPE; stateVar:TM_VARIABLE; curVariable:TM_VARIABLE; errorValue:Real; alarmErrorValue:Real;
warningErrorValue:Real; deadZoneValue:Real; alarmMessage:String; warningMessage:String;
normMessage:String);
var
state_before:Integer;
state_after:Integer;
greyColor: Cardinal;
begin
greyColor := RGB(224,224,218);
if curVariable.IsGoodQuality then begin
state_before:=stateVar.Value;
if alarmErrorValue<=errorValue then begin
stateVar.Value:=2;
end
else begin
if errorValue < (alarmErrorValue-deadZoneValue) then begin
if errorValue>(warningErrorValue+deadZoneValue) then begin
stateVar.Value:=1;
end
else begin
stateVar.Value:=0;
end
end;
end;
state_after := stateVar.Value;
if stateVar.Value=1 then begin
lamp.Color:=clYellow;
end;
if stateVar.Value=2 then begin
lamp.Color:=clRed;
end;
if stateVar.Value=0 then begin
lamp.Color:=greyColor;
end;
if (state_after<>state_before) then begin
if stateVar.Value=1 then begin
counter_warnings.Value := counter_warnings.Value + 1;
AddMessage(Now,mkWarning,warningMessage+ ' (VAR='+curVariable.Value+')',True,True);
end;
if stateVar.Value=2 then begin
counter_alarms.Value := counter_alarms.Value + 1;
AddMessage(Now,mkAlarm,alarmMessage+ ' (VAR='+curVariable.Value +')',True,True);
end;
if stateVar.Value=0 then begin
AddMessage(Now,mkMessage, normMessage + ' (VAR='+curVariable.Value + ')',
True,True);
end;
end;
end;
end;
begin
indicateLamp (lamp_reflux, state_reflux, var_u1, Abs(var_u1.Value-300), 300*0.5, 300*0.3, 300*0.05,
'Витрата газу аварійна!','Витрата газу вийшла за межі регламенту!',
'Витрата газу в нормі');
indicateLamp (lamp_steam, state_steam, var_u2, Abs(var_u2.Value-175), 175*0.5, 175*0.3, 175*0.05,
'Витрата повітря аварійна!','Витрата повітря вийшла за межі регламенту!',
'Витрата повітря в нормі');
indicateLamp (lamp_feed, state_feed, var_feed, Abs(var_feed.Value-600), 600*0.5, 600*0.3, 600*0.05,
'Витрата живлення аварійна!','Витрата живлення вийшла за межі регламенту!',
'Витрата живлення в нормі');
indicateLamp (lamp_ctop, state_ctop, var_y1, Abs(var_y1.Value-1250), 100, 50, 10,
'Температура аварійна!',' Темперература вийшла за межі регламенту!',
'Температура в нормі');
indicateLamp (lamp_cbtm, state_cbtm, var_y2, Abs(var_y2.Value-3), 1, 0.5, 0.05,
'Концентрация в воді аварійна!','Концентрация в воді вийшла за межі регламенту!',
'Концентрация в воді в нормі');
if (state_reflux.Value = 1) or (state_steam.Value = 1) then begin
ind1_main.Visible:=True;
ind1_main.Frame:=2;
end;
if (state_reflux.Value = 2) or (state_steam.Value = 2) then begin
ind1_main.Visible:=True;
ind1_main.Frame:=1;
end;
if (state_reflux.Value = 0) and (state_steam.Value = 0) then begin
ind1_main.Visible:=False;
end;
if (state_feed.Value = 1) then begin
ind1_feed.Visible:=True;
ind1_feed.Frame:=2;
end;
if (state_feed.Value = 2) then begin
ind1_feed.Visible:=True;
ind1_feed.Frame:=1;
end;
if (state_feed.Value = 0) then begin
ind1_feed.Visible:=False;
end;
if (state_ctop.Value = 1) or (state_cbtm.Value = 1) then begin
ind1_conc.Visible:=True;
ind1_conc.Frame:=2;
end;
if (state_ctop.Value = 2) or (state_cbtm.Value = 2) then begin
ind1_conc.Visible:=True;
ind1_conc.Frame:=1;
end;
if (state_ctop.Value = 0) and (state_cbtm.Value = 0) then begin
ind1_conc.Visible:=False;
end;
if state_reg1.Value = False then begin
lamp_ac101.Color := clSkyBlue;
end
else begin
lamp_ac101.Color:=RGB(224,224,218);
end;
if state_reg2.Value = False then begin
lamp_ac102.Color := clSkyBlue;
end
else begin
lamp_ac102.Color:=RGB(224,224,218);
end;
end.
Зона 3 - Сигналізатор стану регуляторів.
Обмежимось лише сигналізацією стану роботи регуляторів. Якщо регулятор в ручному режимі, то використовується голубий колір для індикації. Додамо сигналізатори lamp_ac101 та lamp_ac102.
В скрипт lampUpdate додамо в кінець наступний код :
if state_reg1.Value = False then begin
lamp_ac101.Color := clSkyBlue;
end
else begin
lamp_ac101.Color:=RGB(224,224,218);
end;
if state_reg2.Value = False then begin
lamp_ac102.Color := clSkyBlue;
end
else begin
lamp_ac102.Color:=RGB(224,224,218);
end;
end.
Зона 4 - Статистика технологічних ситуацій.
Як і для зони 1 приймемо спрощення - будемо відображати лише поточний стані змінних. Тоді необхідно додати 4 поля і підписати їх текстовими надписами. Поля зв'язуються зі змінними counter_alarms (лічильний аварійних повідомлень) та counter_warnings (лічильник передаварійних повідомлень).
Зона 5 - Зона показу тренду енергоефективності.
Тренд необхідно зв'язати зі змінною efficiency. Оформлення зони має бути відповідно до рис. 5.12. Тобто необхідно задіяти три елемента - тренд, поле (зверху) і текстове поле (в якому просто пишеться час тренда). Для спрощення задачі перемикання часу реалізовувати не будемо, оскільки в Simple SCADA воно доволі складно вирішується. Крім того, значення ефективності будемо нормувати до 100, оскільки Simple SCADA некоректно масштабує нецілі значення.
Рисунок 5.12 - Приклад оформлення нижньої частини екрана
Розрахунок ефективності реалізуємо в скрипті countEfficiency, що буде складатись з однієї строки в розглянутому випадку.
begin
efficiency.Value := 100 * (-2.523 * (var_u1.Value/var_y1.Value) + 0.52) ;
end.
Приклад роботи екрана першого рівня показано на рисунку 5.13.
Рисунок 5.13 - Виконання екрана 1 рівня в клієнті
5.5 Розробка екрана II рівня
Екран другого рівня реалізується простіше.
Додамо зображення з текстурою dc_level2 й зробимо необхідні підписи. Також додамо індикатори поряд з кожним параметром й назвемо їх відповідно ind2_feed, ind2_steam, ind2_water, ind2_temp, ind2_pres. Тренди прив'яжимо до змінних var_y1_normed, var_y2_normed з діапазонами temp_scale та pres_scale. Таким чином, екранна форма буде наступний вигляд:
Рисунок 5.14 - Екран II рівня в редакторі
Скрипт, що виконується кожну секунду, level2 має реалізовувати 2 задачі: нормування значень для трендів та показ індикаторів, якщо спрацьовують відповідні сигналізації на екрані I рівня.
Подобные документы
Вибір первинних вимірювальних перетворювачів та виконавчих механізмів, мікропроцесорних засобів автоматизації. Розробка блок-схеми системи автоматичного керування, програми функціонування вибраних засобів, принципових електричних схем зовнішніх з’єднань.
курсовая работа [176,5 K], добавлен 08.03.2015Розробка SCADA/HMI – проекту для моніторингу і управління процесом випікання хлібу пшеничного І ґатунку. Опис змінних програмуємого логічного контролера (ПЛК) і технологічних параметрів у загальному вигляді. Основні (глобальні) настройки програми.
курсовая работа [4,1 M], добавлен 10.01.2015Общие понятия о системах сбора данных и оперативного диспетчерского управления (SCADA), история их возникновения и развития. Устройства связи для сбора технологических параметров, создание человеко-машинного интерфейса. Аппаратные средства SCADA-систем.
контрольная работа [2,4 M], добавлен 28.03.2013Створення проекту та розробка SCADA у Vijeo Citect. Використання хронологічного подієвого списку (CEL) для відображення журналу подій або щоденнику операцій. Визначення драйверу та опис конфігурації змінних для визначення внутрішніх змінних ZenOn.
курсовая работа [3,2 M], добавлен 19.08.2012Определение и общая структура Scada. Структура системы Trace mode. Административный уровень системы. Средство блокирования троянских программ. Способы защиты Scada-системы. Разработка средств обнаружения и выполнения автоматического карантина файлов.
курсовая работа [1,2 M], добавлен 10.04.2017Загальний опис автоматизованих систем управління технологічними процесами. SCADA – система, переваги та недоліки, а також умови та можливості її використання. Наявні засоби мережевої підтримки. Принципи побудови SCADA на базі ПК та контролера Twido.
курсовая работа [4,1 M], добавлен 22.01.2015Формування валютних операцій. Організація проведення контролю та аналізу валютних операцій. Характеристика автоматизованих систем валютних операцій. Обґрунтування вибору середовища розробки. Розробка програмного модуля. Реалізація інтерфейсу користувача.
курсовая работа [1,1 M], добавлен 03.06.2012SCADA (Supervisory Control And Date Acquisition) – диспетчерское управление и сбор данных. Формирование удобного человеко-машинного интерфейса. Разработка проекта WinCC: среда проектирования, конфигурирование. Пример отображения информации на экране.
презентация [1023,1 K], добавлен 10.02.2014Створення інформаційної бази даних з нормативно-технологічних показників подання матеріальних, інформаційних процесів і об'єктів виробничої системи. Алгоритм організації транспортного обслуговування змінного завдання, мінімальні відхилення від термінів.
курсовая работа [833,9 K], добавлен 28.12.2014Особливості роботи ресторану та необхідність автоматизації процесів документообігу. Вимоги до продукту, вид інтерфейсу для користувача, додаткові функції при роботі з базою даних та веденням обліку. Вибір операційної системи та її основних компонентів.
курсовая работа [310,6 K], добавлен 18.09.2012