Библиотека функций совместимости со SCADA Complex1.
Тип:
Специальные
Источник:
spec_FLibComplex1.so
Версия:
0.9.0
Автор:
Роман Савоченко
Описание:
Предоставляет библиотеку функций совместимости со SCADA Complex1 фирмы НИП “DIYA”.
Лицензия:
GPL
Введение
Специальный модуль FLibComplex1 предоставляет в систему OpenSCADA
статическую библиотеку функций совместимости со SCADA Complex1
фирмы НИП “DIYA”. Эти функции использовались в SCADA
системе Complex1 в виде алгоблоков для создания
внутрисистемных вычислений на основе виртуального контроллера.
Предоставление библиотеки этих функций позволяет выполнять перенос
вычислительных алгоритмов из системы Complex1.
Для адресации к функциям этой библиотеки необходимо
использовать путь: <Special.FLibComplex1.*>. Где '*'
идентификатор функции в библиотеке.
Ниже приведено описание каждой функции библиотеки. Для каждой
функции производилась оценка времени исполнения. Измерение
производилось на системе со следующими параметрами: Athlon 64
3000+ (ALTLinux 3.0(32бит)) путём замера общего времени исполнения
функции при вызове её 1000 раз. Выборка производилась
по наименьшему значению из пяти вычислений. Время заключается
в угловые скобки и измеряется в микросекундах.
1 Сигнал (alarm) <111>
Описание: Установка признака сигнализации в случае выхода значения переменной за указанную границу. Формула:
out = if(val>max || val<min) then true; else false;
2 Условие '<' (cond_lt) <239>
Описание: Операция ветвления в соответствии с условием “<". Формула:
out=if(in1<(in2_1*in2_2*in2_3*in2_4)) then in3_1*in3_2*in3_3*in3_4; else in4_1*in4_2*in4_3*in4_4;
3 Условие '>' (cond_gt) <240>
Описание: Операция ветвления в соответствии с условием “>". Формула:
out=if(in1>(in2_1*in2_2*in2_3*in2_4)) then in3_1*in3_2*in3_3*in3_4; else in4_1*in4_2*in4_3*in4_4;
4 Полное условие (cond_full) <513>
Описание: Полная проверка условия, включая: больше, меньше и равно. Формула:
out = if(in1<(in2_1*in2_2*in2_3*in2_4)) then in3_1*in3_2*in3_3*in3_4; else if( in1>(in4_1*in4_2*in4_3*in4_4) then in5_1*in5_2*in5_3*in5_4; else in6_1*in6_2*in6_3*in6_4;
5 Дискретный блок (digitBlock) <252>
Описание: Функция содержит алгоритм управления сборками
дискретных сигналов для задвижек и насосов содержащих:
признаки “Open”, “Close” и команды “Open”, “Close”, “Stop”.
Функция поддерживает работу с импульсными командами, т.е. может
снимать сигнал через указанный промежуток времени. Параметры:
ID
Параметр
Тип
Режим
cmdOpen
Команда «Открыть»
Bool
Выход
cmdClose
Команда «Закрыть»
Bool
Выход
cmdStop
Команда «Стоп»
Bool
Выход
stOpen
Сотояние «Открыт»
Bool
Вход
stClose
Состояние «Закрыт»
Bool
Вход
tCmd
Command hold time (s)
Целый
Вход
frq
Период обсчёта (мс)
Целый
Вход
6 Деление (div) <526>
Описание: Производит деление сборок переменных. Формула:
Описание: Выбор одного из четырёх вариантов. Формула:
out = if( sel = 1 ) then in1_1*in1_2*in1_3*in1_4; if( sel = 2 ) then in2_1*in2_2*in2_3*in2_4; if( sel = 3 ) then in3_1*in3_2*in3_3*in3_4; if( sel = 4 ) then in4_1*in4_2*in4_3*in4_4;
16 Простой сумматор (sum) <404>
Описание: Простое суммирование с умножением. Формула: