1-RU-135602-1.1

Руководство пользователя

Используемые термины и сокращения

ПД-регулятор – пропорциональный регулятор с дифференциальной составляющей.

ПИ-регулятор – пропорционально-интегральный регулятор.

ПИД-регулятор – пропорционально-интегральный регулятор с дифференциальной составляющей.

ШИМ – широтно-импульсная модуляция.

Введение

Настоящее руководство описывает блоки библиотеки paControls, реализующей алгоритмы управления реального времени. Подразумевается, что читатель обладает базовыми навыками работы в среде Полигон, поэтому общие вопросы (например, создание и загрузка проектов) в данном документе не рассматриваются – они подробно описаны в документах Руководство по программированию. Библиотека paCore и Быстрый старт.

Данный документ актуален для версии среды Полигон1921, версии библиотеки paControls942 и выше.

Библиотека paControls

paControls – библиотека, которая обеспечивает обработку сигналов датчиков и реализует управление технологическими процессами.

Для добавления библиотеки paControls в проект следует:

  1. Перейти в меню Окна/Проекты. В появившемся окне отобразится текущий проект и добавленные библиотеки.

    Graphic
    Добавление библиотеки paControls в проект
  2. Нажать кнопку Открыть и перейти в папку с файлами библиотеки, которую необходимо добавить. Затем в выпадающем списке выбрать тип файла Библиотека Полигон 2 (*.ll2).

    Graphic
    Добавление библиотеки paControls в проект
  3. В окне появится файл библиотеки с расширением .ll2. Следует выбрать его и нажать Открыть.

    Graphic
    paControls

Добавленная библиотека отобразится в окне Проекты.

Регуляторы

Выдача данных с задержкой (DelayV)

Блок DelayV находится в разделе библиотеки Регуляторы. DelayV повторяет на выходе out значение входа in через заданный интервал времени.

Данный блок можно разместить только в Таймере.

Назначение входов и выходов DelayV
ЭлементОписание
Входы

dsk

Значение дискретизации времени, должно быть кратно таймерному циклу

dl

Время задержки в мс, должно быть кратно dsk

mdl

Время запоминания входного значения в мс, должно быть больше, чем dl

in

Входное значение

Выходы

out

Выходное значение, инициализируется 0

Graphic
Алгоритм DelayV
Graphic
Выдача данных с задержкой (DelayV)

Накапливающий сумматор со сбросом и инициализацией (fSum)

Блок fSum является накапливающим сумматором. Раздел библиотеки: Регуляторы.

Назначение входов и выходов fSum
ЭлементОписание
Входы

inp

Приращение выхода на текущем таймерном интервале

upr

Текущая величина инициализации сумматора

bal

Разрешение режима инициализации

Выходы

out

Текущее значение сумматора, инициализируется upr

Алгоритм:

bal = 0: out_i = out_(i-1) + inp_i; bal = 1: out_i = upr
Graphic

Интегратор (fIntT)

Блок fIntT является интегратором с постоянной времени Ti. Раздел библиотеки: Регуляторы.

Назначение входов и выходов fIntT
ЭлементОписание
Входы

inp

Вход интегратора

Ti

Постоянная времени интегратора в секундах

upr

Текущая величина инициализации интегратора

bal

Разрешение режима инициализации

Выходы

out

Текущее значение интегратора, инициализируется upr

Алгоритм:

bal = 0: out_i = out_(i-1) + inp_i ∙ t⁄Ti; bal = 1: out_i = upr

Передаточная функция inp → out:

G(s) = 1/(Ti ∙ s)
Graphic

Апериодическое звено (fExpT)

Блок fExpT является апериодическим звеном первого порядка с постоянной времени Tf. Раздел библиотеки: Регуляторы.

Назначение входов и выходов fExpT
ЭлементОписание
Входы

inp

Вход апериодического звена

Tf

Постоянная времени апериодического звена в секундах

bal

Разрешение режима балансировки

Выходы

out

Значение выхода апериодического звена, инициализируется inp

dif

Значение дифференциальной составляющей, инициализируется 0

Алгоритм:

bal = 0: out_i = out_(i-1) + (inp_i - out_(i-1)) ∙ (1 - exp(-t⁄Tf)), dif_i = inp_i - out_(i - 1); bal = 1: out_i = inp_i; dif_i = 0

Передаточные функции:

inp → out: G(s) = 1/(Tf ∙ s + 1); inp → dif: G(s) = Tf ∙ s/(Tf ∙ s + 1)
Graphic
Апериодическое звено (fExpT)

Задатчик (SetPoint)

Блок SetPoint является задатчиком управляющего сигнала. Сигнал формируется с учетом ограничений на величину и скорость изменения. Раздел библиотеки: Регуляторы.

Назначение входов и выходов SetPoint
ЭлементОписание
Входы

inp

Текущее приращение задания

inc

Команда на увеличение задания

dec

Команда на уменьшение задания

Tx

Время перекладки задания по командам inc и dec

max

Верхнее ограничение задания

min

Нижнее ограничение задания

upr

Текущая величина балансировки задатчика

bal

Разрешение балансировки

res

Команда сброса задатчика

Выходы

out

Текущее задание, инициализируется 0

uf

Признак достижения задатчиком верхнего ограничения, инициализируется 0

lf

Признак достижения задатчиком нижнего ограничения, инициализируется 0

Алгоритм:

res = 0: bal = 0: если dec = 1 → out+ = (min - max) ∙ t0/Tx, иначе если inc_i = 1 → out+ = (max - min) ∙ t0/Tx, иначе out+ = inp_i, если out > max → out = max, uf = 1, если out < min → out = min, lf = 1; bal = 1: out = upr, uf = lf = 0; res = 1: out = 0, uf = lf = 0
Graphic
Задатчик (SetPoint)

Линейный регулятор (Lcontr)

Блок Lcontr является линейным регулятором. Раздел библиотеки: Регуляторы.

Назначение входов и выходов Lcontr
ЭлементОписание
Входы

U

Вход

Us

Уставка

eps

Гистерезис

incr

Ручное увеличение

decr

Ручное уменьшение

man

Ручной режим

Выходы

incr

Увеличить, инициализируется 0

decr

Уменьшить, инициализируется 0

В зависимости от состояния входа man блок может функционировать в одном из двух режимов.

Если man = 0, то блок работает в режиме автоматического регулирования. Регулируемый параметр U сравнивается с уставкой Us: если рассогласование превышает величину eps (гистерезис), то выдается единица на один из выходов decr или incr, в зависимости от знака величины рассогласования.

Если man = 1, то блок работает в режиме ручного регулирования. В этом режиме регулируемая величина и ее уставка игнорируются, а состояние выходов напрямую задается состоянием входов decr и incr.

Graphic
Линейный регулятор (Lcontr)

Программное изменение уставки с заданным темпом (SetValue)

Блок SetValue производит постепенное изменение выходного значения out от val до aim с заданным темпом temp, контролируя статическое mse и динамическое mde отклонение сигнала out от значения aim. Раздел библиотеки: Регуляторы.

Назначение входов и выходов SetValue
ЭлементОписание
Входы

val

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

temp

Приращение

aim

Конечное значение

mde

Максимальная динамическая ошибка

mse

Максимальная статическая ошибка

enbl

Разрешение на работу

Выходы

out

Выход, инициализируется val

err

Флаг наличия динамической ошибки, инициализируется 0

fin

Конец, инициализируется 0

Алгоритм:

enbl = 1: если |out - aim| > mse → out = out + temp/(таймерный интервал), fin = 0, если |out - aim| > mde → err = 1, иначе out = aim, err = 0, fin = 1, иначе out = val, err = 0, fin = 0
Graphic
Программное изменение уставки с заданным темпом (SetValue)

Упрощенный ПД-регулятор (ImpUst)

Блок ImpUst выдает управляющие сигналы открытия opn и закрытия cls на двигатель (задвижку) с текущим положением P так, чтобы значение на входе приблизилось к значению уставки. Раздел библиотеки: Регуляторы.

Назначение входов и выходов ImpUst
ЭлементОписание
Входы

in

Текущее значение регулируемого параметра

ust

Значение уставки

dTm

Время таймерного интервала

T1

Время дискретизации управления (с таким интервалом будет производится выдача нового управления на выходы)

Kp

Коэффициент пропорциональности

Ti

Коэффициент изменения

Tv

Не используется

P

Текущее значение положения задвижки

dP

Гистерезис выставления положения

Выходы

opn

Команда открыть, инициализируется 0

cls

Команда закрыть, инициализируется 0

Pust

Рассчитанная уставка положения, инициализируется 0

Алгоритм:

Q = (in - ust)/dTm, dC = -(Kp ∙ Q + Ti ∙ (Q - Qпредыдущее)) ∙ 100, Pust = P + dC

В зависимости от значений Pust, P и dP выдается управление на выходы аналогично блоку Линейный регулятор.

Graphic
Упрощенный ПД-регулятор (ImpUst)

Управление задвижкой (ZD)

Блок ZD осуществляет импульсное управление задвижкой с помощью команд открыть o_o, закрыть o_c и стоп o_s. Длина выходного импульса для всех команд задается входом t_i в мс. Раздел библиотеки: Регуляторы.

Назначение входов и выходов ZD
ЭлементОписание
Входы

enbl

Разрешение на работу

c_o

Команда открыть

c_c

Команда закрыть

c_s

Команда стоп

a_o

Сигнал задвижка открыта

a_c

Сигнал задвижка закрыта

M

Местное управление

D

Автоматическое управление

alrm

Неисправность

rdy

Готовность

rst

Сброс

t_o

Время перекладки

t_i

Длина импульса, мс

t_ch

Пауза открытия/закрытия

typ

Не используется

Выходы

o_o

Открыть

o_c

Закрыть

o_s

Стоп

s_o

Задвижка открыта

s_c

Задвижка закрыта

s_p_o

Открывается

s_p_c

Закрывается

f_to

Таймаут

f_fo

Самоход на открытие

f_fc

Самоход на закрытие

f_f

Авария

f_DM

Ошибка местное-автоматическое управление

f_ard

Ошибка авария-готовность

f_ao

Ошибка концевых выключателей

f_c

Ошибка команд

Входные команды c_o, c_c, c_s передаются на выход, если задвижка готова к работе в автоматическом режиме: enbl = 1, D = 1, rdy = 1, alrm = 0, и отсутствуют (т.е. равны 0) ошибки f_DM, f_ard, f_ao, f_c.

Команда на открытие выдается при c_o = 1 и отсутствии концевого выключателя открытия a_o = 0. Затем при появлении концевого выключателя открытия a_o = 1, выдается команда стоп o_s. Аналогично обрабатывается команда закрытия.

Если во время открытия приходит команда на закрытие, то выдается команда стоп o_s и закрытие начинается через время t_ch в мс, и наоборот.

Если при открытии или закрытии соответствующий концевой выключатель не достигнут в течение времени t_o, то выдается ошибка таймаута f_to = 1 и команда стоп o_s.

Обработка ошибок:

  • f_DM = 1, если M = D;

  • f_ard = 1, если alrm = rdy;

  • f_ao = 1, если a_o = a_c = 1;

  • f_c = 1, если одновременно присутствуют две 1 на входах c_o, c_c, c_s.

