Библиотека создаётся для предоставления функций различных алгоритмов регулирования и может быть использована в программируемых логических контроллерах (ПЛК) на основе OpenSCADA для построения схем управления. Библиотека не является статической, а строится на основе модуля JavaLikeCalc, позволяющего создавать вычисления на Java-подобном языке.
Для адресации к функциям этой библиотеки можно использовать статический адрес вызова "DAQ.JavaLikeCalc.lib_regEl.{Func}()" или динамический "SYS.DAQ.JavaLikeCalc["lib_regEl"]["{Func}"].call()", "SYS.DAQ.JavaLikeCalc["lib_regEl"].{Func}()". Где {Func} — идентификатор функции в библиотеке.
Подключить библиотеку к проекту станции OpenSCADA можно путём загрузки вложенного файла БД, размещения его в директории БД проекта станции и создания объекта БД для модуля БД "SQLite", указав файл БД в конфигурации.
1 Состав библиотеки
В своём составе библиотека содержит несколько функций часто востребованных при создании схем регулирования. Названия функций и их параметров доступны на трёх языках: Английский, Украинский и Российский.
ПИД (унифицированный) (pidUnif)
Описание: Совмещённый-унифицированный аналоговый и импульсный ПИД-регулятор. В основе регулятора лежит ядро стандартного аналогового ПИД-регулятора из библиотеки "FLibComplex1" и реализация ШИМ для импульсной части. Параметры:
ID
Параметр
Тип
Режим
Скрытый
По умолчанию
var
Переменная
Веществ.
Вход
false
0
sp
Задание
Веществ.
Вход
false
0
max
Максимум шкалы
Веществ.
Вход
false
100
min
Минимум шкалы
Веществ.
Вход
false
0
manIn
Ручной ввод
Веществ.
Вход
false
0
out
Выход (%)
Веществ.
Возврат
false
0
impQup
Имп. выход вверх
Логич.
Выход
false
0
impQdwn
Имп. выход вниз
Логич.
Выход
false
0
analog
Аналоговый
Логич.
Вход
false
1
auto
Автомат
Логич.
Вход
false
0
casc
Каскад
Логич.
Вход
false
0
Kp
Kп
Веществ.
Вход
false
1
Ti
Tи (мс)
Целый
Вход
false
1000
Kd
Кп производной
Веществ.
Вход
false
1
Td
Tд (мс)
Целый
Вход
false
0
Tzd
T задержки диференциров. (мс)
Целый
Вход
false
0
TImpPer
T период импульса (мс)
Целый
Вход
false
5000
TImpMin
T минимальная длина импульса (мс)
Целый
Вход
false
500
KImpRfact
Рейтинг фактор импульса
Веществ.
Вход
false
1
Hup
Верхняя граница выхода (%)
Веществ.
Вход
false
100
Hdwn
Нижняя граница выхода (%)
Веществ.
Вход
false
0
Zi
Нечувствительность (%)
Веществ.
Вход
false
0
followSp
Следить заданием за переменной в ручном
Логич.
Вход
false
1
K1
Коеф. входа 1
Веществ.
Вход
false
0
in1
Вход 1
Веществ.
Вход
false
0
K2
Коеф. входа 2
Веществ.
Вход
false
0
in2
Вход 2
Веществ.
Вход
false
0
K3
Коеф. входа 3
Веществ.
Вход
false
0
in3
Вход 3
Веществ.
Вход
false
0
K4
Коеф. входа 4
Веществ.
Вход
false
0
in4
Вход 4
Веществ.
Вход
false
0
impAnOut
Аналоговое положение импульсного регулятора или скорость хода крана (%/с) при имитации.
Веществ.
Вход
false
0
impAnImit
Имитация аналогового положения
Логич.
Вход
false
0
impQupTm
Имп. выход вверх удерж. для GUI
Целый
Выход
false
0
impQdwnTm
Имп. выход вниз удерж. для GUI
Целый
Выход
false
0
f_frq
Частота вычисления (Гц)
Целый
Вход
true
1
f_start
Первый запуск
Логич.
Вход
true
0
f_stop
Последний запуск
Логич.
Вход
true
0
int
Накопление интеграла
Веществ.
Выход
true
0
dif
Накопление производной
Веществ.
Выход
true
0
lag
Накопление задержки
Веществ.
Выход
true
0
impLag
Время удержания импульса
Веществ.
Выход
true
0
perLag
Время генерации нового импульса
Веществ.
Выход
true
0
Структура:
PID динамический (pidUnifD)
Описание: Полностью идентичный унифицированному ПИД регулятор, реализованный динамически на JavaLikeCalc. Динамическая реализация позволяет легко адаптировать регулятор под нужные требования, просто отредактировав его. Параметры:
ID
Параметр
Тип
Режим
Скрытый
По умолчанию
var
Переменная
Веществ.
Вход
false
0
sp
Задание
Веществ.
Вход
false
0
max
Максимум шкалы
Веществ.
Вход
false
100
min
Минимум шкалы
Веществ.
Вход
false
0
manIn
Ручной ввод
Веществ.
Вход
false
0
out
Выход (%)
Веществ.
Возврат
false
0
impQup
Имп. выход вверх
Логич.
Выход
false
0
impQdwn
Имп. выход вниз
Логич.
Выход
false
0
analog
Аналоговый
Логич.
Вход
false
1
auto
Автомат
Логич.
Вход
false
0
casc
Каскад
Логич.
Вход
false
0
Kp
Kп
Веществ.
Вход
false
1
Ti
Tи (мс)
Целый
Вход
false
1000
Kd
Кп производной
Веществ.
Вход
false
1
Td
Tд (мс)
Целый
Вход
false
0
Tzd
T задержки диференциров. (мс)
Целый
Вход
false
0
TImpPer
T период импульса (мс)
Целый
Вход
false
5000
TImpMin
T минимальная длина импульса (мс)
Целый
Вход
false
500
KImpRfact
Рейтинг фактор импульса
Веществ.
Вход
false
1
Hup
Верхняя граница выхода (%)
Веществ.
Вход
false
100
Hdwn
Нижняя граница выхода (%)
Веществ.
Вход
false
0
Zi
Нечувствительность (%)
Веществ.
Вход
false
0
followSp
Следить заданием за переменной в ручном
Логич.
Вход
false
1
K1
Коеф. входа 1
Веществ.
Вход
false
0
in1
Вход 1
Веществ.
Вход
false
0
K2
Коеф. входа 2
Веществ.
Вход
false
0
in2
Вход 2
Веществ.
Вход
false
0
K3
Коеф. входа 3
Веществ.
Вход
false
0
in3
Вход 3
Веществ.
Вход
false
0
K4
Коеф. входа 4
Веществ.
Вход
false
0
in4
Вход 4
Веществ.
Вход
false
0
QO
Признак "Открытый" исполнительного механизма
Логич.
Вход
false
0
QZ
Признак "Закрытый" исполнительного механизма
Логич.
Вход
false
0
impAnOut
Реальное аналоговое положение импульсного регулятора, [0...100], -1 - выключить.
Веществ.
Вход
false
0
impAnImit
Имитация аналогового положения
Логич.
Вход
false
0
impQupTm
Имп. выход вверх удерж. для GUI
Целый
Выход
false
0
impQdwnTm
Имп. выход вниз удерж. для GUI
Целый
Выход
false
0
f_frq
Частота вычисления (Гц)
Целый
Вход
true
1
f_start
Первый запуск
Логич.
Вход
true
0
f_stop
Последний запуск
Логич.
Вход
true
0
impLag
Время удержания импульса
Веществ.
Выход
true
0
perLag
Время генерации нового импульса
Веществ.
Выход
true
0
integ
Накопление интеграла
Веществ.
Выход
true
0
difer
Накопление производной
Веществ.
Выход
true
0
dlag
Накопление задержки производной
Веществ.
Выход
true
0
Структура:
PID импульсный (pidImp)
Описание: Специализированный импульсный ПИД регулятор реализованный по особому алгоритму с компенсацией двойного интегрирования. Параметры:
ID
Параметр
Тип
Режим
Скрытый
По умолчанию
var
Переменная
Веществ.
Вход
false
0
sp
Задание
Веществ.
Вход
false
0
max
Максимум шкалы
Веществ.
Вход
false
100
min
Минимум шкалы
Веществ.
Вход
false
0
manIn
Ручной ввод
Веществ.
Вход
false
0
out
Выход (%)
Веществ.
Возврат
false
0
outPID
Выход PID
Веществ.
Выход
false
0
impQup
Имп. выход вверх
Логич.
Выход
false
0
impQdwn
Имп. выход вниз
Логич.
Выход
false
0
auto
Автомат
Логич.
Вход
false
0
casc
Каскад
Логич.
Вход
false
0
Kp
Kп
Веществ.
Вход
false
1
Ki
Кп интеграла
Веществ.
Вход
false
1
Ti
Tи (мс)
Целый
Вход
false
1000
Kd
Кп производной
Веществ.
Вход
false
1
Td
Tд (мс)
Целый
Вход
false
0
Tzd
T задержки диференциров. (мс)
Целый
Вход
false
0
TImpPer
T период импульса (мс)
Целый
Вход
false
5000
TImpMin
T минимальная длина импульса (мс)
Целый
Вход
false
500
KImpRfact
Рейтинг фактор импульса
Веществ.
Вход
false
1
Hup
Верхняя граница выхода (%)
Веществ.
Вход
false
100
Hdwn
Нижняя граница выхода (%)
Веществ.
Вход
false
0
Zi
Нечувствительность (%)
Веществ.
Вход
false
0
followSp
Следить заданием за переменной в ручном
Логич.
Вход
false
1
K1
Коеф. входа 1
Веществ.
Вход
false
0
in1
Вход 1
Веществ.
Вход
false
0
K2
Коеф. входа 2
Веществ.
Вход
false
0
in2
Вход 2
Веществ.
Вход
false
0
K3
Коеф. входа 3
Веществ.
Вход
false
0
in3
Вход 3
Веществ.
Вход
false
0
K4
Коеф. входа 4
Веществ.
Вход
false
0
in4
Вход 4
Веществ.
Вход
false
0
impAnOut
Аналоговое положение импульсного регулятора или скорость хода крана (%/с) при имитации.