Реферат: Создание проекта с использованием программы GeniDAQ и контроллеров серии АДАМ-4000
Министерство образования РТ
Альметьевский нефтянойинститут
Кафедра АИТ
<span Times New Roman",«serif»">Лабораторнаяработа«СОЗДАНИЕПРОЕКТА С ИСПОЛЬЗОВАНИЕМ ПРОГРАММЫ GeniDAQ И КОНТРОЛЛЕРОВ СЕРИИ АДАМ-4000»
Выполнили: студенты гр. 38-61
Хакимов Р.К.
Кузьмина О.И.
Проверил:преподаватель
Тугашова Л. Г.
<span Times New Roman",«serif»">Альметьевск 2003Для создания АСУ ТП НПСиспользовалась SCADA-система на базе программы GeniDAQ и модульные контроллерысерии ADAM 4000.
Объём автоматизации колонны ректификации:
1.<span Times New Roman"">
Измерение, индикация ирегулирование уровня смеси в колонне;2.<span Times New Roman"">
Измерение притока нефти навходе в колонну;3.<span Times New Roman"">
Измерение притока смеси нарибойлер;4.<span Times New Roman"">
Сигнализация и сигнализацияпредельного уровня смеси.5.<span Times New Roman"">
Измерение температурырибойлера, пара и кубовой жидкости.При создании АСУ ТП,ввиду отсутствия реальных технологических объектов и процессов, использовалисьих математические модели.
Проект АСУ ТП подоболочкой SCADA-сиcтемы GeniDAQ представляетсобой программно оформленный алгоритм работы системы, разбитый на два видаокона: TASK и DISPLAY. В окнах TASK задаётся собственно алгоритм функционированияАСУ ТП с помощью готовых программных блоков (объектов программной среды),объединяемых в единую систему посредством линий связи.
В окнах DISPLAY создаётсярабочий интерфейс оператора АСУ ТП, также посредством готовых элементов.
TASK1 разработчикзадач(Task Designer).
В данном окне используютсяследующие блоки:
Basic Script (SCR#) — блок встроенного средства программирования;
Tag (Tag*) — блок-контейнер переменной типа Tag, используется для передачизначения переменной между окнами TASK, DISPLAY;
Блок SCR1служит дляформирования текущего значения расхода жидкости на входе в колонну и регулирующего воздействия, Значениерасхода выводится в окне DISPLAY1 в блоке NumericString.
Блок SCR2: здесь формируютсязначения тепературы жидкости на входе колонны, значение тепературы рибойлера ирасхода кубовой жидкости, индикация текущего уровня жидкости в кубовой секции,его сигнализация при аварийной ситуации, расход газа и кубовой жидкости, тепература кубовойжидкости, а также качество смеси. Индикация выводится в окнах DISPLAY1 в блоке NumericString.
Блок SCR3предназначен для формирования значения тепературы пара и кубовойжидкости на выходе колонны, значение расхода пара, индикация текущего расходапара и тепературы жидкости в кубовой секции. Индикация выводится в окнах DISPLAY1 в блоке NumericString
DISP1 разработчик экрана (DisplayDesigner).
В данных окнахиспользуются блоки:
NumericControl — блок числового ввода, данныеблоки используются для задания величин технологических параметров.
Numeric String — блок вывода числовых значений, служит для отображения текущих значенийвеличин: расхода нефти, температуры, уровня в ёмкости.
ABC (Text String) — для выведения на экран надписей и обозначений;
<span Times New Roman",«serif»"> Indicator -<span Times New Roman",«serif»">в данном случае используется дляотображения сигнализации.Realtime Trend Graph( блок построения графиков в реальном времени) — данный блок позволяет наблюдать заизменением во времени сразу нескольких величин.
<img src="/cache/referats/14277/image002.jpg" v:shapes="_x0000_s1030">
СтруктураокнаTask Designer (TASK1).
СтруктураокнаDisplay Designer (DISP1).
<img src="/cache/referats/14277/image004.jpg" v:shapes="_x0000_s1031">
Описаниескриптов:
SubSCR1()
F=GetTag(«Task1»,«AI1»)
Xp=GetTag(«Task1»,«PID1»)
F1=F+Xp/10
Outputf 0, F1
End Sub
public L, Qpr0, Sum
Sub SCR2()
T1=GetTag(«Task1»,«AI2»)
F1=GetTag(«virtask»,«F1»)
Ffleg=GetTag(«Disp1»,«NCTL5»)
Tfleg=GetTag(«Disp1»,«NCTL6»)
Trib=GetTag(«virtask»,«TRIB»)
Fkb=GetTag(«Task1»,«PID2»)
Fg=0.553*F1
Qpr=F1-Fg+Fkb/4
dQpr=Qpr-Qpr0
Qpr0=Qpr
Sum=Sum+dQpr
L=L+0.08*Sum
P105=0.985+0.183*Fg
Tkb=0.31*Trib+0.28*T1*0.43*F1
P29=0.156*Tkb
if l>=3 thenk=1 else k=0
Outputf 0, L
Outputf 1, Fg
Outputf 2, -Fkb
Outputf 3, Tkb
Outputf 5, P105
End Sub
Sub SCR3()
Fpar=GetTag(«Disp1»,«NCTL3»)
Tpar=GetTag(«Disp1»,«NCTL4»)
Tkb=GetTag(«virtask»,«TKB»)
Xp=GetTag(«Task1»,«PID4»)
Fpar1=Fpar+Xp
Trib=0.54*Tpar*0.4*Fpar1-0.21*Tkb
Outputf 0,Fpar1
Outputf 1, Trib
End Sub