Graphic
Управление задвижкой (ZD)

Блок приоритетов управления (Prior)

Блок Prior принимает управляющие команды от нескольких задач и выдает на выход команды приоритетной из активных задач (задача 0 имеет самый высокий приоритет). Раздел библиотеки: Регуляторы.

Назначение входов и выходов Prior
ЭлементОписание
Входы

b_o

Блокировка открытия (циклический)

b_c

Блокировка закрытия (циклический)

act

Задача активна (циклический)

c_o

Команда открыть (циклический)

c_c

Команда закрыть (циклический)

c_s

Команда стоп (циклический)

Выходы

c_o

Команда открыть

c_c

Команда закрыть

c_s

Команда стоп

b_o

Блокировка открытия (циклический)

b_c

Блокировка закрытия (циклический)

Задача i является активной, если вход acti = 1.

Команда открыть c_oi и команда закрыть c_ci передаются на выходы c_o и c_c, если отсутствуют (т. е. равны 0) соответствующие блокировки b_oi и b_ci, команда стоп c_si передается на выход c_s, где i – номер приоритетной активной задачи.

Значения блокировок всегда транслируются на выходы соответствующей задачи b_oi и b_ci без изменений.

Graphic
Блок приоритетов управления (Prior)

Блок управления агрегатом (BUA)

Блок BUA объединяет обработку блокировок, ошибок и ответных сигналов при управлении агрегатом конвейера. Раздел библиотеки: Регуляторы.

Назначение входов и выходов BUA
ЭлементОписание
Входы

pusk

Пуск

stop

Стоп

blk

Блокировка

rst

Сброс ошибок

SA

Разрешение

RD

Готовность

K

Включен

BD

Блокировка

S

Авария ленты

Tblk

Нижнее ограничение регулируемой величины

TR

Таймаут включен

TS

Таймаут ленты

Mdl

Симуляция

itr

Инициализация наработки

rtr

Сброс наработки

Выходы

Psk

Включить

K

Включен

Err

Ошибка

Sts

Статус

Blk

Блокировка

ready

Готовность

otr

Наработка

Graphic
Блок управления агрегатом (BUA)

Импульсный ПИД (ImpPid)

Блок ImpPid представляет собой ПИД-регулятор с коэффициентами Kp, Ki, Kd и постоянной времени интегрирования Ti. Раздел библиотеки: Регуляторы.

Назначение входов и выходов ImpPid
ЭлементОписание
Входы

in

Текущее значение

ust

Уставка

T1

Время дискретизации

Kp

Пропорциональная составляющая

Ki

Интегральная составляющая

Kd

Дифференциальная составляющая

Ti

Время интегрирования

P

Положение

dP

Гистерезис положения

en

Разрешение работы

Выходы

opn

Открыть

cls

Закрыть

Pust

Уставка положения

Регулятор стремится приблизить значение измеряемого параметра in к значению уставки ust за счет открытия opn и закрытия cls управляющего органа, текущее положение которого подается на вход P.

При разности в значениях in и ust менее 5 % от уставки на выход Pust подается значение гистерезиса положения. В противном случае к значению Pust добавляются рассчитанные пропорциональная, интегральная и дифференциальная составляющие.

Graphic
Импульсный ПИД (ImpPid)

Управление реле (SetSW)

Блок SetSW осуществляет потенциальное и импульсное управление реле с обратной связью. Раздел библиотеки: Регуляторы.

Назначение входов и выходов SetSW
ЭлементОписание
Входы

inp

Управление

ret

Обратная связь

cnt

Таймер ошибки

enb

Разрешение

Выходы

out

Потенциальное управление

on

Включить (импульсное)

off

Выключить (импульсное)

err

Ошибка

Выход потенциального управления out выставляется в 1, если управление inp и разрешение enb равны 1.

На выходах импульсного управления on и off выдаются импульсы длиной в один таймерный интервал (если блок находится в Таймере) соответственно при включении и выключении выхода out.

Ошибка err выдается, если обратный сигнал ret не появился в течение таймаута cnt (задается в миллисекундах). Для правильной работы таймера ошибки данный блок следует размещать в Таймере, а значения cnt задавать кратными времени таймерного цикла.

Graphic
Управление реле (SetSW)

Многорежимный генератор импульсов (AdvPulse)

Блок AdvPulse представляет собой таймер с несколькими режимами работы. Раздел библиотеки: Регуляторы.

Назначение входов и выходов AdvPulse
ЭлементОписание
Входы

x

Входной сигнал

T

Временная задержка в секундах

mod

Номер режима работы

Выходы

q

Выходной сигнал, инициализируется 0

Если Mod = 0, то по фронту x выставляется q = 1 на период T. По истечении T значение q сбрасывается на 0.

Если Mod = 1 (или любое другое значение кроме 0 и 2), то по фронту x выставляется q = 1 на период T. Спад x не влияет на состояние выхода. Повторное появление фронта x во время q = 1 не влияет на отсчет времени задержки.

Если Mod = 2, то по фронту x выставляется q = 1 на период T. Спад x не влияет на состояние выхода. Повторное появление фронта x во время q = 1 перезапускает отсчет времени задержки.

Graphic
Многорежимный генератор импульсов (AdvPulse)

Интегрирующий задатчик (TrackSum)

Блок TrackSum представляет собой интегрирующий задатчик. Раздел библиотеки: Регуляторы.

Для адекватной работы данного блока следует размещать его только в Таймере.

Назначение входов и выходов TrackSum
ЭлементОписание
Входы

x

Заданное значение

LU

Верхний предел интегрирования

LL

Нижний предел интегрирования

SV

Балансировочное значение выхода

