Бібліотеки/Документи - OpenSCADAWiki

# Бібліотеки/Документи

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

English • ‎mRussian • ‎Українська

Назва | Версія | Ліцензія | Джерело | Мови | Автор | Іконка | Опис
--- | --- | --- | --- | --- | --- | --- | ---
Бібліотека звітів та документів | 2.0, 2.1 | GPLv2 | OscadaLibs.db (SQL, GZip) > DAQ.JavaLikeCalc.doc vcaBase.db (SQL, GZip) > VCA.wlb_doc | en, uk, ru | Роман Савоченко |  | Надає комбіновану бібліотеку звітів, документів та пов'язаних функцій загальної та промислової автоматизації. Засновано: Січень 2008 Початково створено, для функцій: у старій Wiki Використано: більшість проектів на OpenSCADA Завдання (To Do): - розширити документ "Річний звіт місячних значень" опрацюванням переповнень лічильників введених вручну; - розширити функцію документів "Діаграма" підтримкою смужкового графіку (гістограм).

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

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

## 1 Документи

Містить елементи-кадри документів шаблонного та кінцевого типів, що призначені для розташування у розділі "Документи" (вид відображення) дерева сторінок проекту, побудованого за концепцією об'єктів сигналізації кореневої сторінки "RootPgSo". Однак, вони можуть бути розташовані як окремі сутності або у складі власної концепції керування сторінками, але тут треба враховувати, що кадри часто посилаються та викликають панель документів!

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

- такий що постачається з готовим та відповідним пакетом дистрибутиву Linux на кшталт "openscada-libdb-vca", "openscada-LibDB.VCA";
- найбільш актуальний та безпосередньо отриманий з репозиторію subversion, перетворений у файл БД SQLite шляхом:

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

- завантаження прикріпленого тут.

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

### 1.1 Документ - архівний (doc) | 1.2 | GPLv2 | * | en, uk, ru | Роман Савоченко

Кадр, представлений на рисунку 1.1, є шаблоном документу архівного типу, він надається як приклад та для побудови власних архівних документів на його основі. Основною специфікою документу цього типу є періодична генерація на рівні СВУ-сеансу (у фоні) та розміщення фінальних та готових документів у архіві, таблиця БД сеансу СВУ-проекту "prj_{ProjID}_ses".

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

Відтак, документи такого типу доцільні до використання на стаціонарних АРМ оператору, навіть якщо це відтворення із серверу візуалізації, та малокорисні у WEB-інтерфейсі!

Рис.1.1. Кадр "Документ - архівний" у режимі розробки.

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

#### 1.1.1 Добовий звіт середніх за годину значень (docRepDay) | 3.2 | GPLv2 | * | en, uk, ru | Роман Савоченко | -1 мс (предок)

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

Робота у первинному архівному режимі відбувається із періодом 5 хвилин, коли протягом години формується один запис-рядок. Останній запис-рядок закривається на п'ятій хвилині нової години (наприклад, 14:05) та розпочинається новий запис-рядок. Весь та завершений документ архівується на третій хвилині "Звітного часу (repHour)" наступного дня (наприклад, 09:03).

- Спонсоровано щодо динамізації: ТОВ BLUE STAR GROUP і Вінницька Птахофабрика

Рис.1.1.1. Документ "Добовий звіт середніх за годину значень" у режимі виконання.

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

Для кожного документу можна встановити:

