OpenSCADA

Бібліотеки/Основна

This page is a translated version of the page Libs/Main and the translation is 100% complete.

English • ‎mRussian • ‎Українська
Назва Версія Ліцензія Джерело Мови Автор Опис
Основна бібліотека 2.1 GPLv2 OscadaLibs.db (SQL, GZip) > DAQ.tmplb_base en, uk, ru Роман Савоченко Бібліотека основних шаблонів опрацювання DAQ-джерел та похідних сервісів.
- завершити реалізацію запиту Часток Вмісту у WebUser: HTTP Файловий Сервер після підтримки запиту HEAD у Protocol.HTTP.

Бібліотеку створено для надання основних шаблонів опрацювання DAQ-джерел та похідних сервісів.

Назви шаблонів та їх параметрів доступні на мовах: Англійська, Українська та mRussian. Їх вихідний код написано у мово(людська)-незалежному режимі з викликом функції перекладу tr() та переклад цих повідомлень також доступний Англійською, Українською та mRussian.

Для підключення бібліотеки до проекту станції OpenSCADA ви можете отримати файл БД як:

wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql
sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit

Цей завантажений файл ви надалі можете розмістити у теці проекту станції та створити об'єкт бази даних модуля БД "SQLite", зареєструвавши файл бази даних у конфігурації.

Для DAQ-шаблонів загалом Вам треба створити представницький об'єкт пристрою у модулі Логічного Рівня та обрати відповідний шаблон з бібліотеки шаблонів. Далі, для коректної конфігурації, дотримуйтесь специфіки шаблону у особистому описі.

Contents

1 Шаблони стандартних структур DAQ-параметрів

1.1 Аналоговий сигнал, уніфікований (anUnif)

2.4 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Загальний, представницький та уніфікований шаблон обробки аналогових вхідних сигналів. Шаблон формує структуру аналогового параметру (складного тегу) який може бути легко підключений до більшості віджетів та кадрів бібліотеки основних елементів інтерфейсу користувача просто вказавши об'єкт параметру.

Представницькою структурою аналогового параметру (складного тегу) є:

Значні графічні образи представлення структури:

Функції

  • проста корекція-калібрування за формулою "in = iMult*(in+iAdd)";
  • масштабування від апаратної границі [plcMin...plcMax] у головну границю [min...max], враховуючи квадратичну шкалу scSqr;
At.png Апаратні границі може бути інвертовано та взагалі вимкнено однаковими значеннями максимуму та мінімуму, коли використовується тільки головна шкала.
  • дозвіл на перевищення границі вхідним значенням на величину plcExcess відсотків;
  • фільтрування зміни вхідного значення на час Tf.
At.png Відсутність зв'язка plcImitIn (EVAL) призводить до генерації випадкового аналогового входу
  • in [IN|OUT] — той самий сирий аналоговий ВВ;
  • var [IN] — ВВ кінцевої змінної;
  • min, max [IN] — ВВ головної шкали;
  • plcMin, plcMax [IN] — ВВ апаратної шкали;
  • plcImit, plcImitIn [IN] — ВВ простої імітації;
  • levErr, tErr [IN|OUT] — рівень аварії [-79...0] та текст помилки (формат атрибуту "err");
  • f_frq [IN] — частота обчислення, шаблонний ВВ;
  • this [IN] — посилання на об'єкт параметру, що виконує шаблон;
  • ctx [IN] — об'єкт користувацького контексту, що зберігається між циклами виклику;
  • toSave [OUT] — примусово зберігати об'єкт параметру при виході.
  • відсутність даних або підключення до джерела за вхідним значенням EVAL — код помилки 1 та рівень аварії 5;
  • перевищення апаратної границі вхідним значенням — код помилки 1,2 та рівень аварії 5;
  • перевищення аварійної границі кінцевою змінною [aMin...aMax] — код помилки 3,4 та рівень аварії 4;
At.png Вимикається встановленням однакових або інверсних значень границі
  • перевищення попереджувальної границі кінцевою змінною [wMin...wMax] — код помилки 5,6 та рівень аварії 2;
At.png Вимикається встановленням однакових або інверсних значень границі
  • велика швидкість зміни speed кінцевої змінної — код помилки 7 та рівень аварії 2.
  • перший рядок — як опис повідомлень порушень;
  • поле CustomFlds — визначення користувацьких полів повідомлень порушень у формі "CustomFlds: {CustFld0} => {CustFld1} => ... => {CustFldN}";
  • поле CustomAlarms — перевизначення стандартних рівнів порушень для повідомлень порушень у формі "CustomAlarms: {ConErr};{BrdAlarm};{BrdWarn}".

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
in Вхід Реальний Вхід Не атрибут Зв'язок Вхід|var
inProc Вхідна процедура обробки Текст Вхід Не атрибут Константа
var Змінна Реальний Вхід Тільки читання Змінна 0
ed Одиниця виміру Рядок Вхід Повний доступ Змінна
min Шкала: мінімум Реальний Вхід Повний доступ Змінна 0
max Шкала: максимум Реальний Вхід Повний доступ Змінна 100
scSqr Шкала: квадратична Логічний Вхід Повний доступ Змінна 0
subMode Заміна: режим Вибір цілих чисел Вхід Повний доступ Змінна 0

0;1;2
немає;останнє;підстановка

subVar Заміна: змінна Реальний Вхід Повний доступ Змінна 0
alSup Придушення порушень Логічний Вхід Повний доступ Змінна
alDelay Затримка порушень, секунди Реальний Вхід Повний доступ Змінна 0
aMin Границя нижня аварійна Реальний Вхід Повний доступ Змінна 0
aMax Границя верхня аварійна Реальний Вхід Повний доступ Змінна 0
wMin Границя нижня попереджув. Реальний Вхід Повний доступ Змінна 0
wMax Границя верхня попереджув. Реальний Вхід Повний доступ Змінна 0
HystBnd Гистерезис порушення границь Реальний Вхід Повний доступ Змінна 1
speed Швидкість зміни, %/цикл Реальний Вхід Повний доступ Змінна 0
prec Точність, знаків Цілий Вхід Повний доступ Змінна 2
log Логарифмічна шкала Логічний Вхід Повний доступ Змінна 0
Tf Час фільтру, секунд Реальний Вхід Повний доступ Змінна 0
iAdd Додаток до входу Реальний Вхід Не атрибут Константа 0
iMult Множник входу Реальний Вхід Не атрибут Константа 1
plcMin Мінімум шкали модуля Реальний Вхід Не атрибут Константа 0
plcMax Максимум шкали модуля Реальний Вхід Не атрибут Константа 0
plcExcess Дозволене перевищення шкали, % Реальний Вхід Не атрибут Константа 0
plcImit Імітація ПЛК Логічний Вхід Не атрибут Константа 0
plcImitIn Вхід імітації ПЛК Реальний Вхід Не атрибут Зв'язок Імітація|var
this Об'єкт Об'єкт Вихід Не атрибут Змінна
SHIFR Шифр Рядок Вхід Не атрибут Змінна
NAME Ім'я Рядок (переклад) Вхід Не атрибут Змінна
DESCR Опис Текст (переклад) Вхід Не атрибут Змінна
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру Ви маєте встановити:
  • Вхідзв'язати із джерелом "сирого" сигналу.
  • Вхідна процедура обробки — сформувати для складної передобробки та повної генерації-імітації аналогового входу на внутрішній мові програмування OpenSCADA. Є необов'язковою та має визначатися за складних випадків, наприклад:
  • проста та прозора попередня обробка з приведення відсотків навантаження ДБЖ до потужності, що можна виконати і за допомогою iMult:
in = 490*in/100;	//the UPS has 480W
  • реалізація лічильника вхідного сигналу — спожитої електрики ДБЖ:
//Checking for the data validity
if(ctx.cntr.isEVal())	ctx.cntr = this.var.get();
if(!in.isEVal()) {
	pUPS = 33;
	if(ctx.cntr.isEVal())	ctx.cntr = (pUPS+in)/(3600*f_frq);
	else ctx.cntr += (pUPS+in)/(3600*f_frq);
}

//Checking for the next month reset
month = 0; SYS.localtime(SYS.time(), 0, 0, 0, 0, month);
if(!ctx.month.isEVal() && month != ctx.month)	ctx.cntr = 0;
ctx.month = month;

in = ctx.cntr;
  • генерації розширених порушень — обробка зовнішніх сигналів, пов'язаних з джерелом:
gO = this.cntr().prm_grps;
if(SYS.DAQ.JavaLikeCalc.lib_aviary.sensorError(gO.prm_generic.PRG_Input_Err_T_room_S.get(),levErr,tErr));
else if(!(tVl=gO.prm_alarms.PRG_Alarm_T_max.get()).isEVal() && tVl)
	levErr = -4, tErr = "11:above the set limit";
else if(!(tVl=gO.prm_alarms.PRG_Alarm_T_min.get()).isEVal() && tVl)
	levErr = -4, tErr = "11:below the set limit";
  • Мінімум та максимум шкали модуля — має вказуватися у випадку значного розходження апаратної шкали із загальною, наприклад:
  • вхід сирий та вимірюється значенням струму [4...20]мА, тобто тут треба вказати 4 та 20 мА;
  • попередній випадок де треба просто та прозоро відкалібрувати покази — зразковим приладом задаємо 4мА та 20мА та вказуємо тут реальні виміряні значення "сирого" сигналу.
  • Додаток та множник до входу — використати для простої лінійної корекції входу, наприклад:
  • калібрування показів, що менш прозоро та ці коефіцієнти мають вираховуватися за формулами:
iAdd = ((plcMin*precMeasMax)/plcMax - precMeasMin)*(plcMax/(plcMax-plcMin))
iMult = (plcMax - plcMin) / (precMeasMax - precMeasMin)
  • Дозволене перевищення шкали — встановити за потреби перевищення значенням загальної шкали та коли ця шкала починає виконувати рекомендавчу функцію, скажемо для початкового відображення історії у цій шкалі.
  • Імітація та вхід імітації ПЛК — визначити за потреби імітації входу згідно опису у функціях.
4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці "Атрибути", для: змінної, стану помилки; та генерацію порушень, якщо стан помилки ненульовий.
5. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:
  • Шкала: мінімум та максимум — суворо At.png встановити у діапазон зміни даних за наявністю та відповідно до апаратної границі, інакше значення буде викривлене! За відсутності апаратної границі ця, основна границя, є довільною та дорадчою, хоча вихід значення за неї також супроводжується порушенням.
  • Шкала: квадратична — встановити якщо апаратна шкала квадратична.
  • Час фільтру — встановити у час фільтрації для зашумлених сигналів.
  • Заміна: режим та змінна — встановити у потрібний режим підстановки-заміни значення за недостовірною змінною.
  • Придушення порушень — встановити за потреби повного придушення порушень параметру — вимкнути їх генерацію взагалі.
  • Затримка порушень — встановити час затримки генерації порушення, для виключення частої генерації, характерної для непевних джерел даних, що відрізняються короткочасною втратою зв'язку.
  • Границя верхня/нижня аварійна/попереджувальна — встановити коли треба генерувати порушення за виходом за аварійну/попереджувальну границі.
  • Гистерезис порушення границь — встановити у гістерезис зняття порушення, тобто зняття порушення відбувається на вказаний відсоток пізніше, щоб запобігти частій генерації за коливанням значення біля границі.
  • Швидкість зміни — встановити якщо треба попереджати про швидку зміну значення.
  • Назва, Опис, Одиниця виміру, Точність, Логарифмічна шкала — встановити за потреби такої інформації при відображені, або як елементи паспорту.


1.2 Аналоговий сигнал, уніфікований, стани порушень (anUnifSt)

1.3 GPLv2 * en, uk, ru Роман Савоченко

Загальний, представницький та уніфікований шаблон обробки аналогових вхідних сигналів, розширений бінарними станами індикації порушень. Шаблон засновано на базовому шаблоні "Аналоговий сигнал, уніфікований" з відповідною до нього представницькою структурою та деякими відмінностями, характерними до незалежного розвитку та розширення.

Бінарні стани передбачалося для зручного використання у алгоритмах роботи за границями порушення об'єкту параметру, переважно у блокових схемах загальних алгоритмів керування.

Функції
Переважно відповідають базовому шаблону "Аналоговий сигнал, уніфікований" та додатково надаються ознаки порушень границь: "H", "L", "HH", "LL", "EVAL".

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
ВВ шаблону "Аналоговий сигнал, уніфікований"
H Порушення верхньої попереджув. границі Логічний Вихід Тільки читання Змінна
L Порушення нижньої попереджув. границі Логічний Вихід Тільки читання Змінна
HH Порушення верхньої аварійної границі Логічний Вихід Тільки читання Змінна
LL Порушення нижньої аварійної границі Логічний Вихід Тільки читання Змінна
EVAL Помилка значення Логічний Вихід Тільки читання Змінна

Конфігурація та використання
Повністю ідентичне базовому "Аналоговий сигнал, уніфікований" за відмінністю використання ознак порушень границь: "H", "L", "HH", "LL", "EVAL"; на які можна під'єднуватися із зовнішніх обчислень.


1.3 Ручний ввід, уніфікований (manInUnif)

1.2 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Загальний, представницький та уніфікований шаблон ручного вводу та сигналу аналогового виходу. Шаблон формує структуру параметру (складного тегу) ручного вводу, який може бути легко підключений до більшості віджетів та кадрів бібліотеки основних елементів інтерфейсу користувача просто вказавши об'єкт параметру, контроль переважно можна здійснювати через панель контролю Елемент кадр.

Представницькою структурою параметру (складного тегу) ручного вводу є:

Значні графічні образи представлення структури:

Функції

  • проста корекція-калібрування за формулою "in = iMult*(in+iAdd)";
  • масштабування від апаратної границі [plcMin...plcMax] у головну границю [min...max], враховуючи квадратичну шкалу scSqr;
At.png Апаратні границі може бути інвертовано та взагалі вимкнено однаковими значеннями максимуму та мінімуму, коли використовується тільки головна шкала.
  • дозвіл на перевищення границі вхідним значенням на величину plcExcess відсотків;
  • фільтрування зміни вхідного значення на час Tf.
  • відсутність даних або підключення до джерела за вхідним значенням EVAL — код помилки 1 та рівень аварії 5;
  • перевищення апаратної границі вхідним значенням — код помилки 1,2 та рівень аварії 5;
  • перевищення аварійної границі кінцевою змінною [aMin...aMax] — код помилки 3,4 та рівень аварії 4;
At.png Вимикається встановленням однакових або інверсних значень границі
  • перевищення попереджувальної границі кінцевою змінною [wMin...wMax] — код помилки 5,6 та рівень аварії 2;
At.png Вимикається встановленням однакових або інверсних значень границі
  • велика швидкість зміни speed кінцевої змінної — код помилки 7 та рівень аварії 2.
