Системы сбора данных и оперативного диспетчерского управления, страница 11

В окне редактора задач расположены два “Блока ТЭГ”, связанные с кнопками движения,  от них сигнал поступает на “Блоки дискретного вывода”, что и позволяет управлять двигателем.

Другой вариант стратегии управления двигателем (motor2_!.gni) показан на рисунке 50. По выпллняемым функциям эта стратегия аналогична предыдущей за  исключением того, что используются не зависимые кнопки, а кнопки с фиксацией.  Для предотвращения появления единиц на выходных каналах управления двигателем используется небольшая логическая схема в редакторе задач, состоящая из двух блоков “Not” и двух блоков “And”.

Рисунок 50 - Управление двигателем 2.

Третий вариант (motor3_!.gni) отличен от предыдущего тем, что вместо “Блоков ТЭГ” и логической схемы используется “Блок бейсик – сценария”, в котором и обеспечивается защита двигателя, препятствующая одновременному появлению на двух выходах управления единиц (рисунок 51).

Рисунок 51 - Управление двигателем 3

Текст программы “Блока бейсик – сценария приведен ниже:

Sub SCR1()

dim b1 as Tag

dim b2 as Tag

set b1 = GetTag ("DISP2","BBTN4")

set b2 = GetTag ("DISP2","BBTN5")

If (b1 = 1) and (b2 = 1) then

  outputi 0,0 

‘ если нажаты обе кнопки, то на выходы управления подать нули

  outputi 1,0

 else

  outputi 0,b1

  outputi 1,b2

end if

End Sub

Задание

1.  Загрузив файлы стратегий motor1.gni, motor2.gni, motor1.gni, ознакомтесь с вариантами управления в режиме эмуляции.

2.  Реализуйте схемы,приведенные на рисунках 49, 50, 51

6.6 Лабораторная работа №5.Двухпозиционное регулирование вращения двигателя

Более усложненным вариантом задачи управления двигателем можно считать двухпозиционное регулирование положнния вала исполнительного механизма. В наборе инструментов редактора задач Genie имеется “Блок двухпозиционного регулирования”. Данный блок предназначен для реализации простейшего алгоритма двухпозиционного управления и имеет вход, на который подается сигнал датчика проложения объекта управления, и дискретный выход, логическое состояние которого зависит от текущего значения на входе, заданной уставки и значений порогов включения и выключения. Предельные значения в этом блоке рассчитываются следующим образом: верхний предел = уставка + порог включения; нижний предел = уставка -  порог выключения. Выход “Блока двухпозиционного регулирования” принимает значение 1, в случае когда значение на входе выше верхнего предела и значение 0, когда входное значение меньше нижнего предела.

В рассматриваемой стратегии (рисунок 52) сигнал от датчика положения, прошедший с целью сглаживания помех через блок усреднения (AVG1) , поступает на “Блок двухпозиционного регулирования” (ONF1), пороги включения и выключения которого, установлены  в данном примере "6" и "3" соответственно. Значение уставки поступает от “Блока ТЭГ” (SPIN1), связанного с движковым регулятором “Ниж. граница”, расположенным на форме отображения (рисунок 53). В “Блоках вычисления с одним оператором” “Нижняя граница” и “Верхняя граница” высчитываются нижнее и верхнее предельные значения соответственно для демонстрации их на графике формы отображения.

Результатом работы “Блока двухпозиционного регулирования” являются дискретные значения на блоках “1-й канал” и “2-й канал”, которые и управляют вращением двигателя.

В момент достижения одного из предельных состояний, на блоках «1-й канал» и «2-й канал» меняются значения на противоположные, что означает мгновенный реверс двигателя. Чтобы избежать такой ситуации “Блок бейсик-сценария” (SCR1) выполняет временную задерку в момент переключения каналов. Значение задержки (в 0.1 сек) вводится на форме отображения инкрементным регулятором. Два дискретных выхода этого блока, управляющие вращением, логически умножаются на состояние кнопки “Вывод сигналов на двигатель” формы отображения. Т.е. если данная кнопка не нажата, то управляющие сигналы, формирующиеся в стратегии на плату ввода-вывода не передаются. В блоке SCR2 реализована защита от появления единицы на обоих управляющих выходах. Выходы этого блока соединены с «Блоками дискретного вывода».

Рисунок 52 - Окно редактора задач двухпозиционного регулирования

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

Рисунок 53 - Форма отображения двухпозиционного регулирования

Текст “Блока бейсик-сценария”, ответственного за задержку:

Sub SCR1()

dim Ch0 as Tag

dim Ch1 as Tag

dim Ch as Tag

dim F as Tag

dim B as Tag

dim C as Tag

dim T as Tag

dim Ti as Tag

set Ch0 = GetTag("TASK1","SOC3")

' Первый канал

set Ch1 = GetTag("TASK1","SOC2")

' Второй канал

set Ch = GetTag("VIRTASK","CHANNEL")

' Активный канал в предыдущей итерации стратегии:

          ' 0 - первый; 1 - второй

set F = GetTag("VIRTASK","FLAG")

' Признак смены канала и выполнения паузы

set B = GetTag("VIRTASK","BEGIN")

' Признак начала выполнения стратегии

set C = GetTag("VIRTASK","COUNT")

' Счет времени паузы

set T = GetTag("TASK1","ET1")

set Ti = GetTag("DISP1","NCTL1")

outputi 7,0

' Команда таймеру на счет

if B = 0 then

  if (Ch = 1) and (Ch0 = 1) then  

' Если сменился канал, то обнулить переменную счетчик

' и сбросить таймер.

    outputi 7,1                                                  

    F = 1             C = 0                                                            

  end if