- атрибут "Розмір архіву (n)" у потрібне значення розміру архіву документу або у 0 для динамічного режиму;
- атрибут "Архіватор (arch)" у потрібний архіватор, що обслуговує визначені параметри; ви не маєте використовувати архіватори із якістю гірше за одну хвилину;
- атрибут "Звітний час (repHour)" у годину звітності документу — годину початку доби;
- атрибут "Ввімкнути графік (enGraph)" для ввімкнення/вимкнення графіку;
- атрибут "Заголовок (title)" у специфічний заголовок документу.

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

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Конфігурація | Конфігураційний шаблон | Опис
--- | --- | --- | --- | --- | ---
n | Розмір архіву, 0 для динамічного режиму | Цілий | Стала |  | Встановленням розміру архіву у 0 ви перемкнете документ у динамічний режим, по замовченню 100.
repHour | Звітний час | Цілий | Стала |  | Година що вважається стартом звіту — початок дня, по замовченню 9.
Віджет документу (doc)
arch | Архіватор | Рядок | Стала |  | Архіватор значень, по замовченню та найліпше використовувати одно-хвилинний архіватор "FSArch.1m".
title | Заголовок | Рядок | Стала |  | Заголовок звіту
enGraph | Ввімкнути графік | Логічний | Стала |  | Ввімкнено по замовченню.
Параметр {n} від 1 до 10.
p{n}name | Параметр {n}: назва | Рядок | Вхідний зв'язок | Parameter{n}|NAME | Назва параметру у заголовку таблиці.
p{n}var | Параметр {n}: змінна | Адреса | Вхідний зв'язок | Parameter{n}|var | Адреса до атрибуту параметру із архівом значень.
p{n}ed | Параметр {n}: одиниця виміру | Рядок | Вхідний зв'язок | Parameter{n}|ed |
p{n}prec | Параметр {n}: точність | Цілий | Вхідний зв'язок | Parameter{n}|prec |
p{n}cntr | Параметр {n}: це лічильник | Логічний | Стала | Parameter{n}|isCntr | Встановлюється для лічильників з метою отримання значень як різницю.
p{n}max | Параметр {n}: максимум | Реальне | Вхідний зв'язок | Parameter{n}|max | Використано для визначення шкали параметру на графіку.
p{n}min | Параметр {n}: мінімум | Реальне | Вхідний зв'язок | Parameter{n}|min | Використано для визначення шкали параметру на графіку.

#### 1.1.2 Місячний звіт середніх за добу значень (docRepMonth) | 3.2 | GPLv2 | * | en, uk, ru | Роман Савоченко | -1 мс (предок)

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

Робота у первинному архівному режимі відбувається із періодом 5 хвилин, коли протягом доби формується один запис-рядок. Останній запис-рядок закривається на п'ятій хвилині нової доби (наприклад, 05 09:05) та розпочинається новий запис-рядок. Весь та завершений документ архівується на третій хвилині "Звітного часу (repHour)" наступного місяця (наприклад, 05 09:03).

- Спонсоровано щодо динамізації: ТОВ BLUE STAR GROUP

Рис.1.1.2. Документ "Місячний звіт середніх за добу значень" у режимі виконання.

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

Для кожного документу можна встановити:

- атрибут "Розмір архіву (n)" у потрібне значення розміру архіву документу або у 0 для динамічного режиму;
- атрибут "Архіватор (arch)" у потрібний архіватор, що обслуговує визначені параметри; ви не маєте використовувати архіватори із якістю гірше за одну добу;
- атрибут "Звітний час (repHour)" у годину звітності документу — годину початку доби;
- атрибут "Ввімкнути графік (enGraph)" для ввімкнення/вимкнення графіку;
- атрибут "Заголовок (title)" у специфічний заголовок документу.

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

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Конфігурація | Конфігураційний шаблон | Опис
--- | --- | --- | --- | --- | ---
n | Розмір архіву, 0 для динамічного режиму | Цілий | Стала |  | Встановленням розміру архіву у 0 ви перемкнете документ у динамічний режим, по замовченню 100.
repHour | Звітний час | Цілий | Стала |  | Година що вважається стартом звіту — початок дня, по замовченню 9.
Віджет документу (doc)
arch | Архіватор | Рядок | Стала |  | Архіватор значень, по замовченню та найліпше використовувати одно-хвилинний архіватор "FSArch.1m".
title | Заголовок | Рядок | Стала |  | Заголовок звіту
enGraph | Ввімкнути графік | Логічний | Стала |  | Ввімкнено по замовченню.
Параметр {n} від 1 до 10.
p{n}name | Параметр {n}: назва | Рядок | Вхідний зв'язок | Parameter{n}|NAME | Назва параметру у заголовку таблиці.
p{n}var | Параметр {n}: змінна | Адреса | Вхідний зв'язок | Parameter{n}|var | Адреса до атрибуту параметру із архівом значень.
p{n}ed | Параметр {n}: одиниця виміру | Рядок | Вхідний зв'язок | Parameter{n}|ed |
p{n}prec | Параметр {n}: точність | Цілий | Вхідний зв'язок | Parameter{n}|prec |
p{n}cntr | Параметр {n}: це лічильник | Логічний | Стала | Parameter{n}|isCntr | Встановлюється для лічильників з метою отримання значень як різницю.
p{n}max | Параметр {n}: максимум | Реальне | Вхідний зв'язок | Parameter{n}|max | Використано для визначення шкали параметру на графіку.
p{n}min | Параметр {n}: мінімум | Реальне | Вхідний зв'язок | Parameter{n}|min | Використано для визначення шкали параметру на графіку.