At.png За відсутності підключення "Входу/Виходу" запису не здійснюється та відбувається автономна робота.

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
inout Вхід/Вихід Реальний Вихід Не атрибут Зв'язок Parameter|var
var Змінна Реальний Вхід Тільки читання Змінна 0
varIn Введення змінної Реальний Вхід Повний доступ Змінна 0
ed Одиниця виміру Рядок Вхід Повний доступ Змінна
min Шкала: мінімум Реальний Вхід Повний доступ Змінна 0
max Шкала: максимум Реальний Вхід Повний доступ Змінна 100
scSqr Шкала: квадратична Логічний Вхід Повний доступ Змінна 0
alSup Придушення порушень Логічний Вхід Повний доступ Змінна 0
alDelay Затримка порушень, секунди Логічний Вхід Повний доступ Змінна
aMin Границя нижня аварійна Реальний Вхід Повний доступ Змінна 0
aMax Границя верхня аварійна Реальний Вхід Повний доступ Змінна 0
wMin Границя нижня попереджув. Реальний Вхід Повний доступ Змінна 0
wMax Границя верхня попереджув. Реальний Вхід Повний доступ Змінна 0
HystBnd Гистерезис порушення границь Реальний Вхід Повний доступ Змінна 1
speed Швидкість зміни, %/цикл Реальний Вхід Повний доступ Змінна 0
prec Точність, знаків Цілий Вхід Повний доступ Змінна 2
log Логарифмічна шкала Логічний Вхід Повний доступ Змінна 0
Tf Час фільтру, секунд Реальний Вхід Повний доступ Змінна 0
iAdd Додаток до входу Реальний Вхід Не атрибут Константа 0
iMult Множник входу Реальний Вхід Не атрибут Константа 1
plcMin Мінімум шкали модуля Реальний Вхід Не атрибут Константа 0
plcMax Максимум шкали модуля Реальний Вхід Не атрибут Константа 0
plcExcess Дозволене перевищення шкали, % Реальний Вхід Не атрибут Константа 0
this Об'єкт Об'єкт Вихід Не атрибут Змінна
SHIFR Шифр Рядок Вхід Не атрибут Змінна
NAME Ім'я Рядок (переклад) Вхід Не атрибут Змінна
DESCR Опис Текст (переклад) Вхід Не атрибут Змінна
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру Ви маєте встановити:
  • Вхід/Вихідзв'язати із джерелом "сирого" сигналу ВВ, або не прив'язувати для автономного режиму.
  • Мінімум та максимум шкали модуля — має вказуватися у випадку значного розходження апаратної шкали із загальною, для прикладу дивіться шаблон "Аналоговий сигнал, уніфікований".
  • Додаток та множник до входу — використати для простої лінійної корекції входу, для прикладу дивіться шаблон "Аналоговий сигнал, уніфікований".
  • Дозволене перевищення шкали — встановити за потреби перевищення значенням загальної шкали та коли ця шкала починає виконувати рекомендавчу функцію, скажемо для початкового відображення історії у цій шкалі.
4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці "Атрибути", для: змінної, стану помилки; та генерацію порушень, якщо стан помилки ненульовий; та він буде доступний до встановлення нових значень.
5. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:
  • Шкала: мінімум та максимум — суворо At.png встановити у діапазон зміни даних за наявністю та відповідно до апаратної границі, інакше значення буде викривлене! За відсутності апаратної границі ця, основна границя, є довільною та дорадчою, хоча вихід значення за неї також супроводжується порушенням.
  • Шкала: квадратична — встановити якщо апаратна шкала квадратична.
  • Час фільтру — встановити у час фільтрації для зашумлених сигналів.
  • Придушення порушень — встановити за потреби повного придушення порушень параметру — вимкнути їх генерацію взагалі.
  • Затримка порушень — встановити час затримки генерації порушення, для виключення частої генерації, характерної для непевних джерел даних, що відрізняються короткочасною втратою зв'язку.
  • Границя верхня/нижня аварійна/попереджувальна — встановити коли треба генерувати порушення за виходом за аварійну/попереджувальну границі.
  • Гистерезис порушення границь — встановити у гістерезис зняття порушення, тобто зняття порушення відбувається на вказаний відсоток пізніше, щоб запобігти частій генерації за коливанням значення біля границі.
  • Швидкість зміни — встановити якщо треба попереджати про швидку зміну значення.
  • Назва, Опис, Одиниця виміру, Точність (знаків), Логарифмічна шкала — встановити за потреби такої інформації при відображені, або як елементи паспорту.


1.4 Дискретний блок, уніфікований (digitBlockUnif)

1.0 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Загальний, представницький та уніфікований шаблон блоку поєднання дискретних параметрів у пристрій загального контролю. Шаблон формує структуру дискретного параметру-блоку (складного тегу) який може бути легко підключений до більшості віджетів та кадрів бібліотеки основних елементів інтерфейсу користувача просто вказавши об'єкт параметру.

Представницькою структурою дискретного параметру (складного тегу) є об'єкт засувки із характерними двома станами та трьома командами, які у кінцевому представленні можуть мати інше значення та назву:

Значні графічні образи представлення структури:

Функції

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
com Команда "Відкрити" Логічний Вихід Повний доступ Зв'язок Кран|com
close Команда "Закрити" Логічний Вихід Повний доступ Зв'язок Кран|close
stop Команда "Зупинити" Логічний Вихід Повний доступ Зв'язок Кран|stop
st_open Стан "Відкрито" Логічний Вхід Тільки читання Зв'язок Кран|st_open
st_close Стан "Закрито" Логічний Вхід Тільки читання Зв'язок Кран|st_close
tCmd Час утримання команди, секунди Цілий Вхід Не атрибут Константа 5
last_cmd Остання команда Цілий Вихід Не атрибут Змінна 0
w_tm Лічильник обробки команди Реальний Вихід Не атрибут Змінна 0
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру Ви маєте встановити:
4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці "Атрибути", для: станів та команд.
5. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативний контроль, видачею команд.


1.5 Сигналізація дискретна (digAlarm)

1.3 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Загальний, представницький шаблон обробки окремого дискретного параметру (складного тегу) із формування сигналізації за визначеним критерієм. Шаблон формує структуру дискретного параметру (складного тегу) який може бути легко підключений до більшості віджетів та кадрів бібліотеки основних елементів інтерфейсу користувача просто вказавши об'єкт параметру.

Шаблон надає окремі поля представницької структури дискретного параметру та додає поле помилки:

Функції

  • in [IN|OUT] — той самий сирий дискретний ВВ;
  • levErr, tErr [IN|OUT] — рівень аварії [-79...0] та текст помилки (формат атрибуту "err");
  • f_frq [IN] — частота обчислення, шаблонний ВВ;
  • this [IN] — посилання на об'єкт параметру, що виконує шаблон;
  • ctx [IN] — об'єкт користувацького контексту, що зберігається між циклами виклику.
  • перший рядок — як опис повідомлень порушень;
  • поле CustomFlds — визначення користувацьких полів повідомлень порушень у формі "CustomFlds: {CustFld0} => {CustFld1} => ... => {CustFldN}".

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
alrm Сигнал "{st}:{lev}:{mess}" Рядок Вхід Не атрибут Константа
stInv Інверсія стану Логічний Вхід Не атрибут Константа
in Вхід Логічний Вхід Тільки читання Зв'язок Input|in
inProc Вхідна процедура обробки Текст Вхід Не атрибут Константа
alSup Придушення порушень Логічний Вхід Повний доступ Змінна
alDelay Затримка порушень, секунди Реальний Вхід Повний доступ Змінна 0
st_open Стан "Відкрито" Логічний Вхід Тільки читання Змінна
st_close Стан "Закрито" Логічний Вхід Тільки читання Змінна
SHIFR Шифр Рядок Вхід Не атрибут Змінна
NAME Ім'я Рядок (переклад) Вхід Не атрибут Змінна
DESCR Опис Текст (переклад) Вхід Не атрибут Змінна
this Об'єкт Об'єкт Вхід Не атрибут Змінна
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру Ви маєте встановити:
  • "Сигнал "{st}:{lev}:{mess}" — визначити критерій формування порушення, залишити порожнім для вимкнення генерації порушень.
  • "Інверсія стану" — встановити для інвертування репрезентативних атрибутів, тобто "st_open" встановити за "in" рівного false.
  • "Вхід" — зв'язати із джерелом "сирого" сигналу.
  • Вхідна процедура обробки — сформувати для складної передобробки та повної генерації-імітації дискретного входу на внутрішній мові програмування OpenSCADA. Наприклад:
  • повне створення складного статусу:
gO = this.cntr().prm_grps;
status = gO.prm_generic.PRG_Input_Err_T_Zone1_S.get();
in = gO.prm_generic.SET_CalcFan_UseSensor_T1.get() || !(status == 0 || status == 2 || status == 3);
4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці "Атрибути", для: змінної, стану помилки; та генерацію порушень, якщо стан помилки ненульовий.


1.6 Стан за кодом (codeState)

1.4 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Варіант загального, представницького та уніфікованого шаблону блоку поєднання дискретних параметрів, розширений більш ніж двома станами та трьома командами які можна закодувати цілим значенням. Шаблон формує структуру параметру (складного тегу) стану за кодом який може бути легко підключений до більшості віджетів та кадрів бібліотеки основних елементів інтерфейсу користувача просто вказавши об'єкт параметру.

Представницькою структурою параметру (складного тегу) стану за кодом є:

Значні графічні образи представлення структури:

Функції

  • in [IN|OUT] — ВВ коду статусу;
  • text [OUT] — пряме встановлення тексту статусу;
  • coms [IN] — перелік наявних команд, відповідного ВВ;
  • com_text [IN|OUT] — текст отриманої команди;
  • levErr, tErr [IN|OUT] — рівень аварії [-79...0] та текст помилки (формат атрибуту "err");
  • f_frq [IN] — частота обчислення, шаблонний ВВ;
  • this [IN] — посилання на об'єкт параметру, що виконує шаблон;
  • ctx [IN] — об'єкт користувацького контексту, що зберігається між циклами виклику.

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
in Вхід Цілий Вхід Тільки читання Зв'язок Signal|in
out Вихід Цілий Вихід Тільки читання Зв'язок Signal|out
inProc Вхідна процедура обробки Текст Вхід Не атрибут Константа
alSup Придушення порушень Логічний Вхід Повний доступ Змінна
alDelay Затримка порушень, секунди Реальний Вхід Повний доступ Змінна 0
st_text Стан "Текст" Рядок Вхід Тільки читання Змінна
stats Стани, рядки "{code}:{State}" Текст Вхід Повний доступ Змінна
com_text Команда "Текст" Рядок Вхід Повний доступ Змінна
coms Команди-стани, рядки "{code}:{State}" Текст Вхід Повний доступ Змінна
digComs Команди Текст Вхід Тільки читання Змінна
SHIFR Код Рядок Вхід Не атрибут Змінна
NAME Ім'я Рядок (переклад) Вхід Не атрибут Змінна
DESCR Опис Текст (переклад) Вхід Не атрибут Змінна
this Об'єкт Об'єкт Вихід Не атрибут Змінна
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру Ви маєте встановити:
  • Вхід та Вихідзв'язати із джерелом "сирого" сигналу.
  • Вхідна процедура обробки — сформувати для обробки та повної генерації-імітації входу, та видачі специфічного виходу, на внутрішній мові програмування OpenSCADA. Наприклад:
  • повне створення коду статусу та формування порушення:
gO = this.cntr().prm_grps;
if(gO.prm_fansControl.PRG_CntrFan_AutoMode_G1.get().isEVal())	in = 4;
else {
  if(!(tVl=gO.prm_fansControl.PRG_CntrFan_Alarm_ThermalRelay.get()).isEVal() && tVl)
    levErr = -4, tErr = "11:alarm";
  if(gO.prm_fansControl.PRG_CntrFan_AutoMode_G1.get())
    in = gO.prm_fansControl.PRG_CntrFan_On_G1.get() ? 1 : 2;
  else in = 3;
}
  • формування тексту часу годинника та виклик синхронізації часу — пряме встановлення тексту статусу та виконання специфічних команд:
curTm = SYS.time();
text = SYS.strftime(curTm, "%H։%M %d.%m.%Y");
gO = this.cntr().prm_grps;
if(!(tVl=gO.prm_other.PRG_RTC_UNIX.get()).isEVal()) {
  text += " ("+(tVl-curTm).toString(10,0,true)+")";
}

if(com_text.length && !com_text.isEVal() && (tVl=coms.match("^([^:]+):"+com_text,"m")).length && tVl[1] == 1) {
  gO.prm_other.SET_RTC_New_UNIX.set(curTm);
  gO.prm_other.KEY_RTC_set_time.set(true);
}
4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці "Атрибути", для: входу, виходу, стану за кодом-входом, стану помилки; та генерацію порушень, якщо стан помилки ненульовий.
5. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:
  • Стани — встановити у перелік відповідності коду стану до його тексту.
  • Команди-стани — встановити у перелік відповідності коду стану-команди до його тексту.
  • Команда "Текст" — встановити у текст команди, яку описано у переліку команд, для перетворення у код та видачі.
  • Придушення порушень — встановити за потреби повного придушення порушень параметру — вимкнути їх генерацію взагалі.
  • Затримка порушень — встановити час затримки генерації порушення, для виключення частої генерації, характерної для непевних джерел даних, що відрізняються короткочасною втратою зв'язку.


1.7 ПІД сигнал, уніфікований, стани порушень (pidUnif)

1.2 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Загальний, представницький та уніфікований шаблон інтерфейсу до Пропорційного Інтегрального Диференційного (ПІД) регулятору заснованому на аналоговому вхідному сигналі, розширеному бінарними станами індикації порушень. Шаблон формує структуру аналогового ПІД-регулятору, який може бути легко підключений до деяких кадрів та віджетів бібліотеки основних елементів інтерфейсу користувача, просто вказавши об'єкт параметру.

Представницькою структурою аналогового ПІД-регулятору є:

Значні графічні образи представлення структури:

Функції

  • проста корекція-калібрування за формулою "in = iMult*(in+iAdd)";
  • масштабування від апаратної границі [plcMin...plcMax] у головну границю [min...max], враховуючи квадратичну шкалу scSqr;
  • дозвіл на перевищення границі вхідним значенням на величину plcExcess відсотків;
  • фільтрування зміни вхідного значення на час Tf.
  • відсутність даних або підключення до джерела за вхідним значенням EVAL — код помилки 1 та рівень аварії 5;
  • перевищення апаратної границі вхідним значенням — код помилки 1,2 та рівень аварії 5;
  • перевищення аварійної границі кінцевою змінною [aMin...aMax] — код помилки 3,4 та рівень аварії 4;
At.png Вимикається встановленням однакових або інверсних значень границі
  • перевищення попереджувальної границі кінцевою змінною [wMin...wMax] — код помилки 5,6 та рівень аварії 2;