TU

Время интегрирования от LL до LU в секундах

TD

Время интегрирования от LU до LL в секундах

CU

Бит включения интегрирования «вверх»

CD

Бит включения интегрирования «вниз»

CF

Бит включения задатчика

S

Бит включения балансировки

Выходы

Y

Текущее значение на выходе задатчика, инициализируется 0

YA

Приращение Y за таймерный цикл, инициализируется 0

QE

Бит индикации достижения x, инициализируется 0

QU

Бит индикации достижения LU, инициализируется 0

QL

Бит индикации достижения LL, инициализируется 0

При установленном бите CF производится достижение заданного значения x путем интегрирования «вверх» или «вниз» с заданным темпом (параметры TU или TD), если текущее значение выхода Y соответственно меньше или больше x. Если CF = 0, можно производить интегрирование от LL до LU или от LU до LL с заданным темпом (TU или TD), устанавливая биты CU или CD. Установка бита S позволяет остановить интегратор и получить на выходе значение, равное входному SV.

Graphic
Интегрирующий задатчик (TrackSum)

Идеальное/реальное дифференцирующее звено (Deriv_new)

Блок Deriv_new представляет собой идеальное или реальное дифференцирующее звено, в зависимости от величины Ta. Раздел библиотеки: Регуляторы.

Назначение входов и выходов Deriv_new
ЭлементОписание
Входы

x

Входная величина

Kd

Коэффициент усиления

Ta

Постоянная времени дифференцирования в секундах

Выходы

D

Выходная величина, инициализируется 0

При Ta > 2,5 величины таймерного цикла блок работает как реальное дифференцирующее звено с передаточной функцией:

G(s) = Kd ∙ s/(Ta ∙ s + 1)

При Ta ≤ 2,5 величины таймерного цикла блок работает близко к идеальному дифференцирующему звену с передаточной функцией:

G(s) = Kd ∙ s
Graphic
Идеальное/реальное дифференцирующее звено (Deriv_new)

Ограничитель ресурсов управления сервоприводом (LimUpr)

Блок LimUpr является ограничителем ресурсов управления, вычисляющим допустимый диапазон приращений сигнала управления сервоприводом с учетом ограничений на положение и скорость перемещения последнего. Раздел библиотеки: Регуляторы.

Назначение входов и выходов LimUpr
ЭлементОписание
Входы

H

Верхнее ограничение положения сервопривода в относительных единицах

Int

Текущее задание управления сервоприводом в относительных единицах

L

Нижнее ограничение положения сервопривода в относительных единицах

Srv

Текущее положение сервопривода в относительных единицах

R

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

Ts

Минимальное время перекладки сервопривода в секундах

Выходы

O_r

Ресурс управления на открытие

C_r

Ресурс управления на закрытие

O_u

Признак выхода сервопривода на верхнее ограничение

C_u

Признак выхода сервопривода на нижнее ограничение

Расчет состоит из последовательности операций сравнения и присваивания (по результатам сравнения) и выполняется с учетом следующих приоритетов:

  • скорость изменения задание управления ограничивается Ts,

  • верхнее ограничение H имеет приоритет над нижним L,

  • допустимое рассогласование ограничивается R.

Graphic
Ограничитель ресурсов управления сервоприводом (LimUpr)

Выбор режима (Mode)

Блок Mode осуществляет переключение режимов. Раздел библиотеки: Регуляторы.

Назначение входов и выходов Mode
ЭлементОписание
Входы

EN

Разрешение на работу блока

I

Управляющий бит (циклический)

Выходы

QC

Сигнализация о смене режима

Q

Выходной бит (циклический)

Graphic
Выбор режима (Mode)

Интегральный формирователь (IforP)

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

Назначение входов и выходов IforP
ЭлементОписание
Входы

inp

Вход формирователя

Ti

Постоянная времени интегрирования в секундах

min

Текущий ресурс на уменьшение

max

Текущий ресурс на увеличение

Выходы

I

Значение приращения выхода, инициализируется 0

min

Остаточный ресурс на уменьшение, инициализируется 0

max

Остаточный ресурс на увеличение, инициализируется 0

Алгоритм:

I_i = inp_i ∙ t_0/Ti; если I_i > max → I_i = max, если I_i < min → I_i = min, min_i = min - I_i, max_i = max - I_i

Передаточная функция inpI:

G(s) = 1/(Ti ∙ s)
Graphic
Интегральный формирователь (IforP)

ПД-формирователь (fPDT)

Блок fPDT является модификацией блока Апериодическое звено. Раздел библиотеки: Регуляторы.

Назначение входов и выходов fPDT
ЭлементОписание
Входы

inp

Вход формирователя

Tf

Постоянная времени фильтра в секундах

Tv

Постоянная времени дифференцирования в секундах

bal

Разрешение режима балансировки

Выходы

out

Значение пропорциональной составляющей, инициализируется inp

dif

Значение дифференциальной составляющей, инициализируется 0

Алгоритм:

bal = 0: out_i = out_(i - 1) + (inp_i - out_(i - 1)) ∙ (1 - exp(-t⁄Tf)), dif_i = (inp_i - out_(I - 1)) ∙ Tv⁄Tf; bal = 1: out_i = inp_i; dif_i = 0

Передаточные функции:

inp → out: G(s) = 1/(Tf ∙ s + 1); inp → dif: G(s) = Tv ∙ s/(Tf ∙ s + 1)
Graphic
ПД-формирователь (fPDT)

Импульсный регулятор (DCtrl)

Блок DCtrl реализует ПД-регулятор с импульсными выходными сигналами. Раздел библиотеки: Регуляторы.

Назначение входов и выходов DCtrl
ЭлементОписание
Входы

