Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРСОВОЙ ГОФМАН.doc
Скачиваний:
45
Добавлен:
04.06.2015
Размер:
4.3 Mб
Скачать

3.5.3 Описание рабочей программы в среде GenieDaq

ПК Объект№1

ПК Объект№2

ПК Объект№3

ПК Объект№4

Рисунок 14 – Схема задач рабочей программы в среде GenieDAQ

genie программа сбор данное

Реализация рабочей программы в среде GenieDAQ полностью аналогична реализации ее в среде Genie, за исключением механизма приема и передачи данных между объектами, в среде GenieDAQ используется современный протокол передачи данных TCP/IP и отсутствуют блоки NETOUT, так как нет необходимости указывать объект пересылки,

поскольку изначально все значения тэгов стратегии доступны для передачи по сети, а для получения конкретного значения удаленного объекта (тэга) служит блок NETIN.

3.6 Описание программы – модели

ПК Объект№1

ПК Объект№2

ПК Объект№3

ПК Объект№4

Рисунок 15 – Схема задач программы-модели в среде Genie

В стратегии-модели ввод значений аналоговых и дискретных параметров объектов осуществляется, через элементы форм интерфейсов оператора (инкрементные регуляторы – для ввода значений параметров, кнопки с двумя состояниями – для моделирования дискретных выходных сигналов объектов).

Передача сигналов производится с помощью механизма динамического обмена данными DDE, реализованного в программной среде Genie при помощи соответствующих блоков DDES – сервер и DDEC – клиент.

Работа Basic-сценариев осуществляется с учетом режима моделирования.

Рисунок 16 – Задача 1

В данной задаче выполняется передача дискретного сигнала x1.1 с объекта №1, эмулируемого посредством нажатия кнопки BBTN4 на объекте №1. Передача сигнала производится с помощью механизма динамического обмена данными DDE.

Рисунок 17 – Задача 2

В данной задаче выполняется передача дискретных сигналов х2.1, х2.2,

х3.2 с объекта №2 на дискретные входы объекта №2 и прием дискретного сигнала х1.1 с объекта №1 на один из дискретных входов объекта №2. Передача реализована с помощью DDE механизма.

Рисунок 18 – Задача 3

В данной задаче производится Аналоговое ПИД регулирование соотношения двух параметров х3.1ан и х3.2ан объекта №3.

Задание

К

Рисунок 19 –Cхема ПИД–регулирования соотношения

Задание параметра х3.1ан производится при помощи ручки регулятора и поступает в бейсик сценарий SCR2, откуда направляется в ПИД – регулятор PID1 на вход «Задание». Выход с ПИД – регулятора PID1

считывается в бейсик сценарии SCR3, откуда направляется на вход «обратная связь» ПИД – регулятора PID1. Сигнал с выхода AO1 умножается на коэффициент, который задается при помощи ручки регулятора вручную, после этого поступает на вход «Задание» ПИД – регулятора PID2. Выход с ПИД – регулятора PID2 считывается в бейсик сценарии SCR6 и поступает на вход «Обратная связь» ПИД – регулятора PID2.

Листинг basic-сценария SCR3 модели стратегии ПК объекта №3 (TASK3)

Public stopped as integer

Public manual as integer

Sub SCR3()

Set pid_reg1 = GetTag("TASK3","PID1") 'vixod PID x3.1

Set koef1 = GetTag("DISP3", "SPIN4") 'pomexa na vixode PID1

if stopped = 0 then // Проверка условия остановки задачи

outputf pid_reg1+koef1 // Выход =сигнал+помеха

else //Если получен сигнал остановки, то

stop //Остановка выполнения сценария

end if

End Sub

Данный сценарий используется для получения сигнала с выхода PID1 и добавления к нему помехи, для проверки качества регулирования.

Листинг basic-сценария SCR2 модели стратегии ПК объекта №3 (TASK3)

Public stopped as integer

Public spd as integer

Sub SCR2()