At.png Вимикається встановленням однакових або інверсних значень границі
  • велика швидкість зміни speed кінцевої змінної — код помилки 7 та рівень аварії 2.

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
in Вхід Реальний Вхід Не атрибут Зв'язок Signal|in
sp Завдання Реальний Вхід Повний доступ Зв'язок ПІД|sp
var Змінна Реальний Вхід Тільки читання Змінна 0
manIn Ручний ввід, % Реальний Вхід Повний доступ Зв'язок ПІД|manIn
out Вихід, % Реальний Вхід Повний доступ Зв'язок ПІД|out
auto Режим: автомат Логічний Вхід Повний доступ Зв'язок ПІД|auto
casc Режим: каскад Логічний Вхід Повний доступ Зв'язок ПІД|casc
ed Одиниця виміру Рядок Вхід Повний доступ Змінна
min Шкала: мінімум Реальний Вхід Повний доступ Зв'язок ПІД|min
max Шкала: максимум Реальний Вхід Повний доступ Зв'язок ПІД|max
scSqr Шкала: квадратична Логічний Вхід Повний доступ Змінна 0
alSup Придушення порушень Логічний Вхід Повний доступ Змінна 0
alDelay Затримка порушень, секунди Реальний Вхід Повний доступ Змінна 0
aMin Границя нижня аварійна Реальний Вхід Повний доступ Змінна 0
aMax Границя верхня аварійна Реальний Вхід Повний доступ Змінна 0
wMin Границя нижня попереджув. Реальний Вхід Повний доступ Змінна 0
wMax Границя верхня попереджув. Реальний Вхід Повний доступ Змінна 0
HystBnd Гістерезис порушень границь Реальний Вхід Повний доступ Змінна 0
speed Швидкість зміни, %/цикл Реальний Вхід Повний доступ Змінна 0
prec Точність, знаків Цілий Вхід Повний доступ Змінна 2
log Логарифмічна шкала Логічний Вхід Повний доступ Змінна 0
H Порушення верхньої попереджув. границі Логічний Вихід Тільки читання Змінна 0
L Порушення нижньої попереджув. границі Логічний Вихід Тільки читання Змінна 0
HH Порушення верхньої аварійної границі Логічний Вихід Тільки читання Змінна 0
LL Порушення нижньої аварійної границі Логічний Вихід Тільки читання Змінна 0
EVAL Значення невірогідне Логічний Вихід Тільки читання Змінна 0
Tf Час фільтру, мілісекунд Реальний Вхід Повний доступ Змінна 0
Kp Kп Реальний Вхід Повний доступ Зв'язок ПІД|Kp
Ti Tі, мілісекунд Цілий Вхід Повний доступ Зв'язок ПІД|Ti
Kd Кп диференціалу Реальний Вхід Повний доступ Зв'язок ПІД|Kd
Td Tд, мілісекунд Цілий Вхід Повний доступ Зв'язок ПІД|Td
Tzd T фільтру диференціалу, мілісекунд Цілий Вхід Повний доступ Зв'язок ПІД|Tzd
Zi Нечутливість, % Реальний Вхід Повний доступ Зв'язок ПІД|Zi
Hup Верхня границя виходу, % Реальний Вхід Повний доступ Зв'язок ПІД|Hup
Hdwn Нижня границя виходу, % Реальний Вхід Повний доступ Зв'язок ПІД|Hdwn
K1 Коефіцієнт входу 1 Реальний Вхід Повний доступ Зв'язок ПІД|K1
K2 Коефіцієнт входу 2 Реальний Вхід Повний доступ Зв'язок ПІД|K2
K3 Коефіцієнт входу 3 Реальний Вхід Повний доступ Зв'язок ПІД|K3
K4 Коефіцієнт входу 4 Реальний Вхід Повний доступ Зв'язок ПІД|K4
iAdd Додаток до входу Реальний Вхід Не атрибут Константа 0
iMult Множник входу Реальний Вхід Не атрибут Константа 1
plcMin Мінімум шкали модуля Реальний Вхід Не атрибут Константа 1
plcMax Максимум шкали модуля Реальний Вхід Не атрибут Константа 5
plcExcess Дозволене перевищення шкали, % Реальний Вхід Не атрибут Константа 0
plcImit Імітація ПЛК Логічний Вхід Не атрибут Константа 0
plcImitIn Вхід імітації ПЛК Реальний Вхід Не атрибут Зв'язок Імітація|var
this Об'єкт Об'єкт Вихід Не атрибут Змінна
SHIFR Шифр Рядок Вхід Не атрибут Змінна
NAME Ім'я Рядок (переклад) Вхід Не атрибут Змінна
DESCR Опис Текст (переклад) Вхід Не атрибут Змінна
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
2. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
3. У вкладці "Конфігурація шаблону" об'єкту логічного параметру Ви маєте встановити:
  • Вхідзв'язати із джерелом "сирого" аналогового сигналу.
  • Завдання, Ручний ввід, Вихід, Режим: автомат, Режим: каскад, Шкала: мінімум, Шкала: максимум, Kп, , Кп диференціалу, , T фільтру диференціалу, мілісекунд, Нечутливість, Верхня границя виходу, Нижня границя виходу, Коефіцієнт входу 1, Коефіцієнт входу 2, Коефіцієнт входу 3, Коефіцієнт входу 4зв'язати із джерелом ПІД-регулятору.
  • Додаток та множник до входу — використати для простої лінійної корекції входу, для прикладу дивіться шаблон "Аналоговий сигнал, уніфікований".
  • Дозволене перевищення шкали — встановити за потреби перевищення значенням загальної шкали та коли ця шкала починає виконувати рекомендавчу функцію, скажемо для початкового відображення історії у цій шкалі.
  • Імітація та вхід імітації ПЛК — визначити за потреби імітації входу згідно опису у функціях.
4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці "Атрибути", для: змінної, стану помилки; та генерацію порушень, якщо стан помилки ненульовий. Також отримаємо всі ПІД-специфічні атрибути.
5. У процесі роботи, через вкладку оперативних даних "Атрибути", окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:
  • Шкала: мінімум та максимум — суворо At.png встановити у діапазон зміни даних за наявністю та відповідно до апаратної границі, інакше значення буде викривлене!
  • Шкала: квадратична — встановити якщо апаратна шкала квадратична.
  • Час фільтру — встановити у час фільтрації для зашумлених сигналів.
  • Придушення порушень — встановити за потреби повного придушення порушень параметру — вимкнути їх генерацію взагалі.
  • Затримка порушень — встановити час затримки генерації порушення, для виключення частої генерації, характерної для непевних джерел даних, що відрізняються короткочасною втратою зв'язку.
  • Границя верхня/нижня аварійна/попереджувальна — встановити коли треба генерувати порушення за виходом за аварійну/попереджувальну границі.
  • Гистерезис порушення границь — встановити у гістерезис зняття порушення, тобто зняття порушення відбувається на вказаний відсоток пізніше, щоб запобігти частій генерації за коливанням значення біля границі.
  • Швидкість зміни — встановити якщо треба попереджати про швидку зміну значення.
  • Назва, Опис, Одиниця виміру, Точність, Логарифмічна шкала — встановити за потреби такої інформації при відображені, або як елементи паспорту.


1.8 Імпульсний ПІД сигнал, уніфікований, стани порушень (pidUnifImp)

1.1 GPLv2 * en, uk, ru Роман Савоченко

Загальний, представницький та уніфікований шаблон інтерфейсу до Пропорційного Інтегрального Диференційного (ПІД) регулятору заснованому на аналоговому вхідному сигналі але із ШІМ-виходом, розширеному бінарними станами індикації порушень та переважно схоже на шаблон "ПІД сигнал, уніфікований, стани порушень". Шаблон формує структуру імпульсного ПІД-регулятору, який може бути легко підключений до деяких кадрів та віджетів бібліотеки основних елементів інтерфейсу користувача, просто вказавши об'єкт параметру.

Представницька структура імпульсних ПІД-регуляторів переважно еквівалентна шаблону "ПІД сигнал, уніфікований, стани порушень" та містить низку атрибутів, специфічних до імпульсного виходу та атрибут визначення роботи цього регулятору у аналоговому режимі, тобто цей шаблон є навіть більш узагальнювальним:

Функції
Переважно те саме що у базового шаблону "ПІД сигнал, уніфікований, стани порушень" та додатково надаються імпульсно-специфічні атрибути: "Імпульсний вихід у гору", "Імпульсний вихід до низу", "Режим: аналоговий", "T період імпульсів", "Мінімальна довжина імпульсу", "Рейтинг фактор імпульсів".

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
ВВ шаблону "ПІД сигнал, уніфікований, стани порушень"
impQup Імпульсний вихід у гору Логічний Вхід Тільки читання Зв'язок ПІД|impQupTm
impQdwn Імпульсний вихід до низу Логічний Вхід Тільки читання Зв'язок ПІД|impQdwnTm
analog Режим: аналоговий Логічний Вхід Тільки читання Зв'язок ПІД|analog
TImpPer T період імпульсів, мілісекунд Цілий Вхід Повний доступ Зв'язок ПІД|TImpPer
TImpMin Мінімальна довжина імпульсу, мілісекунд Цілий Вхід Повний доступ Зв'язок ПІД|TImpMin
KImpRfact Рейтинг фактор імпульсів Реальний Вхід Повний доступ Зв'язок ПІД|KImpRfact

Конфігурація та використання
Переважно те саме що у базового шаблону "ПІД сигнал, уніфікований, стани порушень" із відмінністю використання імпульсо-специфічного виходу: "Імпульсний вихід у гору", "Імпульсний вихід до низу", "Режим: аналоговий", "T період імпульсів", "Мінімальна довжина імпульсу", "Рейтинг фактор імпульсів".

2 Шаблони комплексних об'єктів

У окремих випадках, коли деякий об'єкт є лише частиною загальної автоматизованої системи та такий що не потребує глибокої деталізації до рівня сигналів та параметрів (складного тегу) довкола них, включно без потреби архівації, їх зручно уніфікувати у одному представницькому об'єкті джерела даних OpenSCADA із відповідним консолідованим представленням та контролем об'єкту, як набору простих атрибутів із елементами сигналізації. Така консолідація часто відбувається довкола спеціалізованих джерел даних, доступ до даних яких зазвичай й реалізуються окремим протоколом обміну, але без уніфікації передачі цих даних на рівень візуалізації та сигналізації за окремим атрибутом об'єкту.

Загалом, представницькою структурою комплексного об'єкту є:

Узагальнюючи, такий шаблон (прошарок над об'єктом фізичних джерел даних) доцільно створювати над джерелом сирих даних, яке надає ці дані у вигляді атрибутів та без обробки, та цей шаблон відтак здійснює:

Окрім шаблонів комплексного об'єкту цей механізм загально-об'єктного контролю може реалізовуватися шаблонами реалізації логічного рівня доступу до даних, як то у IEC60870.

Для представлення даних механізму загально-об'єктного контролю наразі надається відповідний кадр "Властивості об'єкту", який надає ці властивості у вигляді таблиці-переліку із підсвіченням порушень та можливістю зміни обраних та редагованих властивостей-рядків.


2.1 Джерело Безперебійного Живлення (UPS)

1.3 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Об'єднання даних Джерела Безперебійного Живлення у комплексному об'єкті атрибуту "Всі елементи". Шаблон розроблено для використання із модулем джерела даних "Система" у частині "ДБЖ" та представлення цих даних кадром "Властивості об'єкту" як комплексний об'єкт із властивостями, сигналізацією за окремими границями та записом.

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
srcAddr Адреса вихідного об'єкту Рядок Вхід Не атрибут Константа
alSup Придушення порушень Логічний Вхід Повний доступ Змінна
alDelay Затримка порушень, секунди Реальний Вхід Повний доступ Змінна 0
items Всі елементи Об'єкт Вихід Повний доступ Змінна
bChL Заряд батареї низький Реальний Вхід Повний доступ Змінна 20
bChLL Заряд батареї критичний Реальний Вхід Повний доступ Змінна 5
inVL Низька вхідна напруга Реальний Вхід Повний доступ Змінна 210
inVH Висока вхідна напруга Реальний Вхід Повний доступ Змінна 250
inFLL Дуже низька вхідна частота Реальний Вхід Повний доступ Змінна 40
inFL Низька вхідна частота Реальний Вхід Повний доступ Змінна 45
inFH Висока вхідна частота Реальний Вхід Повний доступ Змінна 55
inFHH Дуже висока вхідна частота Реальний Вхід Повний доступ Змінна 60
loadH Навантаження високе Реальний Вхід Повний доступ Змінна 80
loadHH Навантаження дуже високе Реальний Вхід Повний доступ Змінна 100
tH Температура висока Реальний Вхід Повний доступ Змінна 50
tHH Температура дуже висока Реальний Вхід Повний доступ Змінна 70
this Об'єкт Об'єкт Вхід Не атрибут Змінна
SHIFR Шифр Рядок Вхід Не атрибут Змінна
NAME Ім'я Рядок (переклад) Вхід Не атрибут Змінна
DESCR Опис Текст (переклад) Вхід Не атрибут Змінна
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити об'єкт контролеру джерела у модулі "Система" та встановити його Ідентифікатор на кшталт "SYSData".
2. Створити об'єкт параметру джерела у попередньо створеному об'єкті контролера та встановити його Ідентифікатор на кшталт "UPS".
3. Створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
4. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
5. У вкладці "Конфігурація шаблону" об'єкту логічного параметру Ви маєте встановити:
  • Адреса вихідного об'єкту — у адресу об'єкту вихідного параметру ДБЖ (дивіться крок 1), на кшталт "System.SYSData.UPS".
6. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати, у атрибуті параметру items, цей об'єкт з усіма атрибутами та їх властивостями. У випадку деяких порушень отримаємо відповідну інформацію у атрибуті параметру err, стосовно чого ви можете налаштувати атрибути границь відповідних порушень.
7. У візуальному інтерфейсі розробки модуля Vision розташуйте кадр "Властивості об'єкту" до будь-якої сторінки та зв'яжіть його із об'єктом цього параметру, створеного на кроці 4.
8. РЕЗУЛЬТАТ: При виконанні сторінки ви отримаєте таблицю з даними об'єкту, повідомленням про порушення у заголовку та об'єкті сигналізації та можливістю встановлення властивостей доступних до запису.


2.2 Мережеві пристрої за SNMP (SNMP)

1.1 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Об'єднання даних пристрою, доступного за протоколом SNMP, у комплексному об'єкті атрибуту "Всі елементи". Шаблон розроблено для використання із модулем джерела даних "SNMP" та представлення цих даних кадром "Властивості об'єкту" як комплексний об'єкт із властивостями, сигналізацією за окремими границями та записом. Враховуючи велику специфіку та розмаїття пристроїв доступних за протоколом SNMP, цей шаблон фактично є заготовкою та прикладом створення на його основі шаблону до відповідного пристрою із специфічною до нього обробкою вхідних властивостей, формування порушень та можливістю запису.

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
srcAddr Адреса вихідного об'єкту Рядок Вхід Не атрибут Константа
manTables Ручні таблиці Рядок Вхід Не атрибут Константа
alSup Придушення порушень Логічний Вхід Повний доступ Змінна
alDelay Затримка порушень, секунди Реальний Вхід Повний доступ Змінна 0
items Всі елементи Об'єкт Вихід Повний доступ Змінна
this Об'єкт Об'єкт Вхід Не атрибут Змінна
SHIFR Шифр Рядок Вхід Не атрибут Змінна
NAME Ім'я Рядок (переклад) Вхід Не атрибут Змінна
DESCR Опис Текст (переклад) Вхід Не атрибут Змінна
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
Конфігурація.

Конфігурація та використання

1. Створити об'єкт контролеру джерела у модулі "SNMP" та встановити його Ідентифікатор на кшталт "SYSData".
2. Створити об'єкт параметру джерела у попередньо створеному об'єкті контролера та встановити його Ідентифікатор на кшталт "DEV".
3. Створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
4. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
5. У вкладці "Конфігурація шаблону" об'єкту логічного параметру Ви маєте встановити:
  • Адреса вихідного об'єкту — у адресу об'єкту параметру вихідного пристрою SNMP (дивіться крок 1), на кшталт "SNMP.SYSData.DEV";
  • Ручні таблиці — вручну введіть деякі статичні MIB-змінні.
6. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати, у атрибуті параметру items, цей об'єкт з усіма атрибутами та їх властивостями. У випадку деяких порушень отримаємо відповідну інформацію у атрибуті параметру err, стосовно чого ви можете налаштувати атрибути границь відповідних порушень.
7. У візуальному інтерфейсі розробки модуля Vision розташуйте кадр "Властивості об'єкту" до будь-якої сторінки та зв'яжіть його із об'єктом цього параметру, створеного на кроці 4.
8. РЕЗУЛЬТАТ: При виконанні сторінки ви отримаєте таблицю з даними об'єкту, повідомленням про порушення у заголовку та об'єкті сигналізації та можливістю встановлення властивостей доступних до запису.

3 Сервіси

3.1 Сповіщувач за SMS, EMail-SMTP (ntf)

1.0 GPLv2 * => UserProtocol en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Комплексний шаблон сповіщення містить частини диспетчеру та вихідний користувацький протокол сповіщення за EMail(SMTP) та SMS.

ДИСПЕТЧЕР може виконуватися для вказаних повідомлень буферу повідомлень OpenSCADA та застосовується на Логічному рівні або об'єкті контролеру модуля JavaLikeCalc.

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
io UserPrt: Вихідний ВВ Об'єкт Вхід Не атрибут Змінна
tr UserPrt: Транспорт Об'єкт Вхід Не атрибут Змінна
tmOut Максимальний таймаут сповіщення, секунд Цілий Вхід Не атрибут Константа 5
messLev Рівень сповіщень, негативний для порушень Цілий Вхід Не атрибут Константа 1
messCat Категорія сповіщень, шаблон або регулярний вираз Рядок Вхід Не атрибут Константа al*:*
messCatExcl Категорія виключення повідомлень, у регулярному виразі Рядок Вхід Не атрибут Константа
emailState Поточний стан сповіщення Ел.поштою Рядок Вихід Тільки читання Змінна
emailTrAddr Вихідний транспорт SMTP підключень, порожньо для вимкнення Рядок Вхід Не атрибут Константа Sockets.out_SMTP
emailAuth Автентифікація, порожньо для вимкнення Рядок Вхід Не атрибут Константа user:pass
emailSender Відправник Рядок Вхід Не атрибут Константа noreply@oscada.org
emailReceiver Адреса призначення одержувача Рядок Вхід Не атрибут Константа test@oscada.org
emailTopic Тема Ел.пошти Рядок Вхід Не атрибут Константа Повідомлення
emailMess Повідомлення Ел.пошти Рядок Вхід Не атрибут Константа
SMSState Поточний стан повідомлення SMS Рядок Вихід Тільки читання Змінна
SMSTrAddr Послідовний транспорт SMS, порожньо для вимкнення Рядок Вхід Не атрибут Константа Serial.out_SMS
SMSPin Пін-код SMS, порожньо для вимкнення Рядок Вхід Не атрибут Константа 1111
SMSTel Адреса одержувача SMS, номер телефону Рядок Вхід Не атрибут Константа +380XXXXXXXXX
SMSTextMd SMS у текстовому режимі, інакше PDU Логічний Вхід Не атрибут Константа 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація та використання

1. Створити параметр у об'єкті контролеру Логічного рівня або об'єкт контролеру у модулі DAQ.JavaLikeCalc.
2. Створити вихідний транспорт типу "Послідовний" та встановити його Ідентифікатор на кшталт "SMS", один транспорт підходить для багатьох одержувачів.
3. Встановити властиву адресу, тільки для Послідовного пристрою. Швидкість, формат асинхронних даних та таймаути послідовного порту будуть налаштовані функцією.
4. Створити вихідний транспорт типу "Сокети" або "SSL" та встановити його Ідентифікатор на кшталт "SMTP", один транспорт підходить для багатьох одержувачів.
5. Встановити властиву адресу, для Сокетів(25) або SSL(465). Таймаути транспорту будуть налаштовані функцією.
6. У вкладці "Конфігурація шаблону" ви маєте встановити:
  • Максимальний таймаут сповіщення, секунд.
  • Рівень повідомлень, негативний для порушень.
  • Категорія повідомлень, шаблон або регулярний вираз.
  • Категорія виключення повідомлень, у регулярному виразі
  • Вихідний транспорт SMTP підключень, порожньо для вимкнення.
  • Автентифікація, порожньо для вимкнення.
  • Відправник.
  • Адреса призначення одержувача.
  • Тема Ел.пошти.
  • Повідомлення Ел.пошти.
  • Послідовний транспорт SMS, порожньо для вимкнення.
  • Пін-код SMS, порожньо для вимкнення.
  • Адреса одержувача SMS, номер телефону.
  • SMS у текстовому режимі, інакше PDU.
7. РЕЗУЛЬТАТ: Надсилання вказаних сповіщень як SMS або EMail(SMTP).

"SMS" ЧАСТИНА ВИХІДНОГО КОРИСТУВАЦЬКОГО ПРОТОКОЛУ надає операції із SMS за допомогою GSM-модему, підключеного як послідовний пристрій. Наразі підтримується лише відправка SMS сповіщень на номер віддаленого мобільного телефону або GSM-модему. Для надсилання підтримується: вимкнення ЛУНИ, перевірка та встановлення PIN, надсилання у PDU та текстовому режимі.

Структура XML-запиту вихідного користувацького протоколу
<cmd pin="1111" tel="+380XXXXXXXXX" text="{0|1}" err="1:Error">{SMSText}</cmd>

cmd — команда, наразі наявне лише "send";
pin — PIN-код для доступу до SIM-карти;
tel — номер телефону одержувача (віддалений номер телефону або GSM-модем);
text{0,1} — SMS у текстовому режимі, лише ASCII;
SMSText — текст повідомлення;
err — встановлюється у результат запиту.

Конфігурація та використання

1. Створити вихідний транспорт типу "Послідовний" та встановити його Ідентифікатор на кшталт "SMS", один транспорт підходить для багатьох одержувачів.
2. Встановити властиву адресу. Швидкість, формат асинхронних даних та таймаути послідовного порту будуть налаштовані функцією.
3. Створити потрібний об'єкт користувацького протоколу заснованого на шаблонах, із Ідентифікатором на кшталт "SMS".
4. Розмістити деякі команди запиту безпосередньо у наявній або новій внутрішній процедурі OpenSCADA на кшталт:
req = SYS.XMLNode("send"); req.setAttr("ProtIt","SMS").setAttr("pin","1111").setAttr("tel","+380XXXXXXXXX").setText("Notify message");
SYS.Transport.Serial.out_SMS.messIO(req, "UserProtocol");
rez = req.attr("err").toInt() ? req.attr("err") : "OK";
5. РЕЗУЛЬТАТ: У змінній rez ви отримаєте "OK" якщо не виникло жодної помилки та повідомлення вдало надіслано одержувачу.

"SMTP" ЧАСТИНА ВИХІДНОГО КОРИСТУВАЦЬКОГО ПРОТОКОЛУ надає операції із SMTP-сервером щодо доставки електронної пошти відправленням через TCP-Сокет або SSL. Наразі підтримуються: TCP, SSL, AUTH, кодування теми у UTF-8.

Структура XML-запиту вихідного користувацького протоколу
<send auth="{user}:{pass}" from="{FromAddr}" to="{ToAddr}" topic="{My Topic}" err="1:Error">{MessageText}</send>

topic — тема повідомлення;
from — адреса відправника;
to — адреса призначення отримувача;
auth — користувач та пароль отримувача;
MessageText — текст повідомлення;
err — встановлюється у результат запиту.

Конфігурація та використання

1. Створити вихідний транспорт типу "Сокети" або "SSL" та встановити його Ідентифікатор на кшталт "SMTP", один транспорт підходить для багатьох одержувачів.
2. Встановити властиву адресу, для Сокетів(25) або SSL(465). Таймаути транспорту будуть налаштовані функцією.
3. Створити потрібний об'єкт користувацького протоколу заснованого на шаблонах, із Ідентифікатором на кшталт "SMTP".
4. Розмістити деякі команди запиту безпосередньо у наявній або новій внутрішній процедурі OpenSCADA на кшталт:
req = SYS.XMLNode("send");
req.setAttr("ProtIt","SMTP").setAttr("from","noreply@oscada.org").setAttr("to","oscada@oscada.org").setAttr("topic","My topic").setText("My message");
SYS.Transport.Sockets.out_SMTP.messIO(req, "UserProtocol");
rez = req.attr("err").toInt() ? req.attr("err") : "OK";
5. РЕЗУЛЬТАТ: У змінній rez ви отримаєте "OK" якщо не виникло жодної помилки та повідомлення вдало надіслано одержувачу.


3.2 Опрацювання ініціативних підключень щодо асоційованих вихідних транспортів (initConAssociateTrs)

1.2 GPLv2 * en, uk, ru Роман Савоченко
Результат та оперативні налаштування.

Шаблон служби опрацювання вхідних ініціативних підключень створено для надання останньої ланки реалізації та підтримки концепції збору даних у пасивному режимі та ініціативного підключення, а саме — контролю асоційованих транспортів створюваних вхідним транспортом за кожного підключення.

At.png Після реалізації цього контролю разом із новою функцією загального-уніфікованого підключення вихідного транспорту outAt() цей шаблон став застарілим для джерел адаптованих до використання нового механізму, але ви все ще можете використовувати шаблон для неадаптованих джерел.

Функцію створення вихідних асоційованих транспортів за підключенням на вхідний наразі підтримує лише модуль транспортів "Сокети" та для TCP-сокетів.

Контроль асоційованих транспортів передбачає:

Шаблон може керувати контейнерами об'єктів джерел даних, побудованих як у вигляді DAQ-об'єктів контролерів, так і параметрів логічного рівня, що репрезентують джерело даних та мають поле визначення адреси транспорту та що загалом визначається конфігураційним полем "srcObjPath" із форматом {CntrAddr}:{TrCntrFldAddr}, де:

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
inTransport Вхідний транспорт Рядок Вхід Не атрибут Постійна InitiateCons
outTrTm Таймаути вихідних транспортів Рядок Вхід Не атрибут Постійна 10:0.1
srcObjPath Шлях об'єкту джерела Рядок Вхід Не атрибут Постійна ModBus:%2fcntr%2fcfg%2fADDR
prcTr Опрацьовані транспорти Об'єкт Вихід Тільки читання Змінна
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
Конфігурація.

Конфігурація та використання

1. Створити вхідний транспорт прийняття ініціативних підключень у модулі "Сокети" із назвою на кшталт "InitiateCons".
2. Встановити, для попередньо створеного транспорту, потрібну адресу відкриття вхідного сокету та перевести його у режим створення асоціативних вихідних транспортів, залишивши поле протоколу порожнім.
3. Передбачити контейнер джерел даних до яких асоціативні транспорти мають під'єднуватися, який може бути або DAQ-модулем (як то "DAQ.ModBus"), або логічним контролером (як то "DAQ.LogicLev.Sources"), чи параметром у ньому (як то "DAQ.LogicLev.PLC.Sources"), із вмістом параметрів логічного рівня, що представляють джерело даних.
4. Для цього шаблону, створити та запустити об'єкт логічного контролеру або використати будь-який наявний з потрібними властивостями планування.
5. Створити об'єкт логічного параметру та обрати цей шаблон для нього. Ввімкнути параметр.
6. У вкладці "Конфігурація шаблону" об'єкту логічного параметру треба встановити:
  • Вхідний транспорт — у значення ідентифікатору вхідного транспорту, створеного у пункті 1, на кшталт "InitiateCons;
  • Таймаути вихідних транспортів — збільшити першу цифру для дуже повільних підключень та типове є нормальним для більшості ситуацій;
  • Шлях об'єктів джерела — встановити згідно до пункту 3, для першої частини, та у шлях до контрольного поля, для другої частини, наприклад, та типово для "ModBus", це — "ModBus:%2fcntr%2fcfg%2fADDR".
6. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати, у атрибуті параметру prcTr інформацію о вдало опрацьованих, а відтак і вдало пов'язаних із транспортом джерелах даних. У випадку деяких порушень отримаємо відповідну інформацію у атрибуті параметру err. Інформація про відсутність представницького об'єкту для отриманого ідентифікатору поміщається у протоколі порушень.

4 Для WebUser

4.1 WebUser: HTTP Файловий Сервер (fileServerHTTP)

1.0 GPLv2 * en, uk Роман Савоченко

Шаблон для реалізації Файлового Серверу HTTP безпосередньо в OpenSCADA, який корисний за відсутності повнофункціонального для функцій обслуговування файлових запитів із OpenSCADA Web-інтерфейсів.

Наразі реалізовано лише запити файлів HTTP запитом GET. Також реалізуються запити Часток Контенту за одним діапазоном зі змушуванням до цього режиму за певного налаштованого розміру файлу. At.png Належним чином працює лише для відео і аудіо файлів і не працює для інших файлів, особливо документів, тож ви маєте налаштувати обмеження на розмір файлів для цілковитого читання у максимальний розмір ваших документів. Для належного функціювання запитів Часток Контенту ми маємо реалізувати HTTP запит HEAD у модулі Protocol.HTTP перед реалізацією тут!

ВВ шаблону

Ідентифікатор Ім'я Тип Режим Атрибут Конфігурація Значення
rez Результат Рядок Вхід Не атрибут Змінна 200 OK
HTTPreq HTTP запит Рядок Вхід Не атрибут Змінна
url URL Рядок Вхід Не атрибут Змінна
page WWW-сторінка Рядок Вихід Не атрибут Змінна
HTTPvars HTTP змінні Об'єкт Вихід Не атрибут Змінна
baseD Базовий каталог Рядок Вхід Не атрибут Константа /data/share_res/local/Lib/
fSzSolidLim Обмеження на розмір файлу для читання цілком, інакше вмикається вміст частками Реальний Вхід Не атрибут Константа 10e6
f_start Прапорець запуску функції Логічний Вхід Не атрибут Змінна 0
f_frq Частота обчислення функції, Гц Реальний Вхід Не атрибут Змінна 1000
f_stop Прапорець зупинки функції Логічний Вхід Не атрибут Змінна 0
f_err Помилка функції Рядок Вхід Не атрибут Змінна 0
Конфігурація.

Конфігурація і використання

1. Створити сторінку у модулі UI.WebUser із певним доцільним ідентифікатором PageId.
2. У вкладці "Процедура" необхідно встановити:
  • Базовий каталог від якого сторінка буде шукати файли.
  • Обмеження на розмір файлу для читання цілком, інакше вмикається вміст частками.
3. РЕЗУЛЬТАТ: Відкриття URL "http://{OpenSCADAHost}/WebUser/{PageId}/{MyFile}" у Web Оглядачі відкриє та надішле вам файл на ФС "{baseD}/{MyFile}".
Libs/Main/uk - GFDLMarch 2024OpenSCADA 0.9.7