inp

Рассогласование на входе в регулятор

dz

Мертвая зона обработки рассогласования

Kp

Коэффициент усиления пропорциональной составляющей ПД-регулятора

Kd

Коэффициент усиления дифференциальной составляющей ПД-регулятора

Td

Постоянная времени регулятора (реального дифференциатора)

H

Регулируемая величина на верхнем ограничении

L

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

Vlim

Регулируемая величина

maxV

Верхнее ограничение регулируемой величины

minV

Нижнее ограничение регулируемой величины

Kv

Коэффициент усиления ограничительного регулятора

dl

Гистерезис ограничения

T

Время периода одного импульса

tmin

Минимальное время выходного импульса

Smax

Максимальная скважность выходного импульса

Enbl

Разрешение работы блока

her

Рассогласование, считающееся ошибкой после переходного процесса

Ter

Постоянная времени апериодического процесса накопления ошибки

Rer

Сброс ошибки

Выходы

Up

Импульсы на увеличение регулируемой величины

Dw

Импульсы на уменьшение регулируемой величины

PrY

Пропорциональная составляющая выходного сигнала регулятора

DfY

Дифференциальная составляющая выходного сигнала регулятора

LmU

Регулируемая величина на верхнем ограничении

LmD

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

Err

Ошибка регулирования (неотработка)

При наличии сигнала на входе Enbl вычисления внутри блока не производятся (за исключением вычисления суммарной накопленной ошибки Serr), а LmU, LmD = 0. Err выставляется, если накопленная ошибка Serr (внутренняя переменная) становится больше, чем her. Serr накапливается по апериодическому закону с постоянной времени Ter. Если регулируемая величина находится на верхнем или нижнем ограничении (LmU, LmD), то Serr не накапливается. Как только сигнал поступает, Rer, Err и Serr сбрасываются до 0.

Graphic
Импульсный регулятор (DCtrl)

ПИ-регулятор (PIC)

Блок PIC реализует ПИ-регулятор. Раздел библиотеки: Регуляторы.

Для адекватной работы блока необходимо размещать его только в Таймере.

Назначение входов и выходов PIC
ЭлементОписание
Входы

SP

Внешнее корректирующее значение в %

ERR

Рассогласование регулируемой величины с заданием в %

MAX

Максимальное значение на выходе Y в %

MIN

Минимальное значение на выходе Y в %

SV

Балансировочное значение выхода

SET

Бит включения балансировки

KP

Коэффициент пропорциональности ПИ-регулятора

TI

Постоянная времени интегратора в секундах

KSP

Коэффициент усиления в ветви SP

HIN

Бит остановки интегратора

Выходы

Y

Выходное значение регулятора, инициализируется 0

YI

Выходное значение с интегратора регулятора, инициализируется 0

QU

Бит индикации достижения MAX, инициализируется 0

QL

Бит индикации достижения MIN, инициализируется 0

Graphic
ПИ-регулятор (PIC)

ПИД-регулятор (PID)

Блок PID реализует ПИД-регулятор. Раздел библиотеки: Регуляторы.

Для адекватной работы блока необходимо размещать его только в Таймере.

Назначение входов и выходов PID
ЭлементОписание
Входы

E

Разрешение на работу блока (в выключенном состоянии на выход блока подается значение, заданное на входе Poff)

Pv

Текущее значение регулируемой величины

Sp

Заданное значение регулируемой величины

Rr

Режим работы регулятора:

0 – нагреватель;

1 – холодильник

Poff

Выходная мощность в выключенном состоянии: 0…100 %, по умолчанию 20

d

Дельта ошибки. Если |Sp - Pv| > d, то блок продолжает расчет коэффициентов, по умолчанию 0

hys

Гистерезис. Если |Sp - Pv| < hys, то блок передает на выход прошлую рассчитанную мощность, должен быть меньше или равен дельте ошибки d, по умолчанию 0

Kp

Пропорциональный коэффициент, с которым работает ПИД-регулятор, по умолчанию 2

Ki

Интегральный коэффициент, с которым работает ПИД-регулятор, по умолчанию 0,01

Kd

Дифференциальный коэффициент, с которым работает ПИД-регулятор, по умолчанию 0,01

Min

Минимальная мощность, нижнее ограничение выдаваемой мощности: 0…100 %, по умолчанию 20

Max

Максимальная мощность, верхнее ограничение выдаваемой мощности: 0…100 %, по умолчанию 80

Выходы

out

Выходная мощность, 0…100 %. При выключенном блоке (Е = 0) на выход подается значение Poff

st

Статус ошибок:

0 – нормальная работа;

1 – выходная мощность в выключенном состоянии не в допуске;

2 – пропорциональный коэффициент не в допуске;

3 – значения Min и/или Max не в допуске и/или значение Min больше значения Max

P

Пропорциональная составляющая

I

Интегральная составляющая

D

Дифференциальная составляющая

Для настройки регулятора нужно варьировать коэффициенты:

  • при увеличении Kp увеличивается скорость выхода на установленное значение, увеличивается управляющий сигнал. Чисто математически система не может прийти ровно к заданному значению, так как при приближении к уставке Sp составляющая пропорционально уменьшается. При дальнейшем увеличении Kp реальная система теряет устойчивость и начинаются колебания;

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

  • при увеличении Kd растет стабильность системы, она не дает системе меняться слишком быстро. В то же время Kd может стать причиной неадекватного поведения системы и постоянных скачков управляющего сигнала, если значение с датчика «шумит».

Graphic
ПИД-регулятор (PID)

Импульсный ПИ-регулятор (IPIC)