### 1.2 Документ - динамічний (docDin) | 1.3 | GPLv2 | * | en, uk, ru | Роман Савоченко | -2 мс (вимкнено)

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

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

Відтак, документи такого типу дозволено до використання на всіх типах інтерфейсів, включно з WEB-інтерфейсами, але деякі документи, засновані на великих архівних даних, потребують не повільних обчислювальних систем!

Рис.1.2. Кадр "Документ - динамічний" у режимі розробки.

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

#### 1.2.1 Звіт миттєвих значень (docRepInstVals) | 2.1 | GPLv2 | * | en, uk, ru | Роман Савоченко

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

Рис.1.2.1. Документ "Звіт миттєвих значень" у режимі виконання.

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

Для кожного документу можна встановити:

- атрибут "Ввімкнути графік (enGraph)" для ввімкнення/вимкнення графіку;
- атрибут "Заголовок (title)" у специфічний заголовок документу.

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

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Конфігурація | Конфігураційний шаблон | Опис
--- | --- | --- | --- | --- | ---
Віджет документу (doc)
title | Заголовок | Рядок | Стала |  | Заголовок звіту
enGraph | Ввімкнути графік | Логічний | Стала |  | Ввімкнено по замовченню.
Параметр {n} від 1 до 10.
p{n}name | Параметр {n}: назва | Рядок | Вхідний зв'язок | Parameter{n}|NAME | Назва параметру у заголовку таблиці.
p{n}var | Параметр {n}: змінна | Адреса | Вхідний зв'язок | Parameter{n}|var | Адреса до атрибуту параметру із архівом значень.
p{n}ed | Параметр {n}: одиниця виміру | Рядок | Вхідний зв'язок | Parameter{n}|ed |
p{n}prec | Параметр {n}: точність | Цілий | Вхідний зв'язок | Parameter{n}|prec |
p{n}max | Параметр {n}: максимум | Реальне | Вхідний зв'язок | Parameter{n}|max | Використано для визначення шкали параметру на графіку.
p{n}min | Параметр {n}: мінімум | Реальне | Вхідний зв'язок | Parameter{n}|min | Використано для визначення шкали параметру на графіку.

#### 1.2.2 Протокол порушень (docAlarmsRep) | 1.7 | GPLv2 | * | en, uk, ru | Роман Савоченко | -2 мс (вимкнено)

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

Рис.1.2.2. Документ "Протокол порушень" у режимі виконання.

Використання — розробка
Документ призначено для виконання ролі сторінки-шаблону, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. До кожного документу може бути встановлено власний рівень повідомлень та категорію опрацьовуваних порушень у атрибуті "Категорія повідомлень (messCat)", який по замовченню є загальним "1:al*:*" та може бути спеціалізованим до джерел даних. Типова глибина документу у минуле встановлена у 1 день.

Використання — виконання
У режимі виконання відображаються визначені повідомлення про порушення. Додатково ви можете керувати властивостями відображення документу, для чого використовується панель управління документом, викликати яку можна натиснувши ліву клавішу миші у області документу.

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Опис
--- | --- | --- | ---
messCat | Категорія повідомлень | Рядок | Запитаний рівень та категорія повідомлень про порушення, типово "1:al*:*".

