Автоматизация бойлерной установки

46383
знака
0
таблиц
11
изображений

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

«АВТОМАТИЗАЦИЯ БОЙЛЕРНОЙ УСТАНОВКИ»

Цель: изучить принципы построения систем двухпозиционного регулирования технологических объектов с помощью SCADA-системы GENIE.

1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ.

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


Алгоритм непропорционального (двухпозиционного) регулирования состоит в том, что исполнительный механизм переводится системой управления в одно из двух состояний (включен или включен) в зависимости от соотношения между измеряемым значением сигнала обратной связи, уставкой и порогами включения/выключения. Системы двухпозиционного регулирования имеют ряд преимуществ перед системами регулирования, осуществляющими сложные законы управления (ПИ - ,ПИД - закон) - дешевизна и простота аппаратного оформления, удобство в эксплуатации. При использовании систем двухпозиционного регулирования гораздо проще расчет математических моделей регуляторов.


В то же время системы двухпозиционного регулирования имеют ряд существенных недостатков, резко ограничивающих круг их применения. Прежде всего, плохое качество регулирования технологических процессов сравнительно с более сложными регуляторами (в системе неизбежно возникают автоколебания), с их помощью невозможно реализовать сложные законы управления, учитывающие динамические характеристики объекта управления. Кроме того, применение систем двухпозиционного регулирования для управления быстропротекающими технологическими процессами приводит к преждевременному износу приводов регулирующих органов и коммутационной аппаратуры. Поэтому системы двухпозиционного регулирования чаще всего используют для управления простыми технологическими агрегатами,  предъявляющими  невысокие требования к качеству управления. Например, для регулирования температуры печах или котлах с электронагревательными элементами или уровня в ёмкостях и резервуарах.

2 ПОСТАНОВКА ЗАДАЧИ

В данной лабораторной работе следует разработать программу автоматического контроля и управления бойлерной установкой. Структурная схема автоматизации бойлера   представлена на рисунке 1. Значения температуры давления и расхода определяются датчиками с унифицированным выходным сигналом 0...5 мА — Метран 200Т. Сапфир-22ДИ    и акустический уровнемер. Далее, сигналы через преобразователь ток-напряжение РСLD 8115 (где сигналы 0.. 5 мА преобразуются в сигналы 0... 5В) поступают на вход модуля  PCL-818H и с помощью программных блоков аналогового ввода, имеющихся в системе GENIE, вводятся в память компьютера. В системе предусмотрен контроль верхнего и нижнего уровня воды в баке с помощью электродов, для предотвращения аварийных ситуаций. При повышении (понижении) уровня вода замыкается (размыкается) цепь: «плюс» блока питания ® катушка промежуточного реле ® электрод ® «Земля». Реле срабатывает и через нормально открытые (нормально закрытые контакты) напряжение 5В поступает на дискретные входы платы PCL-818H. Далее сигнал «верхний уровень» («нижний уровень») с помощью блоков дискретного ввода вводится в память ЭВМ. В случае поступления напряжения на дискретные входы PCL-818H система должна включить аварийную сигнализацию, вывести предупреждение на экран ЭВМ и отключить нагреватели. Управление температурой в бойлере осуществляется следующим образом. При и повышении (понижении) температуры выше (ниже) заданной SCADA-система вырабатывает управляющее воздействие и на дискретном выходе платы PCL-818H появляется напряжение, в результате чего срабатывает промежуточное реле, управляющее контактором, который в свою очередь, подает напряжение на нагреватели. Для улучшения качества регулирования,   уменьшения   износа пускорегулирующей   аппаратуры предусмотрено последовательное включение нагревателей (в специальной литературе такие системы называют «системы с неполным притоком/оттоком энергии»). При небольшом различии между реальным и заданным значением температуры включается один нагреватель, при большом различии между реальным и заданным значением температуры включаются два нагревателя. Данные о состоянии объекта управления обрабатываются SCADA-системой GENIE и отображаются на дисплее компьютера с помощью набора экранных форм редактора форм отображения (элементов отображения «стрелочный индикатор», «цифровой индикатор», «индикатор» и «просмотр данных архива»).


Структурная схема программы автоматического управления бойлерной установкой с использованием блока двухпозиционного регулирования (ONF) на рисунке 2. Согласно данной схеме, информация с датчика температуры вводится в систему GENIE с помощью блока аналогового ввода (AIl), фильтруется в блоке усреднения (AVG1) и поступает в блок двухпозиционного регулирования ONF1 (по каналу «вход»); информация с датчика давления вводится в систему GENIE с помощью блока аналогового ввода (AI2) и фильтруется в блоке усреднения (AVG2); информация с расходомера вводится в систему GENIE с помощью блока аналогового ввода (AI3) и фильтруется в блоке усреднения (AVG3). В программе предусмотрена блокировка входа и выхода данных при получении сигнала с электродов уровня (через блок дискретного ввода): выводится предупреждение на экран ЭВМ, стрелки индикаторов уходят на ноль и отключаются нагреватели. Для этого в программе используются блоки вычисления с одним оператором (SOC), которые в определенной степени играют роль логических элементов «И». При высоком уровне сигнала на входе разрешения, поступающим с блока PRG2 (логическая единица) на выходе блока вычисления с одним оператором (SOC) появляется сигнал с блока аналогового ввода. При низком уровне сигнала на входе разрешения, поступающим с блока PRG2 (логический ноль) на выходе блока вычисления с одним оператором (SOC) появляется нулевой сигнал.
К сожалению, программа-имитатор Advantech demo не имитирует сигналы дискретного ввода, поэтому мы будем вынуждены в редакторе задач написать небольшую подпрограмму, выполняющую эту функцию. Для этого мы будем использовать блок вычисления с одним оператором (SOC), блок PRG2 и блоки ТЭГ, которые будут передавать информацию с элементов управления «кнопка с двумя состояниями» в блок PRG2. Нажимая кнопки, мы будем имитировать сигнал «нижний уровень воды» («верхний уровень воды»).