Блок IPIC реализует импульсный ПИ-регулятор. Применяется с интегрирующими исполнительными механизмами и служит для управления техническими процессами с помощью двоичных управляющих сигналов «больше-меньше». Раздел библиотеки: Регуляторы.

Для адекватной работы блока необходимо размещать его только в Таймере.

Назначение входов и выходов IPIC
ЭлементОписание
Входы

Enbl

Бит разрешения работы блока

COM_RST

Бит сброса и перезагрузки регулятора

H

Сигнал верхнего ограничения управляемого исполнительного элемента

L

Сигнал нижнего ограничения управляемого исполнительного элемента

LMNRS_ON

Разрешение имитации датчика положения управляемого исполнительного элемента

LMNRSVAL

Начальное значение имитируемого положения в %

LMNS_ON

Разрешение действия внешних команд «больше-меньше»

LMNUP

Внешний сигнал управления «больше»

LMNDN

Внешний сигнал управления «меньше»

inp

Рассогласование регулируемой величины в % от базового значения

Dband

Ширина зоны нечувствительности в % от базового значения

KP

Коэффициент пропорциональной составляющей

TI

Постоянная времени интегральной составляющей в секундах

PULSE_TM

Минимальная длительность импульса управления в секундах

BREAK_TM

Минимальная длительность паузы в секундах

MTR_TM

Время полного хода привода между крайними положениями в секундах

DISV

Вход дополнительного внешнего возмущающего воздействия: -100,0...100,0 %

SV_YI

Значение балансировки интегральной составляющей в %

SET

Команда балансировки интегральной составляющей

Выходы

UP

Импульсы на открытие управляемого элемента, инициализируется 0

DN

Импульсы на закрытие управляемого элемента, инициализируется 0

PrY

Значение пропорциональной составляющей выходного сигнала регулятора в %, инициализируется 0

YI

Значение интегральной составляющей выходного сигнала регулятора в %, инициализируется 0

OPEN

Бит индикации достижения открытого положения управляемого элемента, инициализируется 0

CLOSE

Бит индикации достижения закрытого положения управляемого элемента, инициализируется 0

Err_V

Значение ошибки регулирования с учетом зоны нечувствительности в %, инициализируется 0

LMNR_SIM

Имитированное значение обратной связи по положению арматуры в %

Q_dInteg

Приращение интегратора за цикл в %

Q_TI

Фактическое значение постоянной интегрирования в секундах

Q_dThrStIn

Значение на входе трех-порогового элемента в %

Q_sThrOn

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

Q_rThrOff

Порог отключения в %

Q_stImpDauer

Обратный отсчет минимальной длительности импульса в секундах

Q_stPausDauer

Обратный отсчет минимальной длительности паузы в секундах

Graphic
Импульсный ПИ-регулятор (IPIC)

Импульсный ПД-регулятор с балансировкой (IPDC)

Блок IPDC реализует ПД-регулятор с импульсными выходными сигналами, формируемыми генератором ШИМ. Раздел библиотеки: Регуляторы.

Для адекватной работы блока необходимо размещать его только в Таймере.

Назначение входов и выходов IPDC
ЭлементОписание
Входы

inp

Рассогласование на входе в регулятор в % от базовой величины

dz

Мертвая зона обработки рассогласования в % от базовой величины

Kp

Коэффициент усиления пропорциональной составляющей ПД-регулятора

Kd

Коэффициент усиления дифференциальной составляющей ПД-регулятора

Ta

Постоянная времени апериодического звена реального дифференциатора в секундах

H

Регулируемая величина на верхнем ограничении

L

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

Vlim

Регулируемая величина

maxV

Верхнее ограничение регулируемой величины

minV

Нижнее ограничение регулируемой величины

Kv

Коэффициент усиления ограничительного П-регулятора

dl

Гистерезис ограничения

T

Время периода одного импульса ШИМ в секундах

tmin

Минимальное время выходного импульса в секундах

Smax

Максимальная скважность выходного импульса от tmin/T до 1

Enbl

Разрешение работы блока

her

Рассогласование, считающееся ошибкой после переходного процесса

Ter

Постоянная времени апериодического процесса накопления ошибки

Rer

Сброс накопления ошибки

SV

Значение балансировки апериодического звена реального дифференциатора

SET

Команда балансировки

Выходы

Up

Импульсы на увеличение регулируемой величины

Dw

Импульсы на уменьшение регулируемой величины

PrY

Пропорциональная составляющая выходного сигнала регулятора

DfY

Дифференциальная составляющая выходного сигнала регулятора

AperY

Выходной сигнал апериодического звена реального дифференциатора

LmH

Регулируемая величина на верхнем ограничении

LmL

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

LmU

Сработал ограничительный регулятор на повышение

LmD

Сработал ограничительный регулятор на понижение

Err

Наличие ошибки регулирования (неотработки)

При наличии на входе регулятора значения рассогласования вне заданной мертвой зоны производится расчет выходного сигнала регулятора в виде суммы пропорциональной и дифференциальной составляющих. Далее выходной сигнал регулятора подается на вход ШИМ-генератора, который преобразует данный сигнал в сигналы управления «больше-меньше» с длительностью в пределах заданного периода ШИМ.

При наличии сигнала на входе Enbl вычисления внутри блока не производятся (за исключением вычисления суммарной накопленной ошибки Serr), а LmU и LmD = 0. Err выставляется, если накопленная ошибка Serr (внутренняя переменная) становится больше, чем her. Serr накапливается по апериодическому закону с постоянной времени Ter. Если регулируемая величина находится на верхнем или нижнем ограничении (LmU, LmD), то Serr не накапливается. При поступлении сигнала Rer, Err и Serr сбрасываются в 0.

Graphic
Импульсный ПД-регулятор с балансировкой (IPDC)