#### 1.2.3 Протокол втручань (docUsersSet) | 1.8 | GPLv2 | * | en, uk, ru | Роман Савоченко

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

Рис.1.2.3. Документ "Протокол втручань" у режимі виконання.

Використання — розробка
Документ призначено для виконання ролі сторінки, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. Документ не передбачає жодної конфігурації оскільки повідомлення про втручання є загальними. Типова глибина документу у минуле встановлена у 1 день.

Використання — виконання
У режимі виконання відображаються повідомлення про втручання користувачів. Додатково ви можете керувати властивостями відображення документу, для чого використовується панель управління документом, викликати яку можна натиснувши ліву клавішу миші у області документу.

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Опис
--- | --- | --- | ---
messArchs | Архіватори повідомлень | Рядок | Архіватори у формі — "AMod.Archiver[;AModN.ArchiverN]".
messCat | Категорія повідомлень | Рядок | Запитаний рівень та категорія повідомлень, типово — "2:/(^|.*:)OP*/".

#### 1.2.4 Протокол повідомлень (docMessRep) | 1.5 | GPLv2 | * | en, uk, ru | Роман Савоченко

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

Документ також надає просту фільтрацію за обраним критерієм: "Вимкнено", "Дата та час (dttm)", "Рівень (lev)", "Параметр (prm)", "Опис (dscr)", "Значення (alrm)".

- Спонсорування: Устьянцев Михайло

Рис.1.2.4. Документ "Протокол повідомлень" у режимі виконання.

Використання — розробка
Документ призначено для виконання ролі сторінки-шаблону, а, відповідно, він має безпосередньо розташовуватися у дерево проекту.

До кожного документу може бути встановлено власний рівень та категорію опрацьовуваних повідомлень у атрибуті "Категорія повідомлень (messCat)", який, по замовченню, є загальним "1:/^(al|OP|/sub_UI/mod_VCAEngine)/" та може бути спеціалізованим під себе. Також ви можете визначити архіватори виключного використання, встановленням атрибуту "Перелік архіваторів (archLs)". Типова глибина документу у минуле встановлена у 1 день.

Використання — виконання
У режимі виконання відображаються визначені повідомлення. Додатково ви можете керувати властивостями відображення документу, для чого використовується панель управління документом, викликати яку можна натиснувши ліву клавішу миші у області документу.

Обранням критерію фільтрації та веденням тексту повідомлень потрібних для представлення, користувач може побачити лише потрібні повідомлення.

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Опис
--- | --- | --- | ---
messCat | Категорія повідомлень | Рядок | Запитаний рівень та категорія повідомлень, типово "1:/^(al|OP|/sub_UI/mod_VCAEngine)/".
archLs | Перелік архіваторів, "{ArhMod}.{Arh}[;{ArhModN}.{ArhN}]" | Рядок | Перелік архіваторів повідомлень, лише з яких повідомлення будуть запитуватися, встановіть порожнім для загального доступу.

#### 1.2.5 Звіт двох робочих змін (docRep2WorkSh) | 2.0 | GPLv2 | * | en, uk, ru | Роман Савоченко

Документ, представлений на рисунку 1.2.5, слугує для генерації звіту годинних значень до 10 параметрів двох робочих змін доби із результатною сумою для потоків та схожих параметрів. Документ динамічного типу, відтак ви можете визначити час та глибину (фіксована) даних. Документ загалом використовує та представляє представницьку структуру DAQ-шаблону "Аналоговий сигнал". У якості джерела даних документу виступають архіви значень DAQ-параметрів.

- Спонсоровано: ТОВ "ДІЯ"

Рис.1.2.5. Документ "Звіт двох робочих змін" у режимі виконання.

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

Також ви маєте визначити архіватор одно-годинних значень у атрибуті "Архіватор (arch)", яким обслуговуються вказані параметри, оскільки цей документ потребує таких даних. Якщо початок першої робочої зміни відрізняється від 8 (восьмої) години, то ви маєте потрібну годину вказати у атрибуті "Початкова година (stH)".

