Модуль | Ім'я | Версія | Ліцензія | Джерело | Мови | Платформи | Тип | Автор | Опис |
---|---|---|---|---|---|---|---|---|---|
FLibComplex1 | Функції Complex1 | 1.2 | GPL2 | spec_FLibComplex1.so | en,uk,ru,de | x86,x86_64,ARM | Спеціальні | Роман Савоченко | Надає бібліотеку функцій сумісності зі SCADA Complex1 фірми НІП "ДІЯ". |
Модуль надає до OpenSCADA статичну бібліотеку функцій сумісності із SCADA Complex1 фірми НІП "DIYA". Ці функції використовувалися у Complex1 у вигляді алгоблоків для створення внутрішньосистемних обчислень на основі віртуального контролера. Надання бібліотеки цих функцій дозволяє здійснити перенесення обчислювальних алгоритмів із Complex1.
Для адресації до функцій цієї бібліотеки можна використовувати статичну адресу виклику Special.FLibComplex1.{Func}() або динамічну SYS.Special.FLibComplex1["{Func}"].call(), SYS.Special.FLibComplex1.{Func}(). Де {Func} — ідентифікатор функції у бібліотеці.
Нижче наведено опис кожної функції бібліотеки.
Опис: Установка ознаки сигналізації у випадку виходу значення змінної за вказану границю.
Формула:
out = if(val>max || val<min) true; else false;
Опис: Операція розгалуження відповідно до умови "менше".
Формула:
out = if(in1<(in2_1*in2_2*in2_3*in2_4)) in3_1*in3_2*in3_3*in3_4; else in4_1*in4_2*in4_3*in4_4;
Опис: Операція розгалуження відповідно до умови "більше".
Формула:
out = if(in1>(in2_1*in2_2*in2_3*in2_4)) in3_1*in3_2*in3_3*in3_4; else in4_1*in4_2*in4_3*in4_4;
Опис: Повна перевірка умови включаючи більше, менше та дорівнює.
Формула:
out = if(in1<(in2_1*in2_2*in2_3*in2_4)) in3_1*in3_2*in3_3*in3_4; else if( in1>(in4_1*in4_2*in4_3*in4_4) in5_1*in5_2*in5_3*in5_4; else in6_1*in6_2*in6_3*in6_4;
Опис: Функція містить алгоритм управління збірками дискретних сигналів для засувок та насосів, які містять: ознаки "Відкрито", "Закрито" та команди "Открыть", "Закрыть", "Стоп". Функція підтримує роботу з імпульсними командами, тобто може знімати сигнал через вказаний проміжок часу.
Параметри:
Ідентифікатор | Параметр | Тип | Режим |
---|---|---|---|
cmdOpen | Команда "Відкрити" | Логічний | Вихід |
cmdClose | Команда "Закрити" | Логічний | Вихід |
cmdStop | Команда "Стоп" | Логічний | Вихід |
stOpen | Стан "Відкрито" | Логічний | Вхід |
stClose | Стан "Закрито" | Логічний | Вхід |
tCmd | Час утримання команди, секунд | Цілий | Вхід |
frq | Частота обчислення, Гц | Цілий | Вхід |
Опис: Здійснює ділення збірок змінних.
Формула:
out = (in1_1*in1_2*in1_3*in1_4*in1_5 + in2_1*in2_2*in2_3*in2_4*in2_5 + in3) / (in4_1*in4_2*in4_3*in4_4*in4_5 + in5_1*in5_2*in5_3*in5_4*in5_5 + in6);
Опис: Обчислення експоненти над групою змінних.
Формула:
out = exp (in1_1*in1_2*in1_3*in1_4*in1_5 + (in2_1*in2_2*in2_3*in2_4*in2_5+in3) / (in4_1*in4_2*in4_3*in4_4*in4_5+in5) )
Опис: Обчислення витрат газу.
Формула:
f = K1*((K3+K4*x)^K2);
Опис: Ітераційне обчислення з вказаним прирощенням, коефіцієнт прирощення для різних напрямків різний.
Формула:
out = if( in1 > in2 ) in2 + in3*(in1-in2); else in2 - in4*(in2-in1);
Опис: Затримка зміни змінної, практично це фільтр без прив'язки до часу.
Формула:
y = y - Klag*( y - x );
Опис: Просте множення з діленням.
Формула:
out = (in1_1*in1_2*in1_3*in1_4*in1_5*in1_6)/ (in2_1*in2_2*in2_3*in2_4);
Опис: Розгалужене множення та ділення.
Формула:
out = in1_1*in1_2*in1_3*in1_4*in1_5* (in2_1*in2_2*in2_3*in2_4*in2_5+(in3_1*in3_2*in3_3*in3_4*in3_5)/ (in4_1*in4_2*in4_3*in4_4*in4_5));
Опис: Пропорційно-інтегрально-диференціальний регулятор.
Параметри:
Ідентифікатор | Параметр | Тип | Режим | По замовченню |
---|---|---|---|---|
var | Змінна | Реальний | Вхід | 0 |
sp | Завдання | Реальний | Вихід | 0 |
max | Максимум шкали | Реальний | Вхід | 100 |
min | Мінімум шкали | Реальний | Вхід | 0 |
manIn | Ручний ввід, % | Реальний | Вхід | 0 |
out | Вихід, % | Реальний | Повернення | 0 |
auto | Режим автомат | Логічний | Вхід | 0 |
casc | Режим каскад | Логічний | Вхід | 0 |
Kp | Kп | Реальний | Вхід | 1 |
Ti | Ті, мілісекунди | Цілий | Вхід | 1000 |
Kd | Kд | Реальний | Вхід | 1 |
Td | Тд, мілісекунди | Цілий | Вхід | 0 |
Tzd | Тд затр., мілісекунди | Цілий | Вхід | 0 |
Hup | Верхня границя виходу, % | Реальний | Вхід | 100 |
Hdwn | Нижня границя виходу, % | Реальний | Вхід | 0 |
Zi | Нечутливість, % | Реальний | Вхід | 1 |
followSp | Стежити завдання за змінною у ручному режимі | Логічний | Вхід | 1 |
K1 | К входу 1 | Реальний | Вхід | 0 |
in1 | Вхід 1 | Реальний | Вхід | 0 |
K2 | К входу 2 | Реальний | Вхід | 0 |
in2 | Вхід 2 | Реальний | Вхід | 0 |
K3 | К входу 3 | Реальний | Вхід | 0 |
in3 | Вхід 3 | Реальний | Вхід | 0 |
K4 | К входу 4 | Реальний | Вхід | 0 |
in4 | Вхід 4 | Реальний | Вхід | 0 |
f_frq | Частота обчислення, Гц | Реальний | Вхід | 1 |
Опис: Зведення у ступінь.
Формула:
out = (in1_1*in1_2*in1_3*in1_4*in1_5)^ (in2_1*in2_2*in2_3*in2_4*in2_5 + (in3_1*in3_2*in3_3*in3_4*in3_5)/ (in4_1*in4_2*in4_3*in4_4*in4_5));
Опис: Вибір одного з чотирьох варіантів.
Формула:
out = if(sel = 1) in1_1*in1_2*in1_3*in1_4; if(sel = 2) in2_1*in2_2*in2_3*in2_4; if(sel = 3) in3_1*in3_2*in3_3*in3_4; if(sel = 4) in4_1*in4_2*in4_3*in4_4;
Опис: Простий суматор з множенням.
Формула:
out = in1_1*in1_2+in2_1*in2_2+in3_1*in3_2+in4_1*in4_2 + in5_1*in5_2+in6_1*in6_2+in7_1*in7_2+in8_1*in8_2;
Опис: Сума з діленням групи значень.
Формула:
out = in1_1*in1_2*(in1_3+in1_4/in1_5) + in2_1*in2_2*(in2_3+in2_4/in2_5) + in3_1*in3_2*(in3_3+in3_4/in3_5) + in4_1*in4_2*(in4_3+in4_4/in4_5);
Опис: Сума з множенням групи значень.
Формула:
out = in1_1*in1_2*(in1_3*in1_4+in1_5) + in2_1*in2_2*(in2_3*in2_4+in2_5) + in3_1*in3_2*(in3_3*in3_4+in3_5) + in4_1*in4_2*(in4_3*in4_4+in4_5);
Модуль, як об'єкт, надає функції користувацького програмування.
Об'єкт "Бібліотека функцій" (SYS.Special.FLibComplex1)
Об'єкт "Користувацька функція" (SYS.Special.FLibComplex1["funcID"])
Modules/FLibComplex1/uk - GFDL | December 2024 | OpenSCADA 1+r3000 |