Интегрирующий задатчик (TrackRamp)

Блок TrackRamp представляет собой интегрирующий задатчик. Раздел библиотеки: Регуляторы.

Для адекватной работы данного блока необходимо размещать его только в Таймере.

Назначение входов и выходов TrackRamp
ЭлементОписание
Входы

x

Заданное значение

LU

Верхний предел интегрирования

LL

Нижний предел интегрирования

SV

Балансировочное значение выхода

RU

Темп интегрирования от LL до LU, параметр/секунда

RD

Темп интегрирования от LU до LL, параметр/секунда

CU

Бит включения интегрирования «вверх»

CD

Бит включения интегрирования «вниз»

CF

Бит включения задатчика

S

Бит включения балансировки

Выходы

Y

Текущее значение на выходе задатчика, инициализируется 0

YA

Приращение Y за таймерный цикл, инициализируется 0

QE

Бит индикации достижения x, инициализируется 0

QU

Бит индикации достижения LU, инициализируется 0

QL

Бит индикации достижения LL, инициализируется 0

При установленном бите CF производится достижение заданного значения x путем интегрирования «вверх» или «вниз» с заданным темпом (параметры RU или RD), если текущее значение выхода Y соответственно меньше или больше x. Если CF = 0, можно производить интегрирование от LL до LU или от LU до LL с заданным темпом (RU или RD), устанавливая биты CU или CD. Установка бита S позволяет остановить интегратор и получить на выходе значение, равное входному SV.

Graphic
Интегрирующий задатчик (TrackRamp)

Идеальное/реальное дифференцирующее звено с балансировкой (rDIF)

Блок rDIF представляет собой реальное или идеальное дифференцирующее звено, в зависимости от величины Ta. Раздел библиотеки: Регуляторы.

Для адекватной работы блока необходимо размещать его только в Таймере.

Назначение входов и выходов rDIF
ЭлементОписание
Входы

x

Входная величина

Kd

Коэффициент усиления по производной

Ta

Постоянная времени апериодического звена в секундах

Bal

Бит балансировки апериодического звена

Выходы

Y_diff

Выходной сигнал производной в X/сек

Y_aper

Выходной сигнал апериодического звена

При Ta > 2,5 величины таймерного цикла блок работает как реальное дифференцирующее звено с передаточными функциями:

x → Y_diff: Kd ∙ s/(Ta ∙ s + 1), x → Y_aper: 1/(Ta ∙ s + 1)

При Ta ≤ 2,5 величины таймерного цикла блок работает близко к идеальному дифференцирующему звену с передаточной функцией:

G(s) = Kd ∙ s

При подаче активного логического сигнала на вход Bal выход апериодического звена Y_aper балансируется значением входного сигнала X.

Graphic

Многорежимный генератор импульсов с балансировкой (AdvPulseB)

Блок AdvPulseB представляет собой таймер с несколькими режимами работы. Раздел библиотеки: Регуляторы.

Для адекватной работы блока необходимо размещать его только в Таймере.

Назначение входов и выходов AdvPulseB
ЭлементОписание
Входы

x

Входной сигнал

T

Временная задержка в секундах (должно быть кратным таймерному циклу)

mod

Номер режима работы

S_RT

Значение балансировки оставшейся длительности импульса в секундах

bal

Бит балансировки

Выходы

q

Выходной сигнал, инициализируется 0

Rem_T

Оставшееся значение длительности импульса в секундах (счетчик обратного отсчета)

Если Mod = 0, то по фронту x выставляется q = 1 на период T. По истечении T выход сбрасывается в 0.

Если Mod = 1 (или любое другое значение кроме 0 и 2), то по фронту x выставляется q = 1 на период T. Спад x не влияет на состояние выхода. Повторное появление фронта x не влияет на отсчет времени задержки, пока q = 1.

Если Mod = 2, по фронту x выставляется q = 1 на период T. Спад x не влияет на состояние выхода. Повторное появление фронта x при q = 1 перезапускает отсчет времени задержки.

При подаче на вход bal активного логического сигнала выход q балансируется значением на входного сигнала x, а значение счетчика обратного отсчета длительности импульса балансируется значением на входе S_RT.

Graphic
Многорежимный генератор импульсов с балансировкой (AdvPulseB)

Обработка сигналов

Фильтр Баттерворта 3-го порядка (fBatt)

Блок fBatt является колебательным звеном третьего порядка c постоянной времени Ti. Раздел библиотеки: Обработка сигналов.

Для адекватной работы фильтра необходимо размещать данный блок в Таймере.

Назначение входов и выходов fBatt
ЭлементОписание
Входы

inp

Вход фильтра

Ti

Постоянная времени фильтра в секундах

bal

Разрешение режима балансировки

Выходы

o3

Значение выхода фильтра Баттерворта 3-го порядка, инициализируется inp

out

Значение выхода апериодического звена первого порядка, инициализируется inp

Алгоритм:

bal = 0: out_i = out_(i-1) + (inp_i – out_(i-1)) ∙ (1 – exp(-t⁄Ti)); bal = 1: out_i = out3_i = inp_i

Передаточная функция inp → out:

G(s) = 1/(Tf ∙ s + 1)

Передаточная функция inp → o3:

G(s) = (Tf ∙ s + 1)/(Tf^2 ∙ s^2 + sqrt(2) ∙ Tf ∙ s + 1)
Graphic
Фильтр Баттерворта 3-го порядка (fBatt)

Преобразование int-аналоговый вход во float с масштабированием (Sensor)

Блок Sensor осуществляет масштабирование входного сигнала I из интервала [minx...maxx] в интервал [miny…maxy] и фильтрацию сигнала с помощью Фильтра Баттерворта 3-го порядка с постоянной времени Т. Раздел библиотеки: Обработка сигналов.