SCADA-система GENIE позволяет организовать автоматическое двухпозиционное управление работой технологического объекта. Регулирующее воздействие, в данной лабораторной работе, вырабатывается с помощью блока двухпозиционного регулирования (ONF), который сравнивает значения, полученные с датчика, со значением уставки и вырабатывает соответствующее управляющее воздействие (на его выходе появляются 0 или 1), подаваемое на блок дискретного вывода DO1, который непосредственно управляет дискретным выходом платы PCL-818H. Значение уставки, вводимое в блок двухпозиционного регулирования, может быть фиксированным или динамически изменяемым сигналом от другого функционального блока стратегии. В данной лабораторной работе предусмотрен динамический ввод уставки с помощью элементов управления «движковый регулятор» и «инкрементный (цифровой) регулятор», расположенных в редакторе форм отображения, а также сопоставленных им блоков ТЭГ и блока вычисления с одним оператором, суммирующим значения с двух регуляторов.
Блок процедуры пользователя (USER PROG), собственно выполняет функции блока двухпозиционного регулирования. В зависимости от значения уставки и сигнала с датчика (т. е. с блока усреднения), он управляет состоянием блока DO2 (т. е. включает 2-ой нагреватель, если значение уставки намного больше, чем температура в бойлере или выключает 2-ой нагреватель, если разница между этими значениями невелика).

Исходные данные:
- Диапазон изменения температуры воды 0... 95 °С
- Диапазон изменения давления в бойлере О ... Зкгс/см2
- Диапазон изменения расхода горячей вода 0... 2 м3/ч
- Диапазон изменения выходного сигнала датчика Метран 200Т 0... 5мА
- Диапазон изменения выходного сигнала датчика Сапфир-22ДИ 0.. 5 мА.
- Диапазон изменения выходного сигнала расходомера 0... 5 мА.
- Диапазон изменения выходного сигнала преобразователя PCLD-8115: 0... 5 В

 

3 ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

3.1 Изучить методические указания к данной лабораторной работе.

3.2 После запуска GENIE создать файл под именем БОЙЛЕР. GNI.

3.3 С помощью команды меню Редактора задач Настройка/Устройства установить в системе необходимые устройства, в вашем случае PCL-818H.

3.4 С помощью команды меню Редактора задач Настройка/Параметры задачи задать время сканирования задачи (50... 400 мс).

3.5 В редакторе задач установить и настроить блоки аналогового ввода AI1 (для ввода значения температуры; масштабирование блока -5... 5, 0... 100), AI2 (для ввода значения давления, масштабирование блока -5.. .5, 0.. .3), AI3 (для ввода значения расхода; масштабирование блока -5... 5, 0... 2).
3.6 Поскольку в нашей программе предусмотрена блокировка системы при поступлении аварийного сигнала с электродов уровня, между блоками аналогового ввода и блоками усреднения (сигнал с которых используется на последующих этапах исполнения программы ) мы установим блоки вычисления с одним оператором, которые будут играть роль логического элемента «И». В поле «тип результата» данных блоков выбираем «действительное», к входу «1-ый операнд» блоков вычисления с одним оператором подключаем блоки AI1-AI3.

3.7 После ввода информации следует произвести фильтрацию сигналов с датчиков с целью ослабления помех. Для этого используем программный «фильтр скользящего среднего», который можно реализовать с помощью блока усреднения AVG. Выбрав в качестве метода усреднения «скользящее среднее», следует задать количество точек для усреднения (обычно количество точек для усреднения не превышает 8-9).

3.8 После того как информация с датчиков введена в систему, следует отобразить данные на дисплее. Для этого в редакторе форм отображений DISP1 установить и настроить стрелочные и цифровые индикаторы для отображения информации  с  блоков  AVGl ( «температура»),  АVG2 («давление»)  и SOСЗ («расход»). Стрелочный индикатор METER1, сопоставленный блоку AVG1 имеет шкалу 0 - 100 и 3 сегмента, стрелочный индикатор METER2, сопоставленный блоку AVG2 имеет шкалу 0-3 и 2 сегмента, стрелочный индикатор METER3, сопоставленный блоку SOC3 имеет шкалу 0-2 и 1 сегмент.
Для вывода на экран предупреждений об аварийных ситуациях используйте элемент отображения «поле вывода текста по условию». Настройку данного элемента произведем позже, после того, как будет установлен и настроен блок PRG2 в редакторе задач, управляющий данным элементом.

3.9 В редакторе форм отображений DISP1 установить 2 элемента управления «кнопка с двумя состояниями», которые будут использоваться для имитации сигналов с блоков дискретного ввода. В поле «режим функционирования» следует задать режим «с фиксацией», значение выходного сигнала «отжато 0, нажато 1».
ВНИМАНИЕ: при оформлении экранных окон все индикаторы и элементы управления должны иметь пояснительные надписи, выполненные с помощью элемента «Текстовая строка». Кроме того, для более качественного оформления рекомендуется использовать графический элемент «Групповая рамка».

3.10 Поскольку в нашей программе используется большое количество элементов отображения и управления, для их размещения требуется несколько окон Редактора форм. Окна Редактора форм добавляются с помощью меню «ФАЙЛ / ДОБАВИТЬ/УДАЛИТЬ / ДОБАВИТЬ ФОРМУ ОТОБРАЖЕНИЯ». Добавьте окно редактора форм DISP2 и разместите в нем 2 элемента «просмотр данных архива», один для регистрации значений уставки и температуры, второй для регистрации значений давления и раскола.
В этом же окне установите, и настройте элементы управления «движковый регулятор» и «инкрементный регулятор» для задания уставки. Причем диапазон изменения значений инкрементного регулятора, который служит для более точного задания уставки, намного уже (обычно в 10 раз), чем у движкового регулятора и, как правило, начинается с отрицательных значений. Кроме того, в поле «тип вводимого числа» данного регулятора следует указать ввод действительных чисел.