set a = gettag("disp3","SPIN1") 'zadat4ik x3.1

set b = gettag("disp3","nctl1") 'koef P

set c = gettag("disp3","nctl2") 'koef D

set d = gettag("disp3","nctl3") 'koef E

if stopped = 0 then

outputf a

outputf 1,b

outputf 2,c

outputi 3,d

end if

End Sub

Данный сценарий используется для получения всех необходимых параметров для блока PID1: Задание, коэффициенты P, I, D, задаваемые при помощи регуляторов на соответствующей экранной форме.

Листинг basic-сценария SCR5 модели стратегии ПК объекта №3 (TASK3)

Public stopped as integer

Public manual as integer

Sub SCR5()

set a = gettag("task3","AO1")

set b = gettag("disp3","nctl4")

set c = gettag("disp3","nctl5")

set d = gettag("disp3","nctl6")

set f = gettag("DISP3","SPIN1")

set g = gettag("DISP3","SPIN6")

Set koef = GetTag("DISP3", "SPIN2")

if stopped = 0 then

outputf a*koef

outputf 1,b

outputf 2,c

outputi 3,d

end if

if manual = 0 then

outputf 5, f*koef

else

outputf 5, g*koef

end if

End Sub

Этот бейсик сценарий, используется для получения необходимых сигналов для PID – регулятора PID2, а также для остановки обработки данных.

Листинг basic-сценария SCR6 модели стратегии ПК объекта №3 (TASK3)

Public stopped as integer

Public manual as integer

Sub SCR6()

Set koef2 = GetTag("DISP3", "SPIN5") 'Pomexa na vixode PID2

Set x3_1 = GetTag("DISP3", "SPIN1") 'zadat4uk x3.1

Set x3_2_max = GetTag("DISP3", "SPIN3") 'maximum x3.2

Set pid_reg2 = GetTag("TASK3","PID2") 'vixod PID x3.2

Set pid_reg1 = GetTag("DISP3","SPIN6") 'zadat4ik X3.1

Set koef = GetTag("DISP3", "SPIN2") 'koefficient K

if stopped = 0 then

outputf 0, pid_reg2+koef2

else

stop

end if

End Sub

Данный бейсик сценарий содержит все необходимое для получения сигнала с выхода PID – регулятора PID2, добавления к нему помехи, для проверки качества регулирования, а также для остановки выполнения обработки данных.

Для проверки условия активизации ручного управления используется бейсик сценарий SCR4:

Public stopped as integer

Public manual as integer

Sub SCR4()

dim do_5 as Tag

Set do_5 = GetTag("TASK3","DO5") 'stop? task3

Set a_m = GetTag("DISP3","CBTN1") 'manual or auto?

if do_5 = 1 then

stopped = 1

else

stopped =0

end if

if a_m = 1 then

manual = 1

else

manual =0

end if

End Sub

Бейсик сценарии SCR7 и SCR8 используются для включения ручного, либо автоматического управления, в зависимости от значения переменной manual, определяемой в бейсик сценарии SCR4.

Листинг basic-сценария SCR7 модели стратегии ПК объекта №3 (TASK3)

Public manual as integer

Sub SCR7()

Set pid_reg1 = GetTag("VIRTASK","VT1") 'vixod PID x3.1

Set pid1_manual = GetTag("DISP3", "SPIN6") 'ry4noe ypravlenie

if manual=0 then 'manual or auto?

outputf pid_reg1

else

outputf pid1_manual

end if

End Sub

Листинг basic-сценария SCR8 модели стратегии ПК объекта №3 (TASK3)

Public manual as integer

Sub SCR8()

Set pid_reg2 = GetTag("VIRTASK","VT2") 'vixod PID x3.2

Set koef = GetTag("DISP3", "SPIN2") 'koefficient K

Set pid_reg1 = GetTag("DISP3","SPIN6") 'zadat4ik X3.1

if manual = 0 then 'manual or auto?

outputf pid_reg2

else

outputf pid_reg1*koef

end if

End Sub