Використання — виконання
У режимі виконання відображаються елементи, для яких встановлено зв'язки. Додатково ви можете керувати властивостями відображення документу, для чого використовується панель управління документом, викликати яку можна натиснувши ліву клавішу миші у області документу. Оскільки глибину документу у історію зафіксовано на значенні 12 годин (одна робоча зміна), користувач може лише змінити час документу!

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Конфігурація | Конфігураційний шаблон | Опис
--- | --- | --- | --- | --- | ---
Віджет документу (doc)
stH | Початкова година | Цілий | Стала |  | Початковий час робочої зміни, від 0 до 11 годин, по замовченню 8.
arch | Архіватор | Рядок | Стала |  | Одно-годинний архіватор, по замовченню "FSArch.1h".
Параметр {n} від 1 до 10.
p{n}_sh | Параметр {n}: шифр | Рядок | Вхідний зв'язок | Parameter{n}|NAME | Шифр параметру у таблиці.
p{n}_nm | Параметр {n}: опис | Рядок | Вхідний зв'язок | Parameter{n}|DESCR | Опис параметру у таблиці.
p{n}_val | Параметр {n}: значення | Адреса | Вхідний зв'язок | Parameter{n}|var | Адреса до атрибуту параметру із архівом значень.
p{n}_ed | Параметр {n}: од.виміру | Рядок | Вхідний зв'язок | Parameter{n}|ed |
p{n}_prec | Параметр {n}: точність | Цілий | Вхідний зв'язок | Parameter{n}|prec |
p{n}_flSum | Параметр {n}: показник підсумку | Логічний | Стала | Parameter{n}|flSum | Ознака обчислення суми значень параметру для робочої зміни.

#### 1.2.6 Річний звіт місячних значень (docRepYear) | 1.3 | GPLv2 | * | en, uk, ru | Роман Савоченко | -2 мс (вимкнено)

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

Документом вперше запроваджено ручне введення архівних значень великого інтервалу часу вимірювання, яким у цьому випадку є місяць, як недетермінований інтервал. Найбільшу актуальність ця функція становить для лічильників, які з тієї або іншої причини неможливо підключити до системи прямо, із безперервним вимірюванням або періодичним вивантаженням ділянок архіву. Визначення параметру до ручного вводу здійснюється встановленням постійної isMan відповідного параметру, що вмикає елементи форми нагорі документу, за відповідних прав ("root" або у групі "ITW"), та доступ до даних для таблиці та тренду суворо за інтервалом документу — місяць, як і їх введення.

Зберігання введених вручну даних здійснюється або традиційно у архів значень, із записом лише одного значення на представницький інтервал, тобто із недостовірними значеннями між ними; або окремим записом зі значенням у архіві повідомлень, що також запроваджено цим документом вперше:

  КАТЕГОРІЯ: визначає ID джерела SrcID у форматі "val{SrcID}", де:
  - "val*" — типовий шаблон-ознака значення, який може бути безпосередньо використано у фільтрі категорії для визначення суто значень у повідомленнях;
  - SrcID — ідентифікатор джерела, що безпосередньо вводиться постійною у адресі параметру var.
  ТЕКСТ: назва Name та значення Value параметру у форматі "{Name}: {Value}".

Архіватор повідомлень модуля FSArch має бути встановлено у наступних атрибутах для здійснення коректної роботи разом із цим документом: встановити "Запобігати дублікатам", "Вважати дублікатами та запобігати, для рівного часу, категорії, рівня" та встановити "Розмір файлів за часом" у 3660 діб. Модуль DBArch має працювати без такого роду специфіки.

Рис.1.2.6. Документ "Річний звіт місячних значень" у режимі виконання.

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

Для кожного документу можна встановити:

- атрибут "Архіватор (arch)" у потрібний архіватор значень та повідомлень зі значенням у формі {ValArch};{MessArch}, які обслуговують визначені параметри; ви не маєте використовувати архіватори із якістю гірше за одну добу для значень;
- атрибут "Ввімкнути графік (enGraph)" для ввімкнення/вимкнення графіку;
- атрибут "Заголовок (title)" у специфічний заголовок документу.

