Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка ПСА genie

.pdf
Скачиваний:
76
Добавлен:
12.02.2016
Размер:
1.32 Mб
Скачать

Импульсы, имитирующие программные циклы, поступают на один из входов блока процедуры пользователя PRG1, где собственно и выполняется весь алгоритм выделения фронтов, блок-схема которого показана выше на рис. 3.7. К блоку PRG1 подсоединен проводником также функциональный блок Тэг TAG1, связанный с кнопкой BBTN1:Датчик, имитирующей сигнал от двухпозиционного датчика. Программа, содержащаяся в блоке PRG1, имеет вид

if (SOC1==1)

{

if (TAG1==1 && s==0)

{

if (p1==0) p1=1; else {p1=0; s=1; f=1;}

}

else

{

{p1=0;

f=0;}

if (TAG1==0 && s==1)

{

if (p2==0) p2=1; else {p2=0; s=0; f=2;}

}

else p2=0;

}

}

Блок процедуры пользователя PRG2 присутствует только лишь для вывода значений признаков s и f с помощью программы:

output s; output (#1,f);

С выходами блока PRG2 с номерами #0 и #1 соединены соответственно третий и четвертый элементы График X(t) в окне Редактора форм отображения DISP1.

91

Алгоритм выделения фронтов двухпозиционного сигнала можно реализовать и без использования признаков s, p1 и p2. Окно DISP1 Редактора форм отображения данной стратегии показано на рис. 3.10.

Здесь, как и в предыдущем случае, кнопкой «Датчик» имитируется дискретный двухпозиционный сигнал. Два элемента отображения График X(t) отображаются состояние датчика и признак f соответственно. С помощью элемента отображения Вывод текста по условию (см. п. 2.3.3.13) осуществляется вывод информации о наличии фронта (в зависимости от ситуации выводится сообщение «0», «передний фронт» или «задний фронт»).

Рис. 3.10. Окно Редактора форм при реализации алгоритма выделения фронтов сигнала без использования признаков

Окно TASK1 Редактора задач представлено на рис. 3.11. В данной задаче отсутствует имитация последовательности программных циклов; для этой цели используется «естественная» для GENIE периодичность сканирования задачи. Для наглядности работы алгоритма параметр Scan Period задан равным

1с.

Рис. 3.11. Окно Редактора задач при реализации алгоритма выделения фронтов без использования признаков

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

output 0;

if (TAG1==1) {a=1; i=i+1;}

else i=0;

92

if (i==2) output 1;

if (TAG1==0 && a==1) j=j+1;

else j=0;

if (j==2) output 2;

В начале каждого программного цикла на выходе блока PRG1 присутствует «0». При изменении состояния «датчика» из нулевого состояния с состояние «1» (передний фронт) переменная i возрастает на единицу в каждом последующем периоде сканирования задачи. При выполнении равенства i = 2 на выход блока PRG1 подается «1»; в следующем периоде сканирования (цикле программы) i примет значение, равное 3, а на выходе PRG1 будет снова присутствовать сигнал низкого уровня («0»).

При изменении состояния «датчика» с «1» на «0» (задний фронт) ежециклично увеличивается переменная j; через два программных цикла (j = 2) на выход блока процедуры пользователя подается «2», а в следующем цикле на выходе снова будет «0».

Значение на выходе блока PRG1 является ничем иным как признаком фронта f. Во время нарастания какой-либо из переменных (i или j) другая будет равна нулю.

3.3. ПОДСЧЕТ ИМПУЛЬСОВ, ИЗМЕРЕНИЕ ЧАСТОТЫ

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

Рассмотрим пример реализации в пакете GENIE алгоритма измерения частоты, причем в данной стратегии должен присутствовать генератор импульсов. Окно DISP1 (рис. 3.12) Редактора форм для данной стратегии содержит следующие элементы:

Цифровой задатчик, определяющий интенсивность следования импульсов;

два Цифровых индикатора для отображения временного интервала подсчета и частоты соответственно;

График X(t), отображающий импульсы.

93

Рис. 3.12. Окно Редактора форм отображения при реализации алгоритма измерения частоты

Для демонстрации приемов построения многозадачных стратегий в GENIE реализуем рассматриваемый алгоритм в двух задачах (то есть в двух окнах Редактора задач): в первой (TASK1) будет осуществляться генерация импульсов, во второй (TASK2) – измерение частоты этих импульсов.

Внешний вид окна TASK1 показан на рис. 3.13. Генератор импульсов, построенный в данной задаче, отличается от генератора из предыдущего примера (см. п. 3.2) возможностью задания частоты сигнала. Это достигается присоединением к блоку процедуры пользователя PRG3 блока TAG1,

связанного с Цифровым задатчиком.

Рис. 3.13. Окно TASK1 Редактора задач GENIE с задачей реализующей генератор импульсов

Функциональный блок PRG3 содержит следующую программу y = sin(6.28*TAG1*RMP1);

output y;

Первая строка программы соответствует выражению y = sin (2πƒt), то есть величина, поступающая из Цифрового задатчика NCTL1 посредством блока Тэг TAG1, соответствует частоте ƒ синусоиды, а величина из RMP1 – текущему времени.

Блок вычисления с одним оператором SOC1 содержит неравенство

PRG3 > 0, которое преобразует синусоидальный сигнал в импульсный. Передача импульсов из задачи TASK1 в TASK2 осуществляется с

помощью двух блоков процедуры пользователя PRG6-out и PRG7-in – по

94

одному в каждой задаче (слова out и in добавлены к позиционным обозначениям блоков PRG для удобства восприятия информационных потоков

встратегии).

Вблоке PRG6-out посредством выражения c = SOC1 переменой c присваивается значение с выхода блока вычисления SOC1, то есть фактически c будет уже являться функцией, несущей импульсный двухпозиционный сигнал. Следует учитывать, что любая переменная, объявленная и используемая в любом блоке процедуры пользователя, будет видна во всех блоках процедур пользователя, входящих в стратегию. Поэтому в окне TASK2 (рис. 3.14) Редактора задач блок PRG7-in, благодаря команде output c, имеет возможность выдавать импульсный сигнал через выходной канал #0 другим функциональным блокам задачи TASK2 для дальнейшей обработки.

Рис. 3.14. Окно TASK2 Редактора задач GENIE с задачей реализующей алгоритм измерения частоты

Подсчет количества импульсов в данной стратегии осуществляется с помощью блока счетчика событий CNT1 (см. п. 2.2.3.11), который представляет собой программный счетчик передних фронтов дискретных сигналов. Вход Input блока CNT1 соединен с выходом #0 функционального блока PRG7-in.

Совокупность блоков ET1, PRG1 и PRG2 образует счетчик заданного интервала времени (это можно рассматривать как дополнение к п. 3.1.1). Блок таймера ET1 настроен на секундный отсчет времени. В блоке PRG1 переменной a присваивается выходное значение таймера (a = ET1), а в блоке PRG2 выполняется программа

if (a>=5) output 1; else output 0;

Вход Reset блока ET1 соединен проводником с выходом #0 блока PRG2. Таким образом, когда происходит отсчет 5 секунд, таймер сбрасывается в нулевое значение и отсчет времени возобновляется. Следует отметить, что блоки PRG1 и PRG2 нельзя соединять проводником или объединять в один, так как соединение выходов и входов функционального блока замкнутым

95

контуром (в данном случае блока ET1) приводит к образованию логической петли (GENIE в таких случаях выдает соответствующее сообщение).

Комбинацией блоков PRG4, PRG5 и SOC2 организуется управление подсчетом импульсов и вычисление частоты. В блоке PRG5 с помощью выражения b = CNT1 переменной b присваивается значение с выхода счетчика событий. Блок PRG4, который соединен с выходом #0 блока PRG2, содержит следующую программу:

if (PRG2==1) {output (#1,b); output 1;} else

output 0;

При отсчете счетчиком времени 5 секунд (PRG2=1), на выходе #1 блока PRG4 появляется величина b, равная количеству импульсов, подсчитанных за этот период времени, а на выход #0 подается единица, которая сбрасывает счетчик импульсов CNT1 в нулевое значение. С выхода #1 блока PRG4 величина b поступает на вход блока вычисления SOC2, где она делится на 5, так как импульсы подсчитывались в течение 5 с. Один из Цифровых индикаторов связан с выходом блока SOC2, на котором присутствует вычисленное значение частоты сигнала.

При периоде сканирования задач данной стратегии, равном 100 мс, корректное измерение частоты происходит в диапазоне 1-5 Гц. Для расширения диапазона необходимо уменьшать период сканирования, но при этом нужно пропорционально изменять параметр Step Increment/Decrement в диалоговой панели настройки блока RMP1.

4. ОСНОВНЫЕ ПРИЕМЫ ИМИТАЦИИ ОБЪЕКТОВ УПРАВЛЕНИЯ ПРИ ПРОЕКТИРОВАНИИ АСУ В GENIE

4.1. МОДЕЛИРОВАНИЕ ОБЪЕКТОВ В SIMULINK

При проектировании ПО АСУТП неизбежно возникает задача его отладки. Значительно упростить этот процесс позволяет применение имитаторов объекта управления. Создание аппаратных имитаторов всегда сопряжено с существенными материальными и временными затратами. Поэтому наиболее предпочтительным является применение программных имитаторов. В пакете GENIE отсутствуют развитые средства создания программных моделей технологических объектов, поскольку его целью в конечном счете является отображение и управление процессом по данным, поступающим извне . Разработка моделей даже типовых элементов на уровне DLL-библиотек или на Visual Basic – процесс достаточно трудоемкий и не универсальный.

96

Наиболее пригодным для моделирования самого процесса (объекта управления) является библиотека визуального моделирования Simulink, входящая в состав пакета MATLAB фирмы MathWorks. Данный продукт имеет богатый набор типовых блоков, как линейных динамических, так и нелинейных, связь между которыми может устанавливаться скалярами или векторами. Кроме типовых могут быть созданы и пользовательские блоки путем укрупнения типовых блоков либо описания на языках программирования высокого уровня [2]. Simulink имеет достаточные для исследовательских целей средства отображения, а самое главное – поддерживает интерфейс DDE и возможность моделирования в реальном масштабе времени.

В GENIE также имеется поддержка DDE-интерфейса с помощью функциональных блоков сервера и клиента динамического обмена данными (см. п. 2.2.3.23). Таким образом, имеется возможность создать объект управления в Simulink, а управление осуществлять из пакета GENIE. При этом взаимодействие между пакетами на уровне данных и событий осуществляется в рамках одного ПК по интерфейсу DDE (рис. 4.1) [13, 14].

SIMULINK

 

 

 

GENIE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Модель

Интерфейс DDE

Система

 

 

процесса

управления

 

 

 

 

 

 

 

 

Рис. 4.1. Структурная схема взаимодействия пакетов по интерфейсу DDE

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

4.2. МОДЕЛИРОВАНИЕ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ МНОГОЗАДАЧНОГО РЕЖИМА

Оговоренная выше проблематичность моделирования технологических объектов в пакете GENIE вовсе не означает, что имитация объектов в данной среде в принципе невозможна. В рамках одной стратегии можно реализовать и систему управления, и простой объект управления. Причем для удобства отладки стратегии и восприятия информационных потоков рекомендуется объект и систему создавать в различных задачах, например TASK1 и TASK2 (в GENIE имеется возможность построения до 8 задач).

97

Использование таких имитаторов целесообразно при создании систем программно-логического управления, у которых входная и выходная информация представляет собой двухпозиционные сигналы (типа «Да/Нет», «Вкл/Откл» и т.п.). В этом случае не возникает необходимости в численном решении дифференциальных уравнений для моделирования поведения объекта, к чему GENIE не приспособлен.

Ниже в разделе 5 рассматривается пример разработки АСУТП в GENIE в нескольких задачах.

GENIE предусматривает возможность работы в локальной сети. Это обстоятельство позволяет создавать имитаторы объектов управления на отдельном ПК. Такая организация комплекса Система-Объект позволяет оперативно изменять ситуацию на объекте управления с большим удобством, чем в случае многозадачного режима. В рамках данного пособия сетевая работа пакета GENIE не рассматривается.

5. ПРИМЕР РАЗРАБОТКИ АСУТП В ПАКЕТЕ GENIE

Рассмотрим построение АСУТП в GENIE на примере системы управления механизмом резания летучих ножниц.

Двухбарабанные летучие ножницы предназначены для разрезания на ходу раската, выходящего из чистовой клети мелкосортного стана. Они представляют собой два барабана с установленными на них ножами, которые непрерывно вращаются навстречу друг другу с заданной скоростью, соответствующей скорости прокатки (см. рис. 5.1). В выключенном состоянии барабаны разведены и раскат беспрепятственно проходит между вращающимися ножами. Для осуществления реза барабаны необходимо свести, а после реза – развести в исходное положение с помощью специального механизма резания. Сведение и разведение барабанов осуществляется пневмоцилиндрами сведения ЦС и разведения ЦР, управляемыми электропневматическим распределителем ЭПР.

98

Рис. 5.1. Кинематическая схема летучих ножниц с механизмом резания

Пневмопривод не позволяет отрабатывать цикл сведения барабанов мгновенно, так как от момента подачи напряжения на ЭПР до полного сведения барабанов происходит наполнение ЦС воздухом, трогание с места и сближение барабанов, а также установление постоянного давления в полости ЦС. Длительность этого временного интервала составляет около 0,2 с и меньше продолжительности оборота барабанов при скоростях прокатки до 12,5 м/с. При более высоких скоростях момент включения ЭПР выбирается с упреждением относительно момента перехода разведенных ножей через плоскость резания (вертикальную плоскость). Вместе с тем, как при малых, так и при больших упреждениях возможно неполное сведение ножей и, как следствие, «насечка» (неполное разрезание) раската либо двойной рез (повторное прохождение ножей через плоскость резания при сведенных барабанах).

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

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

Алгоритм работы системы управления иллюстрируется временной диаграммой, приведенной на рис. 5.2.

99

Рис. 5.2. Диаграмма работы системы

Перед началом прокатки оператор нажатием кнопки совершает контрольный рез ножницами. При этом измеряется интервал времени ТИ от момента выдачи команды на рез до момента срабатывания датчика сведения барабанов ДСБ (время инерционности механизма резания).

Цикл сведения ножниц отрабатывается за 2 оборота барабана. При этом

задержка ТВК на включение ЭПР определяется по формуле

 

ТВК = 2ТО – ТИ – ТВ,

(5.1)

где ТВ – время выдержки барабанов в сведенном положении перед резом. Величина ТВ обычно принимается равной четверти времени оборота ТО

(ТВ = 0,25ТО). Тогда формула (5.1) принимает вид

 

ТВК = 1,75ТО – ТИ.

(5.2)

Команда на рез выдается по окончании отсчета времени ТВК. Поскольку время инерционности ТИ может изменяться в процессе

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

Момент выключения ЭПР совпадает с моментом реза, который соответствует одновременному наличию сигналов датчиков Д и ДСБ.

Реализация в GENIE описанной системы представлена в виде стратегии, состоящей из двух экранных форм отображения (DISP1 и DISP2) и двух задач (TASK1 и TASK2). При этом в окнах TASK1 и DISP1 реализован алгоритм системы и пульт оператора-технолога, а в окнах TASK2 и DISP2 осуществлена имитация объекта управления. Для организации связи между задачами

100