3.11 В редакторе задач установите блок двухпозиционного регулирования. Режим работы блока «выше верхнего предела 0, ниже нижнего предела 1», пороги включения/отключения задать произвольно.

3.12 В редакторе задач установите блоки ТЭГ и сопоставьте им элементы управления, установленные в редакторах форм DISP1 и DISP2 (движковый регулятор ® TAG1, инкрементный регулятор ® TAG2, кнопки ® ТАGЗ и TAG4).
Далее следует установить блоки вычисления с одним оператором. Блок SOС4 используется для вычисления уставки (суммирует значения с блоков TAG1 и TAG2), блок SOC5 используется для блокировки ввода уставки при поступлении в систему аварийных сигналов с электродов уровня, блок SОС6 инвертирует сигнал с кнопки «нижний уровень», что требуется для большей простоты и компактности программы в блоке процедуры пользователя.

3.13 В редакторе форм отображений DISP2 установить и настроить цифровой индикатор для отображения полного значения уставки с блока SOC4.

3.14 В редакторе задач установите блок процедуры пользователя PRG1 (устанавливает режим работы 2-го нагревателя) и блок процедуры пользователя PRG2 (имитирует работу блоков дискретного ввода и управляет работой элемента отображения «поле вывода текста по условию»). К ним следует присоединить блоки в соответствии с рисунком №2 и ввести следующие программы;
в блок PRG1:
If (SOC5>(AVGl+25))
{output(#0,l);}
if (SOC5<=(AVG1 +25))
{output(#0,0);}
Если значение блока SOC5 («уставка») больше значения блока AVG1 («температура») на 25 градусов, в выходной канал №0 блока PRG1 будет выведена 1. Если значение блока SOC5 меньше или ровно значению блока AVG1 плюс 25 градусов, в выходной канал №0 блока PRG1 будет выведен 0.
в блок PRG2:
al=TAG3;
bl=SOC6;
output(#l,bl);
if(AI2>2.6)
{output (#2,3);}
if(al==l)
{output(#2,2);}
if(bl==0)
{output (#2,1);}
if (bl !=0&&al !=1&&AI2<2.6)
{output (#2,0);}

Переменным al и bl присваиваются значения сигналов с выходов блоков TAG3 и SOC6. Значение переменной bl выводится в выходной канал №1 блока PRG2,
данная переменная будет являться вторым множителем        в блоках         SOC, блокирующих вход и выход системы.
Если значение блока AI2 («давление») больше 2.6 кгс/см2, в выходной канал №2 блока PRG2 будет выведено 3. Если значение переменной al равно 1(т.е. поступил сигнал «высокий уровень воды»), в выходной канал №2 блока PRG2 будет выведено 2 Если значение переменной bl равно 0(т.е. поступил сигнал «низкий уровень воды»), в выходной канал №2 блока PRG2 будет выведена 1.
Если значения переменной bl не равно 0, значение переменной al не равно 1 и значение блока AI2 меньше 2,6 кгс/см2, в выходной канал №2 блока PRG2 будет выведен 0.


ВНИМАНИЕ: Ввод программ в блоки процедуры пользователя PRG следует производить после того. как ко входам блока подключены все блоки, используемые в этих программах!


3.15 В редакторе форм отображений DISP1 настроить элемент отображения «поле вывода текста по условию». Настройку данного элемента произведем в соответствии с управляющей программой, записанной в блоке процедуры пользователя PRG2:
Ввод, сигналов управления — блок PRG2: [выход 2)
При значении на выходе 2 блока PRG2 равном 0 вывести текст :
«СИСТЕМА РАБОТАЕТ НОРМАЛЬНО»
При значении на выходе 2 блока PRG2 равном 1 вывести текст :
«АВАРИЙНАЯ СИТУАЦИЯ - НИЗКИЙ УРОВЕНЬ ВОДЫ»
При значении на выходе 2 блока PRG2 равном 2 вывести текст :
«АВАРИЙНАЯ СИТУАЦИЯ - ВЫCОКИЙ УРОВЕНЬ ВОДЫ>
При значении на выходе 2 блока PRG2 равном 3 вывести текст :
«АВАРИЙНАЯ СИТУАЦИЯ - ВЫСОКОЕ ДАВЛЕНИЕ>
Впрочем, конкретные тексты предупреждений, как и форматы шрифтов, цвета
фона и надписей могут быть произвольными.

3.16 В редакторе задач установите блоки дискретного вывода DO1 (сигнал на включение 1-го нагревателя), DO2 (сигнал на включение 2-го нагревателя). Далее в редакторе форм отображений DISP1 установите и настройте индикаторы, сигнализирующие о включении либо отключении нагревателей и сопоставьте их блокам DO1 и DO2

3.17 В редакторе задач установите блоки вычисления с одним оператором SOС7 и SOС8 для блокировки вывода управляющих сигналов на нагреватели. Их функции и настройка идентичны функциям и настройке блоков SOC1—SOC3, блокирующих вход программы.

3.18 В редакторах форм отображений DISP1 и DISP2 установите командные кнопки (кнопки меню) с помощью которых вы будете переключать окна редакторов в процессе исполнения программы, а также приостанавливать процесс исполнения стратегии, возобновлять процесс исполнения стратегии после остановки и полностью останавливать работу программы.

3.19 Проверьте правильность настройки и соединения блоков.

3.20 Сохраните программу и запустите её на исполнение.

 

 

 

Рисунок 1. Структурная схема АСУ бойлерной установкой

 

 

 


Рисунок 2.  Структурная схема программы управления бойлерной установкой.
4 ОПИСАНИЕ ПРОГРАММНЫХ БЛОКОВ ЛАБОРАТОРНОЙ РАБОТЫ №2

4.1 Блок вычисления с одним оператором (SOC)

Данный блок предназначен для выполнения одной математической операции, такой как сложение, вычитание, умножение, деление и т.д. По крайней мере один функциональный блок стратегии должен быть присоединен ко входу блока вычисления с единственным оператором. Значение на выходе присоединенного блока будет являться первым операндом в производимой математической операции. Вторым оператором может быть константа, заданная в соответствующем поле диалоговой панели настройки параметров блока, либо значение на выходе другого присоединенного функционального блока стратегии.
Результат на выходе блока вычисления с единственным оператором может быть представлен в виде целого (Integer) либо действительного (float) числа.

Операторы и функции блока вычисления с одним  оператором:

         Оператор             Функция (результат на выходе блока)
nop                      Всегда 0
+                          Операнд1 + Операнд2
-                           Операнд1 - Операнд2
x                          Операнд1 * Операнд2
/                           Операнд1 / Операнд2
pow           Операнд1 в степени Операнд2
mod*                     Остаток целочисленного деления Операнда1 на Операнд2
and*          Логическое И операндов
or*                        Логическое ИЛИ операндов
xor*           Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ операндов
max            Максимальное значение из двух операндов
min                      Минимальное значение из двух операндов
>=                        1, если Операнд1 >= Операнд2; 0  в противном случае
<=                        1, если Операнд1 <= Операнд2; 0  в противном случае
>                          1, если Операнд1 > Операнд2; 0  в противном случае
<                          1, если Операнд1 < Операнд2; 0  в противном случае
equ                       1, если Операнд1 равен Операнду2; 0  в противном случае
neq                       1, если Операнд1 не равен Операнд2; 0  в противном случае
abs                      Абсолютная величина (модуль) Операнда1
not*          Логическое НЕ Операнда1
inv                      Инверсия Операнда1
sqrt                     Квадратный корень Операнда1
log                      Десятичный логарифм Операнда1
ln                        Натуральный логарифм Операнда1
exp                      exp(Операнд1)
jct                       Оператор объединения (описание приведено ниже)

Операторы, после которых стоит символ "*", требуют использования в качестве аргументов (операндов) значения целого (Integer) типа. Некоторые из перечисленных выше операторов требуют только один аргумент (операнд). Логические операции (AND, OR, XOR) требуют использования двух аргументов целого типа. Операторы ABS, NOT, INV, SQRT, LOG, LN, EXP, JCT требуют использования одного аргумента (целого или с плавающей точкой в зависимости от типа операции).
При передаче значений операндов блоку вычисления с одним оператором необходимо принимать ряд мер предосторожности. Операциям деления и вычисления остатка от целочисленного деления в качестве второго аргумента не должно передаваться нулевое значение. Кроме того, некоторым операторам (SQRT, LN, LOG) в качестве аргумента должно передаваться только положительное значение. Если не следовать указанным правилам, то при исполнении стратегии будут возникать неустранимые ошибки.
Оператор JCT предназначен для выполнения специальной функции, которая заключается в передаче на выход блока значения, поступающего на его вход. Данная функция наиболее удобна в случае, если требуется установить связь между элементом управления Кнопка и несколькими функциональными блоками стратегии. Элемент управления Кнопка, используемый в Редакторе форм отображения, может быть связан только с одним функциональным блоком стратегии. Оператор JCT, вход которого связан с элементом управления Кнопка, может быть использован в качестве "точки ветвления" для установления связи с любым количеством функциональных блоков стратегии.
4.1.1 Входная связь: Блок вычисления с одним оператором имеет два входа: Операнд 1 и Операнд 2.
4.1.2 Выходная связь: Блок вычисления с единственным оператором имеет один выход, по которому выводится результат выполнения математической операции, выбранной в поле Оператор диалоговой панели настройки параметров блока.

4.2 Элемент отображения «Поле вывода текста по условию»


Данный элемент отображения обеспечивает возможность приема и передачи информации. На вход элемента отображения могут поступать целые числа в диапазоне от 0 до 7 от присоединенного функционального блока стратегии. При этом каждому числу может соответствовать текстовая строка, которая будет отображаться во внутренней области элемента отображения. Кроме того, строка может передаваться на вход функционального блока стратегии, например, на вход блока обмена через последовательный порт. Двойной щелчок левой клавишей мыши на элементе отображения приведет к появлению на экране диалоговой панели настройки параметров элемента отображения.

4.2.1 Поле Текст
Данное поле предназначено для ввода строки символов, которая подлежит выводу во внутреннюю область элемента отображения. Для ввода строки из поля Текст в список Входное значение-Текст следует с помощью мыши выбрать значение от 0 до 7 в списке и нажать кнопку Ввод диалоговой панели.

4.2.2 Поля Цвет/Цвет фона

Данные поля позволяют установить цвет шрифта выводимой строки символов и цвет внутренней области элемента отображения для текущей выбранной строки в списке Входное значение-Текст.

4.2.3 Поле Выравнивание

Данное поле позволяет выбрать тип выравнивания для текущей выбранной строки в списке Входное значение-Текст. Возможные значения в данном поле: Left  по левому краю, Center  по центру, Right  по правому краю.

4.3 Элемент управления Движковый регулятор

Элемент управления Движковый регулятор может быть помещен в окно формы отображения и связан с входной переменной функционального блока задачи, входящей в стратегию, и/или элементами отображения. Имеется возможность установки требуемых размеров регулятора. Движковый регулятор предназначен для ввода оператором числовых значений с помощью клавиатуры или мыши и передачи введенных значений связанному функциональному блоку стратегии, что позволяет реализовывать функции оперативного диспетчерского управления. Для управления Движковым регулятором с помощью клавиатуры следует с помощью клавиши "Tab" на клавиатуре передать фокус ввода регулятору и нажимать клавишу ""  или "" (фокус ввода  стандартное понятие интерфейса пользователя, принятое в Windows, которое означает, что ввод с клавиатуры передается элементу интерфейса (окну, кнопке и т.п.), получившему фокус ввода).

Движковый регулятор передает связанным функциональным блокам действительные (с плавающей точкой) значения.

 

4.3.1 Поле Режим регулирования

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

4.3.2 Поле Начальное значение

Данное поле определяет значение на выходе движкового регулятора при запуске стратегии на исполнение.

4.3.3 Поле Уровень привилегий

Данное поле предназначено для защиты функций управления, связанных с движковым регулятором. Уровень привилегий может принимать значения от 0 до 255, причем большему значению соответствует более высокий уровень привилегий. Таким образом, если для регулятора установлен уровень привилегий, равный 100, то изменить значение на его выходе смогут пользователи с правами доступа от 100 и выше.
4.3.4 Переключатель Показать деления
Данный переключатель позволяет включить или отключить метки на шкале регулятора.

4.3.5 Поле Начало шкалы

Данное поле позволяет установить минимальное значение, формируемое регулятором.

4.3.6 Поле Конец шкалы

Данное поле позволяет установить максимальное значение, формируемое регулятором.

4.3.7 Поле Количество делений

Данное поле позволяет установить общее количество меток на шкале регулятора. Поле Количество делений блокируется при установке переключателя Показать деления в положение Нет.

4.4 Элемент управления Инкрементный регулятор

Элемент управления Инкрементный регулятор может быть помещен в окно формы отображения и связан с входной переменной функционального блока задачи, входящей в стратегию, и/или элементами отображения. Имеется возможность установки требуемых размеров регулятора. Инкрементный регулятор предназначен для ввода оператором числовых значений с помощью клавиатуры или мыши и передачи введенных значений связанному функциональному блоку стратегии, что позволяет реализовывать функции оперативного диспетчерского управления. Вводимые значения могут быть целого или действительного типа. Формат вводимого значения (количество цифр после десятичной точки) может быть установлен только для действительных чисел.
Тип и размер используемого шрифта выбираются путем нажатия кнопки Шрифт... диалоговой панели настройки параметров элемента управления,

 


4.4.1 Переключатель Тип вводимого числа

Данный переключатель позволяет выбрать тип вводимого и отображаемого значения. Обеспечена поддержка действительных (с плавающей точкой) и целых чисел.

4.4.2 Поле Уровень привилегий

Данное поле предназначено для защиты функций управления, связанных с инкрементным регулятором. Уровень привилегий может принимать значения от 0 до 255, причем большему значению соответствует более высокий уровень привилегий. Таким образом, если для регулятора установлен уровень привилегий, равный 100, то изменить значение на его выходе смогут пользователи с правами доступа от 100 и выше.

4.4.3 Поле Начальное значение

Данное поле определяет значение на выходе инкрементного регулятора при запуске стратегии на исполнение.

4.4.4 Поле Шаг изменения

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

4.4.5 Поля Верхний/Нижний предел

Данные поля предназначены для установки диапазона изменения значения на выходе инкрементного регулятора.

 

4.5 Блок двухпозиционного регулирования

Данный блок предназначен для реализации простейшего алгоритма двухпозиционного управления и имеет вход, на который подается сигнал обратной связи от объекта управления, и дискретный выход, логическое состояние которого зависит от текущего значения на входе, заданной уставки и значений порогов включения и выключения.
Алгоритм непропорционального (двухпозиционного) регулирования состоит в том, что управляемый объект переводится регулятором в одно из двух состояний (включен или выключен) в зависимости от соотношения между измеряемым значением сигнала обратной связи, уставкой и порогами включения/выключения.

                                                                                      (4.1)
где:
- Out  выходной сигнал регулятора;
- ln  входной сигнал регулятора;
- S  уставка;
- H  порог включения;

- L  порог выключения.

 

4.5.1 Поле Уставка

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

4.5.2 Поле Порог выключения

Данное поле должно содержать значение, которое определяет зону нечувствительности регулятора при формировании выходного сигнала, выключающего объект управления. Нижний предел регулирования определяется путем вычитания порога выключения из значения уставки.
4.5.3 Поле Порог включения
Данное поле должно содержать значение, которое определяет зону нечувствительности регулятора при формировании выходного сигнала, включающего объект управления. Верхний предел регулирования определяется путем суммирования порога выключения и значения уставки. Кроме того, логические состояния выходного сигнала регулятора могут быть установлены в требуемом порядке путем установки в соответствующее положение переключателя Выше верхнего предела... диалоговой панели настройки параметров блока.
4.5.4 Входная связь: Блок двухпозиционного управления имеет два входа: Вход обратной связи и Уставка.


4.5.5 Выходная связь: Блок имеет один дискретный выход, логическое состояние которого может быть передано другим функциональным блокам или элементам отображения стратегии.

 

4.6 Блок процедуры пользователя

Данный блок имеет 8 входов и 8 выходов. После присоединения выходов других функциональных блоков стратегии ко входам блока процедуры пользователя, имеется возможность выполнения различных математических операций над данными, поступающими на указанные входы, а также программной реализации простых алгоритмов обработки данных, состоящих из одной или нескольких строк кода. При этом выходы функциональных блоков, присоединенные к входам блока процедуры пользователя, используются в качестве переменных реализуемой программной процедуры.
 


Данный блок разработан для обеспечения максимальной гибкости программирования в GENIE, позволяющей реализовывать эффективные вычисления, логические операции, условные переходы, ветвления и циклы. В блоке используется интерпретирующий (не компилирующий) язык программирования, синтаксис которого весьма похож на синтаксис языка Си, но со значительными упрощениями. В результате достигнут разумный компромисс между скоростью исполнения и сложностью языка. Блок процедуры пользователя предназначен для реализации небольших алгоритмов обработки данных. Разработка и использование больших и сложных процедур не рекомендуется. Выходы (8) блока процедуры пользователя могут соединяться с неограниченным количеством других функциональных блоков стратегии. Имеется возможность создания программ, выполняющих обработку значений на входах блока процедуры пользователя и вывод вычисленных значений на его выходы, а также позволяющих пропускать циклы стратегии, при которых не происходит вывод значений переменных другим функциональным блокам. В последнем случае, все блоки стратегии, присоединенные к выходам блока процедуры пользователя с подобным алгоритмом работы, исключаются из обработки в пропускаемых циклах. Кроме того, с помощью данного блока можно полностью остановить текущий сеанс исполнения стратегии.
Диалоговая панель блока процедуры пользователя имеет три основных поля:
- список Входные блоки;
- список Операторы;
- поле редактирования Программа.
Список Входные блоки содержит идентификаторы выходных каналов функциональных блоков, присоединенных к блоку процедуры пользователя. Список Операторы содержит перечень всех доступных операций.
Поле редактирования Программа предназначено для ввода исходного текста процедуры, реализуемой данным блоком. Щелчок левой клавишей мыши на идентификаторе присоединенного канала в списке Входные блоки приведен к появлению выбранного идентификатора в поле редактирования программы. Щелчок на символе операции в списке Операторы также приведет к появлению оператора в поле редактирования.

4.6.1 Поле редактирования Программа

Данное поле должно содержать исходный текст программы, состоящий из операторов и выражений, введенных в соответствии с соглашениями, принятыми в языке программирования процедур пользователя GENIE.

4.6.2 Список Операторы

Поле Операторы содержит перечень всех ключевых слов, выражений и операторов языка программирования процедур пользователя GENIE. Оператор, который образует часть другого оператора, называется "телом" составного оператора. Символы перевода строки и возврата каретки, которые добавляются в текст программы при нажатии клавиши "Enter" в процессе ввода текста, не оказывают никакого влияния на выполнение программы. Таким образом, любой оператор может содержаться в одной строке либо быть разбитым на несколько строк. Интерпретатор блока процедуры пользователя распознает ключевые слова if, else, while, output, skip, stop, display, substr и sprintf, идентификаторы присоединенных функциональных блоков (AI1, DO2, и т.д.), а также имена переменных от a до z, от a1...z1 до a9...z9. В языке программирования процедур пользователя GENIE используются следующие типы синтаксиса:

if (логическое выражение) оператор;
if (логическое выражение) оператор;
else оператор;
while (логическое выражение) оператор;
output выражение;
skip;
stop;
display выражение;
substr выражение;
sprintf выражение;

Ключевое слово output позволяет передавать результат выражения функциональному блоку, присоединенному к одному из выходов блока процедуры пользователя. Блок позволяет выводить данные в виде целых и действительных значений, а также символьных строк. Поскольку данные могут выводиться по 8-ми каналам, ключевое слово output имеет следующий синтаксис:
output (#номер, параметр);
номер  цифра от 0 до 7, идентифицирующая номер выхода блока процедуры пользователя
параметр  число (константа), имя тэга, имя переменной, математическая операция или строка символов, заключенная в двойные кавычки (например, "This is a string").

Примеры:
output(#2, "This string");  //вывести строку в канал с номером 2
output(#0, "Another string");  //вывести строку в канал с номером 0
output "Another string";  //вывести строку в канал с номером 0
a4 = "Another string";
output(#7, "String"+ a4);  //вывести строку "StringAnother string" в канал с номером 7
output(#1, AI1[0] + AI2[0]); //вывести сумму значений на выходах с номерами 0 блоков аналогового ввода AI1 и AI2, присоединенных к блоку процедуры пользователя, в канал с номером 1
output(#7, 1); //вывести 1 в канал с номером 7

Когда выход данного блока присоединяется ко входу другого блока, на экран монитора выводится диалоговая панель выбора номера выходного канала блока процедуры пользователя, в которой следует выбрать присоединяемый канал. Если по логике алгоритма, выполняемого блоком процедуры пользователя, на выход данного блока в текущем цикле стратегии явно не выводится какое-либо значение, то на указанном выходе будет присутствовать нулевое значение.
Ключевое слово skip позволяет пропустить следующие за ним строки процедуры пользователя в текущем цикле стратегии.
Ключевое слово display позволяет выполнять переключение между окнами форм отображения в процессе исполнения стратегии. В качестве параметра данному ключевому слову передается номер формы отображения, окно которой выдвигается на передний план. Например: display(2); //выдвинуть на передний план окно формы отображения DISP2
Ключевое слово substr позволяет выполнять разбор символьных строк в процессе исполнения стратегии. В качестве первого параметра данному ключевому слову передается строка символов, заключенная в двойные кавычки, либо строковая переменная, подлежащая разбору. Второй параметр должен содержать номер символа, с которого необходимо начать разбор строки. Символ, расположенный в крайней левой позиции строки, имеет номер 1.
Третий параметр должен содержать количество символов, которое необходимо извлечь из строки, передаваемой в качестве первого параметра. Например:
d5 = "This string";
s2 = substr(d5, 3, 9);  //переменная s2 будет содержать строку "is string"
s3 = substr(d5, 2, 6); // переменная s3 будет содержать строку "his st"

Ключевое слово sprintf позволяет выполнять форматированный вывод последовательности символов и значений в переменную-буфер. В качестве первого параметра данному ключевому слову передается строка или строковая переменная, в которой будет сохранена форматированная последовательность символов. Второй параметр является строкой, определяющей формат строки, сохраняемой в переменной-буфере. Третий параметр является аргументом и должен содержать значение или строку символов, подлежащую форматированному выводу. Аргумент преобразуется в соответствии с форматом, заданным вторым параметром, после чего выводится в переменную-буфер. Типы форматов, поддерживаемые ключевым словом sprintf, имеют представление, аналогичное принятому в языке программирования ANSI Си для функции printf(). Однако версия функции sprintf, реализованная в языке программирования процедур пользователя GENIE, позволяет форматировать только один аргумент. Ниже приведены примеры использования ключевого слова sprintf:
Указанная программа использует sprintf для форматирования данных различных типов и последующего сохранения в строковой переменной с именем b:
s = "computer";
c = "l";
i = 35;
f = 1.7320534;
// Форматирование данных
sprintf( b, "\tString:   %s\n", s);
sprintf( b, "\tInteger:  %3d\n", i);
sprintf( b, "\tReal:     %6.3f\n", f);

Слово Оператор, выделенное курсивом, соответствует одному оператору или нескольким операторам, заключенным в фигурные скобки {}. Обратите внимание на то, что составной оператор не требует наличия символа "точка с запятой" после закрывающей фигурной скобки.
Комментарии, вводимые в текст процедуры пользователя, обозначаются двумя следующими друг за другом символами слеш  "//" в начале каждой строки комментария.

4.6.3 Выражения

Выражением является последовательность операндов (переменных и числовых значений) и операторов (математических или/и арифметических операций). Вычисляемым значением может быть число или логическое состояние (ИСТИНА/ЛОЖЬ). Простейшим выражением является константа (операнд) без операторов.
Примеры выражений:

3
AI1 + AI2
(abs(AI1)*2.5) + 1
AI1 > 0 && AI2 < 0

Последний пример содержит логическое выражение. Некоторые операторы имеют более высокий приоритет. Оператор с высоким приоритетом всегда выполняется перед выполнением операторов с более низким приоритетом. Ниже приведен перечень операторов в порядке убывания их приоритетов.

4.6.4 Приоритеты и направление выполнения операторов

Символ                   Тип операции                                    Ассоциативность
( )                                        Выражение                                 Слева направо
- !                        Унарный минус, Унарное отрицание         Справа налево
* / %         Умножение Деление Взятие остатка         Слева направо
+ -                                        Сложение Вычитание                            Слева направо
< > <= >=                            Меньше Больше Меньше              Слева направо
                                либо Равно Больше либо Равно
== !=                            Равно Не равно                         Слева направо
&                              Побитовая операция И                   Слева направо
|                                      Побитовая операция ИЛИ                     Слева направо
~                                      Побитовая операция НЕ                                Справа налево
^                  Побитовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ     Слева направо
<< >>                                   Сдвиг влево Сдвиг вправо              Слева направо
&&                                          Логическое И                               Слева направо
||                                               Логическое ИЛИ                         Слева направо
=                                              Присвоение                                             Справа налево
Перечень математических функций, поддерживаемых блоком процедуры пользователя, приведен ниже.

 

Математические функции

Функция     Тип аргумента          Возвращаемый результат
abs()  Целое или действительное число  Абсолютное значение аргумента
cos()  Целое (в радианах) или действительное число   Косинус аргумента
int()   Действительное число        Целое от аргумента с плавающей точкой
rnd() Целое начальное значение  Случайное число, начинающееся с аргумента
sin()  Целое (в радианах) или действительное число   Синус аргумента
sqr()  Целое или действительное число  Квадратный корень аргумента
ln()    Целое или действительное число  Натуральный логарифм аргумента
log 10()         Целое или действительное число  Десятичный логарифм аргумента
exp() Целое или действительное число  e в степени аргумента
pow(x,y)       Целое или действительное число  x в степени y
tan()  Целое (в радианах) или действительное число   Тангенс аргумента
Функция int() заслуживает особого внимания. При выполнении выражения над действительным и целым значениями, возвращается результат действительного типа. В ряде случаев может потребоваться возврат значения целого типа, для чего может быть использована функция int(). Например, значение с плавающей точкой 1.49 будет преобразовано функцией int() в 1. Значение 1.51 будет преобразовано в 2. Таким образом, функция int() возвращает результат выполнения операции округления действительного аргумента до ближайшего целого.

Переменные
В процедуре пользователя могут использоваться переменные с именами от a
 до z и от a1...z1 до a9...z9.


ПРИМЕЧАНИЕ. В текущей версии пакета не допускается использовать переменную с именем o7 (или O7).
Следует учитывать, что любая переменная, объявленная и используемая в любом блоке процедуры пользователя, будет видна во всех блоках процедур пользователя, входящих в стратегию. Данное свойство переменных может быть удобным в ряде случаев, однако рекомендуется в разных блоках процедуры пользователя использовать отличные друг от друга имена переменных. Кроме того, в выражениях в качестве операндов могут использоваться идентификаторы выходов функциональных блоков стратегии, присоединенных ко входам блока процедуры пользователя.
Например:
if (AI1 > AI2)
{
   a = AI1 * 0.117;  // это способ ввода
   output (a);       // комментариев в текст процедуры
}

В приведенном фрагменте программы выполняется сравнение значений на выходах 0 блоков AI1 и AI2. Если AI1 больше AI2, то выполняется выражение в фигурных скобках.

4.6.4 Входная связь: Данный блок позволяет использовать до 8-ми каналов ввода.
4.6.5 Выходная связь: Данный блок позволяет использовать до 8-ми каналов вывода, к которым может быть присоединено неограниченное количество блоков стратегии.

 

4.7 Блок дискретного ввода DI

Данный функциональный блок предназначен для приема информации от устройств, имеющих подсистему ввода дискретных сигналов, и передачи указанных сигналов другим функциональным блокам и элементам отображения. Двойной щелчок левой клавишей мыши на пиктограмме DI блока дискретного ввода приводит к появлению диалоговой панели настройки параметров блока.

4.7.1 Поле Устройство
Щелчок левой клавишей мыши на кнопке с изображением стрелки, расположенной справа от поля Устройство, приведет к появлению списка всех устройств с подсистемой дискретного ввода, драйверы и экземпляры которых установлены в системе. После выбора устройства, его название будет отображаться в поле Устройство. Имеется возможность выбора одного канала дискретного ввода или группы каналов (до 8-ми) при использовании режима упакованного ввода путем однократного щелчка левой клавишей мыши на номере (номерах) соответствующих каналов в списке Бит(ы) диалоговой панели.
4.7.2 Поле Группа (Байт)
После выбора устройства дискретного ввода, следует установить номер группы каналов (бит) дискретного ввода, связанных с данным функциональным блоком дискретного ввода. Количество групп и каналов в группе зависит от типа применяемого устройства дискретного ввода. В поле Группа (Байт) и списке Бит(ы) отображается общее количество групп и каналов, имеющихся в выбранном устройстве.

Поле Частота обновления

4.7.3 Значение в данном поле является делителем, который позволяет вызывать блок дискретного ввода и передавать информацию присоединенным функциональным блокам реже, чем вызывается вся задача, в которую входит данный функциональный блок. Например, пусть задача вызывается (сканируется) один раз в 50 мс. Для того, чтобы блок дискретного ввода, входящий в данную задачу, вызывался один раз в 250 мс, следует установить в поле Частота обновления значение 5. В этом случае информация на выходе блока дискретного ввода будет обновляться через каждые пять вызовов задачи, содержащей блок.

4.7.4 Поле Установить DDE связь

Блок дискретного ввода обеспечивает возможность передачи данных другим приложениям Windows посредством механизма динамического обмена данными (DDE). Для получения более подробной информации о DDE обратитесь к описанию блоков динамического обмена данными.
4.7.5 Входная связь: При попытке присоединения проводника от другого функционального блока на экран монитора будет выведено сообщение GENIE "Вход недоступен".
4.7.6 Выходная связь: Логические состояния каналов дискретного ввода устройства, связанного с данным блоком, будут непосредственно передаваться присоединенным функциональным блокам.

4.8 Элемент управления «Командная кнопка (Кнопка меню)»


Данный элемент управления предназначен для создания командных кнопок в окне формы отображения, позволяющих управлять процессом исполнения стратегии. Для элемента управления Кнопка меню имеется возможность реализации одной из двух функций: Действие или Переключение окна формы отображения. Функция Действие позволяет выбрать одну из следующих операций при нажатии на кнопку меню: START  запуск стратегии на исполнение; STOP  завершение исполнения стратегии; PAUSE  приостановка исполнения стратегии; RESUME  возобновление исполнения после приостановки; CLOSE  завершение исполнения стратегии и завершение сеанса исполнительной среды GENIE; LOCK  блокировка пунктов меню и других органов управления Windows; REPORT  вызов Редактора отчетов. При выборе второй функции нажатие на кнопку во время исполнения стратегии приведет к выдвижению на передний план окна формы отображения, идентификатор которого выбран в поле Перейти в окно  диалоговой панели настройки параметров элемента управления. Поле Перейти в окно  замещает поле Метод  при установке переключателя Функция в положение Переключение окна формы отображения.


Информация о реферате «Автоматизация бойлерной установки»
Раздел: Промышленность, производство
Количество знаков с пробелами: 46383
Количество таблиц: 0
Количество изображений: 11

Похожие материалы

Скачать
120132
6
2

... по отношению к температуре насыщения отработавшего пара, приводящего к потере теплоты.   3.2 Особенности конструкции и компоновки конденсаторов Конденсатор – основной элемент конденсационной установки – представляет собой теплообменный аппарат поверхностного типа. В зависимости от мощности и конструктивных особенностей турбины устанавливается один или несколько конденсаторов. Наиболее ...

Скачать
102681
18
12

... схема подогревателей ГВС с независимым подключением системы отопления Таблица 2.1 – Обозначение к Рис.2.1,Рис.2.2 2.1 Тепловой и гидравлический расчет пластинчатых водонагревателей Схема подключения водонагревателей горячего водоснабжения в закрытых системах теплоснабжения выбирается в зависимости от соотношения максимального теплового потока на горячее водоснабжение  и максимального ...

Скачать
165224
11
6

... Знайдемо потужність променевого опалення для всіх 5 виробничих цехів депо, яка дорівнює їхній сумі. Рн=165,88+148,26+176,9+132,24+71,34=694,62кВт 7. ТЕХНІКО-ЕКОНОМІЧНІ РОЗРАХУНКИ ЗА РАХУНОК ЕНЕРГОЗБЕРІГАЮЧИХ ЗАХОДІВ 7.1 Розрахунок економічної доцільності переводу парового котла на водогрійний режим Перелік матеріалів та обладнання, необхідних для переводу парового котла типу ...

Скачать
50058
8
0

... на подгруппы – оборудование, векселя, акции и т.д. На основании полученных оценок проводится экономический анализ эффективности использования имущества, главным образом его рентабельности. Что дает ключ к определению финансовых возможностей предприятия. Существует и используется система показателей эффективности деятельности, среди них коэффициент рентабельности активов (имущества)1: Где Ра – ...

0 комментариев


Наверх