Використання — виконання
У режимі виконання відображаються елементи, для яких встановлено зв'язки. Рік формування документу доступно до обрання на горі цього документу, від поточного та на десять років у глиб.

За наявності прав ("root" або у групі "ITW") користувач має можливість введення значень параметрів із позначкою ручного введення (isMan) за допомогою елементів форми нагорі, де можна обрати місяць, параметр та значення, яке буде записано одразу після підтвердження та відображено у документі.

Властивості зв'язування та конфігурації

Ідентифікатор | Ім'я | Тип | Конфігурація | Конфігураційний шаблон | Опис
--- | --- | --- | --- | --- | ---
Віджет документу (doc)
arch | Архіватор, {ValArch};{MessArch} | Рядок | Стала |  | Архіватор значень та повідомлень зі значенням у формі {ValArch};{MessArch}, по замовченню та найліпше використовувати одно-годинний архіватор "FSArch.1h".
title | Заголовок | Рядок | Стала |  | Заголовок звіту
enGraph | Ввімкнути графік | Логічний | Стала |  | Ввімкнено по замовченню.
depth | Глибина для обрання, років | Цілий | Стала |  | Глибина років для обрання.
showOrigCntr | Показати оригінальний лічильник | Логічний | Стала |  | Показати значення оригінального лічильника поряд із інтервальним значенням.
Параметр {n} від 1 до 10.
p{n}name | Параметр {n}: назва | Рядок | Вхідний зв'язок | Parameter{n}|NAME | Назва параметру у заголовку таблиці.
p{n}var | Параметр {n}: змінна | Адреса | Вхідний зв'язок | Parameter{n}|var | Адреса до атрибуту параметру із архівом значень або ідентифікатор параметру (val:{PrmId}) для ручного запису значень із збереженням у архіві повідомлень.
p{n}ed | Параметр {n}: одиниця виміру | Рядок | Вхідний зв'язок | Parameter{n}|ed |
p{n}prec | Параметр {n}: точність | Цілий | Вхідний зв'язок | Parameter{n}|prec |
p{n}cntr | Параметр {n}: це лічильник | Логічний | Стала | Parameter{n}|isCntr | Встановлюється для лічильників з метою отримання значень як різницю.
p{n}max | Параметр {n}: максимум | Реальне | Вхідний зв'язок | Parameter{n}|max | Використано для визначення шкали параметру на графіку.
p{n}min | Параметр {n}: мінімум | Реальне | Вхідний зв'язок | Parameter{n}|min | Використано для визначення шкали параметру на графіку.
p{n}isMan | Параметр {n}: ручний | Логічний | Стала | Parameter{n}|isMan | Позначає параметр як до ручного введення.

## 2 Сервісні пов'язані функції

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

Для адресації до функцій цієї бібліотеки можна використати статичну адресу виклику DAQ.JavaLikeCalc.lib_doc.{Func}() або динамічну SYS.DAQ.JavaLikeCalc["lib_doc"]["{Func}"].call(), SYS.DAQ.JavaLikeCalc["lib_doc"].{Func}(). Де {Func} — ідентифікатор функції у бібліотеці.

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

- такий що постачається з готовим та відповідним пакетом дистрибутиву Linux на кшталт "openscada-libdb-main", "openscada-LibDB.Main";
- найбільш актуальний та безпосередньо отриманий з репозиторію subversion, перетворений у файл БД SQLite шляхом:

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

- завантаження прикріпленого тут.

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

### 2.1 Отримання значення з архіву значень (getVal) | 1.1 | GPLv2 | * | en, uk, ru | Роман Савоченко

Запит значення за визначений час (time:uTime) із пов'язаного архіватору archtor (FSArch.1m) та формування результату із визначеною кількістю знаків prec після коми.

Функція працює із об'єктами атрибутів DAQ-параметрів до яких підключено архів, та адреса addr до нього записується повним шляхом на кшталт "/DAQ/LogicLev/gen/prm_F3/a_var". Для порожнього archtor запит буде здійснюватися загально до усіх із періодичністю буферу архіву.