Назначение входов и выходов Sensor
ЭлементОписание
Входы

I

Сигнал от датчика

err

Не используется

Terr

Не используется

minx

Минимум входа

maxx

Максимум входа

miny

Минимум

maxy

Максимум

minr

Минимальный достоверный

maxr

Максимальный достоверный

T

Постоянная времени

bal

Балансировка

simv

Значение симуляции

simi

Симуляция

Выходы

val

Текущее значение сумматора, инициализируется upr

err

Не используется

uf

Сигнал – значение больше maxr

if

Сигнал – значение меньше minr

simo

Режим симуляции

vals

Текущее значение после масштабирования

В блоке предусмотрен режим симуляции (включен при simi = 1), при котором значение simv передается на выход val без обработки.

Значение val, полученное после обработки и симуляции, проверяется на соответствие интервалу достоверности [minr…maxr]. Если val < minr, lf = 1. Если val > maxr, uf = 1.

Graphic
Преобразование int-аналоговый вход во float с масштабированием (Sensor)

Преобразование 4…20 мА в реальные единицы измерения (asensor)

Блок asensor используется для обработки сигнала 4…20 мА. Блок масштабирует входной ток в реальные единицы измерения, формирует предупредительные и аварийные сигналы при выходе масштабированного сигнала за диапазон. Раздел библиотеки: Обработка сигналов.

Назначение входов и выходов asensor
ЭлементОписание
Входы

val

Входное значение в мА

Tf

Постоянная времени фильтра в секундах

max

Калибровка при 20 мА (значение out при val = 20 мА)

min

Калибровка при 4 мА (значение out при val = 4 мА)

hist

Гистерезис для формирования уставок hi, lo и т. д.

hi

Уставка высокого уровня срабатывания

hihi

Уставка аварийно-высокого уровня срабатывания

lo

Уставка низкого уровня срабатывания

lolo

Уставка аварийно-низкого уровня срабатывания

dtAI

Время срабатывания hi, lo, err, мс

dtTr

Время срабатывания hihi, lolo, err, мс

err

Ошибка измерения

link

Не используется

init

Инициализация

Выходы

I

Трансляция входа val

ouF

Откалиброванное значение по min…max

eri

Трансляция входа err

Thi

Сигнал достижения уставки hi после задержки dtAI

Tahi

Сигнал достижения уставки hihi после задержки dtTr

Tlo

Сигнал достижения уставки lo после задержки dtAI

Talo

Сигнал достижения уставки lolo после задержки dtTr

Graphic
Преобразователь 4…20 мА в реальные единицы измерения (asensor)

Апериодический фильтр 2-го порядка (fFlt2T)

Блок fFlt2T является апериодическим звеном второго порядка c постоянной времени Ti. Раздел библиотеки: Обработка сигналов.

Для адекватной работы фильтра необходимо размещать данный блок в Таймере.

Назначение входов и выходов fFlt2T
ЭлементОписание
Входы

inp

Вход апериодического звена

Tf

Постоянная времени апериодического звена в секундах

bal

Разрешение режима балансировки

Выходы

o2

Значение выхода апериодического звена второго порядка, инициализируется inp

out

Значение выхода апериодического звена, инициализируется inp

Алгоритм:

bal = 0: out_i = out_(i-1) + (inp_i - out_(i-1)) ∙ (1 - exp(-t⁄Tf)), o2_i = o2_(i-1) + (out_i – o2_(i-1)) ∙ (1 - exp(-t⁄Tf)), bal = 1: out_i = o2_i = inp_i

Передаточные функции:

inp → out: G(s) = 1/(Tf ∙ s + 1); inp → o2: G(s) = 1/(Tf^2 ∙ s^2 + Tf ∙ s + 1)
Graphic
Апериодический фильтр 2-го порядка (fFlt2T)

Блок компенсации запаздывания сигнала (LEADLAG)

Блок LEADLAG представляет собой параллельное соединение реального дифференцирующего звена и апериодического звена первого порядка. Раздел библиотеки: Обработка сигналов.

Для адекватной работы фильтра необходимо размещать данный блок в Таймере.

Назначение входов и выходов LEADLAG
ЭлементОписание
Входы

x

Входная величина

Kd

Коэффициент усиления по производной

Ta

Постоянная времени апериодического звена в секундах

Bal

Бит балансировки апериодического звена

Выходы

Y

Выходной сигнал

Y_diff

Выходной сигнал производной, x

Y_aper

Выходной сигнал апериодического звена

Апериодическое звено реального дифференциатора и параллельное апериодическое звено имеют одинаковые постоянные времени Та.

Входная величина x подается на вход идеального дифференциатора с динамической задержкой, равной постоянной времени сглаживания (выход Y_diff), а также на вход апериодического звена с постоянной времени сглаживания (выход Y_aper).

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

При Та > 2,5 величины таймерного цикла блок работает с передаточными функциями:

x → Y_diff: G(s) = Kd ∙ (S)/(Ta ∙ s + 1); x → Y_aper: G(s) = 1/(1 + Ta ∙ s); x → Y: G(s) = Y_aper + Y_diff = [Kd ∙ (S)/(Ta ∙ s + 1)] + + [1/(1 + Ta ∙ s)] = (1 + Kd ∙ s)/(1 + Ta ∙ s)

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

При Та 2,5 величины таймерного цикла блок работает близко к ПД-регулятору с коэффициентом пропорциональности kp = 1 и передаточной функцией:

G(s) = (1 + Kd ∙ s)
Graphic
Блок компенсации запаздывания сигнала (LEADLAG)