Технійчний процесс: рафінаційна-екстракційна колона

Правила аналізу базових схем автоматизації промислових технологічних процесів. Процедура розробки системи автоматичного керування промислових технологічних процесів. Розробка та реалізація людино-машинного інтерфейсу в 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.2012

  • SCADA (Supervisory Control And Date Acquisition) – диспетчерское управление и сбор данных. Формирование удобного человеко-машинного интерфейса. Разработка проекта WinCC: среда проектирования, конфигурирование. Пример отображения информации на экране.

    презентация [1023,1 K], добавлен 10.02.2014

  • Створення інформаційної бази даних з нормативно-технологічних показників подання матеріальних, інформаційних процесів і об'єктів виробничої системи. Алгоритм організації транспортного обслуговування змінного завдання, мінімальні відхилення від термінів.

    курсовая работа [833,9 K], добавлен 28.12.2014

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

    курсовая работа [310,6 K], добавлен 18.09.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.