Name: | regEl |
Founded: | January 2010 |
Version: | 0.5.0 |
State: | Free (GPL) |
Author: | Roman Savochenko |
Description: | Regulation elements library. |
Address: | DB in file: SQLite.LibDB.regEl (oscadalibs.db.gz) |
Library is created to provide the functions of different control algorithms and can be used in programmable logic controllers (PLCs) based on OpenSCADA for construction control schemes. The library is not static, but based on the module JavaLikeCalc, allowing to create calculations on the Java-like language.
To address the functions of the library you can use static call address "DAQ.JavaLikeCalc.lib_regEl.{Func}" or dynamic "SYS.DAQ.JavaLikeCalc["lib_regEl"]["{Func}"].call()". Where {Func} — function identifier in the library.
To connect the library to the project of the OpenSCADA station it is possible by downloading the attached file of the database, placing it in in the database directory of the station's project and creating the database object for the DB module "SQLite", indicating the database file in the configuration.
In his part the library contains several functions often demanded by creating regulatory schemes. The functions' names and its parameters are available in three languages: English, Russian and Ukrainian.
Description: Composite-unified analog and pulse PID. At the heart of the regulator is core a standard analog PID controller from the library "FLibComplex1" and the implementation of the PWM for the pulse part.
Parameters:
ID | Parameter | Type | Mode | Hide | Default |
var | Variable | Real | Input | false | 0 |
sp | Setpoint | Real | Input | false | 0 |
max | Scale: maximum | Real | Input | false | 100 |
min | Scale: minimum | Real | Input | false | 0 |
manIn | Manual input | Real | Input | false | 0 |
out | Output (%) | Real | Return | false | 0 |
impQup | Impulse output up | Boolean | Output | false | 0 |
impQdwn | Impulse output down | Boolean | Output | false | 0 |
analog | Analog | Boolean | Input | false | 1 |
auto | Automate | Boolean | Input | false | 0 |
casc | Cascade | Boolean | Input | false | 0 |
Kp | Gain | Real | Input | false | 1 |
Ti | Ti (ms) | Integer | Input | false | 1000 |
Kd | Gain differential Real | Input | false | 1 | |
Td | Td (ms) | Integer | Input | false | 0 |
Tzd | T differential lag (ms) | Integer | Input | false | 0 |
TImpPer | T impulses period (ms) | Integer | Input | false | 5000 |
TImpMin | T minimal impulse (ms) | Integer | Input | false | 500 |
KImpRfact | Impulse rate factor | Real | Input | false | 1 |
Hup | Upper output border (%) | Real | Input | false | 100 |
Hdwn | Neither output border (%) | Real | Input | false | 0 |
Zi | Insensitivity (%) | Real | Input | false | 0 |
followSp | Follow to variable by setpoint into manual | Boolean | Input | false | 1 |
K1 | Coefficient of input 1 | Real | Input | false | 0 |
in1 | Input 1 | Real | Input | false | 0 |
K2 | Coefficient of input 2 | Real | Input | false | 0 |
in2 | Input 2 | Real | Input | false | 0 |
K3 | Coefficient of input 3 | Real | Input | false | 0 |
in3 | Input 3 | Real | Input | false | 0 |
K4 | Coefficient of input 4 | Real | Input | false | 0 |
in4 | Input 4 | Real | Input | false | 0 |
impAnOut | Analog position of impulse regulator | Real | Input | false | 0 |
impAnImit | Analog position imitation | Boolean | Input | false | 0 |
impQupTm | Imp. output up lag for GUI Integer | Output | false | 0 | |
impQdwnTm | Imp. output down lag for GUI | Integer | Output | false | 0 |
f_frq | Calc frequency (Hz) | Integer | Input | true | 1 |
f_start | First start | Boolean | Input | true | 0 |
f_stop | Last start | Boolean | Input | true | 0 |
int | Integral accumulation | Real | Output | true | 0 |
dif | Differential accumulation | Real | Output | true | 0 |
lag | Lag accumulation | Real | Output | true | 0 |
impLag | Impulse lag time | Real | Output | true | 0 |
perLag | New impulse generation time | Real | Output | true | 0 |
Structure:
Description: Полностью идентичный унифицированному ПИД регулятор, реализованный динамически на JavaLikeCalc. Динамическая реализация позволяет легко адаптировать регулятор под нужные требования, просто отредактировав его.
Parameters:
ID | Parameter | Type | Mode | Hide | Default |
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 |
impLag | Время удержания импульса | Веществ. | Выход | true | 0 |
perLag | Время генерации нового импульса | Веществ. | Выход | true | 0 |
integ | Накопление интеграла | Веществ. | Выход | true | 0 |
difer | Накопление производной | Веществ. | Выход | true | 0 |
dlag | Накопление задержки производной | Веществ. | Выход | true | 0 |
Structure:
file:pid_unif.png
Description: Специализированный импульсный ПИД регулятор реализованный по особому алгоритму с компенсацией двойного интегрирования.
Parameters:
ID | Parameter | Type | Mode | Hide | Default |
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 | Аналоговое положение импульсного регулятора или скорость хода крана (%/с) при имитации. | Веществ. | Вход | 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 |
err1 | Ошибка шаг назад | Веществ. | Выход | true | 0 |
err2 | Ошибка два шага назад | Веществ. | Выход | true | 0 |
Structure:
file:pid_imp.png