У процесі отримання значення, час цього значення може відрізнятися від запитаного, якщо архів на цей час відсутній та повертається найближче, запобігти чому можна встановивши strong. Коли-ж таки потрібно контрольовано отримати найближче достовірне значення, наприклад для лічильників, то передбачено аргумент часу tryTo до якого шукати найближче достовірне значення. Час у tryTo може бути як більше, так і менше за час запиту.

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

Параметри

Ідентифікатор | Параметр | Тип | Режим | Прихований | По замовченню
--- | --- | --- | --- | --- | ---
rez | Результат | Рядок | Повернення | false |
addr | Адреса | Рядок | Вхід | false |
time | Час, секунд | Цілий | Вхід | false |
uTime | Час, мікросекунди | Цілий | Вхід | false |
prec | Знаків після коми | Цілий | Вхід | false | 3
archtor | Архіватор | Рядок | Вхід | false |
strong | Точно | Логічний | Вхід | false | 0
tryTo | Пробувати значення до, мікросекунди | Цілий | Вхід | false | 0

### 2.2 Середнє значення архіву значень (averVal) | 1.1 | GPLv2 | * | en, uk, ru | Роман Савоченко

Обчислення середнього значення за вказаний період часу [bTime...eTime], для даних архіватору archtor (FSArch.1m) та формування результату із визначеною кількістю знаків prec після коми.

Функція працює із об'єктами атрибутів DAQ-параметрів до яких підключено архів, та адреса addr до нього записується повним шляхом на кшталт "/DAQ/LogicLev/gen/prm_F3/a_var". Для порожнього archtor запит буде здійснюватися загально до усіх із періодичністю буферу архіву.

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

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

Параметри

Ідентифікатор | Параметр | Тип | Режим | Прихований | По замовченню
--- | --- | --- | --- | --- | ---
rez | Результат | Рядок | Повернення | false |
addr | Адреса | Рядок | Вхід | false |
bTime | Час початку, секунд | Цілий | Вхід | false |
eTime | Час кінця, секунд | Цілий | Вхід | false |
prec | Знаків після коми | Цілий | Вхід | false | 3
archtor | Архіватор | Рядок | Вхід | false |
actPerc | Відсоток актуальних значень | Реальний | Вихід | false |

### 2.3 Підсумок значень архіву значень (sumVal) | 1.1 | GPLv2 | * | en, uk, ru | Роман Савоченко

Обчислення суми значень за вказаний період часу [bTime...eTime], для даних архіватору archtor (FSArch.1m) та формування результату із визначеною кількістю знаків prec після коми.

Функція працює із об'єктами атрибутів DAQ-параметрів до яких підключено архів, та адреса addr до нього записується повним шляхом на кшталт "/DAQ/LogicLev/gen/prm_F3/a_var". Для порожнього archtor запит буде здійснюватися загально до усіх із періодичністю буферу архіву.

У процесі підрахунку здійснюється перевірка даних у архіві на предмет достовірності.

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

Параметри

Ідентифікатор | Параметр | Тип | Режим | Прихований | По замовченню
--- | --- | --- | --- | --- | ---
rez | Результат | Рядок | Повернення | false |
addr | Адреса | Рядок | Вхід | false |
bTime | Час початку, секунд | Цілий | Вхід | false |
eTime | Час кінця, секунд | Цілий | Вхід | false |
prec | Знаків після коми | Цілий | Вхід | false | 3
archtor | Архіватор | Рядок | Вхід | false |

### 2.4 Діаграма (diagram) | 1.5 | GPLv2 | * | en, uk, ru | Роман Савоченко

Побудова діаграми трендів у SVG, яка може надалі вбудовуватися у XHTML-документу, для даних за вказаний період часу [(end-size)...end] та із джерел srcs.

- Загальна працемісткість: 1.4 ЛД[!]
- Спонсоровано, початкової імплементації на 1.0 ЛД[!]: Магомед, SAVTECH

Код формування діаграми засновано на коді примітиву "Діаграма" візуалізаторів, та який було доволі просто перенесено із мови C++ на вбудовану мову JavaLikeCalc. Наразі перенесено-реалізовано лише тренди!

