Создание проекта с использованием программы GeniDAQ и контроллеров серии АДАМ-4000

Загрузить архив:
Файл: ref-14553.zip (82kb [zip], Скачиваний: 111) скачать

Министерство образования РТ

Альметьевский нефтяной институт

Кафедра АИТ

Лабораторная работа

«СОЗДАНИЕ ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ ПРОГРАММЫ GeniDAQ И КОНТРОЛЛЕРОВ СЕРИИ АДАМ-4000»

                                                     Выполнили: студенты гр. 38-61

                                                                  Хакимов Р.К.

                                                                   Кузьмина О.И.

                                                                

                                          Проверил: преподаватель

                                                                   Тугашова Л. Г.

Альметьевск 2003

Для создания АСУ ТП НПС использовалась SCADA-система на базе программы GeniDAQ и модульные контроллеры серии ADAM 4000.

Объём автоматизации колонны ректификации:

1.Измерение, индикация и регулирование уровня смеси в колонне;

2.Измерение притока нефти на входе в колонну;

3.Измерение притока смеси на рибойлер;

4.Сигнализация и сигнализация предельного уровня смеси.

5.Измерение температуры рибойлера, пара и кубовой жидкости.

При создании АСУ ТП, ввиду отсутствия реальных технологических объектов и процессов, использовались их математические модели.

Проект АСУ ТП под оболочкой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) - для выведения на экран надписей и обозначений;

   Indicator - в данном случае используется для отображения сигнализации.

Realtime Trend Graph ( блок построения графиков в реальном времени)- данный блок позволяет наблюдать за изменением во времени сразу нескольких величин.


Структураокна Task Designer (TASK1).

Структураокна Display Designer (DISP1).


Описаниескриптов:

Sub SCR1()

         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 then k=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