Вигляд діаграми визначається її розмірами hsz*vsz та початковим SVG-шаблоном tmpl, низка атрибутів кореневого тегу якого мають особливе значення та які відповідають примітиву "Діаграма":

- Шкала: Маркери: шрифт (sclMarkFont), по замовченню "Arial 10".
- Шкала: горизонтальна (sclHor), по замовченню "Маркери (2)" та загалом передбачено: "Не зображувати (0)", "Ґратка (1)", "Маркери (2)", "Ґратка та маркери (3)".
- Шкала: вертикальна (sclVer), по замовченню "Ґратка та маркери (3)" та загалом передбачено: "Не зображувати (0)", "Ґратка (1)", "Маркери (2)", "Ґратка та маркери (3)", "Ґратка (лог) (5)", "Маркери (лог) (6)", "Ґратка та маркери (лог) (7)".
- Шкала: колір (sclColor), по замовченню "gray".
- Шкала: Маркери: колір (sclMarkColor), по замовченню "gray".

У якості джерела даних наразі можуть використовуватися лише архіви значень, прямою адресою до них або через атрибут DAQ-параметру з архівом. Кількість джерел даних прямо не обмежене та вони записуються окремими рядками аргументу srcs із форматом "{addr}:{min}:{max}:{color}[:{scale}[:{width}]]", де:

- addr — адреса до:
  - архіву значень ("/Archive/va_CPULoad_load") або атрибуту DAQ-параметру ("/DAQ/LogicLev/gen/F3/var");
  - прямі дані у формі "<d s='1' aprox='1' per='1'>{p0}={pV0},{p1}={pV1},...,{pN}={pVN}</d>" для періодичних, встановленням атрибуту "s" можна вказати на період у секундах; "aprox" — апроксимувати перехід від однієї точки до іншої замість підставки попереднього значення у всі точки періодичності від упаковки;
  - прямі дані у формі "<d per='0'>{tm0}={pV0},{tm1}={pV1},...,{tmN}={pVN}</d>" для аперіодичних довгих інтервалів від місяців, де tm{N} у секундах.
- min, max — мінімум та максимум шкали, за відсутності шкали (min >= max) вона буде вираховуватися із реальних даних;
- color — колір кривої тренду;
- scale — окреме визначення шкали тренду, по замовченню "Глобально (0)" та загалом передбачено: "Глобально (0)", "Маркери (2)", "Ґратка та маркери (3)", "Маркери (лог) (6)", "Ґратка та маркери (лог) (7)".
- width — ширина кривої тренду, по замовченню 2.

Рис.2.4. Типовий результат функції "Діаграма" у XHTML-документі.

Параметри

Ідентифікатор | Параметр | Тип | Режим | Прихований | По замовченню
--- | --- | --- | --- | --- | ---
res | Результат | Текст | Повернення | false |
end | Час кінця, секунд | Реальний | Вхід | false | 0
size | Розмір, секунд | Реальний | Вхід | false | 3600
srcs | Джерела | Текст | Вхід | false |
    /DAQ/LogicLev/gen/F3/var:0:100:#ae77c3:2
    /Archive/va_CPULoad_load:0:0:darkcyan:2
hsz | Горизонтальний розмір, пікселів | Цілий | Вхід | false | 600
vsz | Вертикальний розмір, пікселів | Цілий | Вхід | false | 400
arch | Архіватор | Рядок | Вхід | false |
tmpl | Шаблон | Текст | Вхід | false |
    <svg xmlns="http://www.w3.org/2000/svg" version="1.1" sclMarkFont="Arial 10" sclHor="2" sclVer="3" sclColor="gray" sclMarkColor="gray">
        <style type="text/css">
    	    #scVer rect { stroke: none; }
    	    #scVer text { stroke: none; }
    	    #scHor rect { stroke: none; }
    	    #scHor text { stroke: none; }
    	    #drawArea path { fill: none; }
        </style>
        <!--Draw grid and markers-->
        <g id="scVer" />
        <g id="scHor" />
        <!--Curves area -->
        <g id="drawArea" />
    </svg>

Libs/Documents/uk - GFDL | May 2026 | OpenSCADA 0.9.9