From OpenSCADAWiki
Jump to: navigation, search

Використання БД для зберігання бібліотек віджетів та проєктів

Зберігання даних віджетів, бібліотек віджетів та проєктів реалізовано у БД, доступних OpenSCADA. БД організовано за приналежністю даних до бібліотеки-проєкту. Тобто, окрема бібліотека-проєкт зберігається у окремій групі таблиць БД. Перелік бібліотек віджетів зберігається у індексній таблиці бібліотек з іменем "VCALibs" та структурою "Libs", а перелік проєктів у індексній таблиці "VCAPrjs" та структурою "Projs". Екземпляр цих таблиць створюється у кожній БД, де зберігаються дані цього модуля. До складу таблиць, що належать бібліотеці віджетів та проєкту, входять наступні:

  • "{DB_TBL}" — таблиця віджетів, що належать бібліотеці (структура "LibWigets"), або сторінок, що належать проєкту (структура "ProjPages");
  • "{DB_TBL}_io" — таблиця робочих властивостей віджетів та вкладених віджетів бібліотеки (структура "LibWidgetIO") або властивостей сторінок проєкту (структура "ProjPageIO");
  • "{DB_TBL}_uio" — таблиця користувацьких властивостей віджетів та вкладених віджетів бібліотеки (структура "LibWidgetUserIO") або користувацьких властивостей сторінок проєкту (структура "ProjPageUserIO");
  • "{DB_TBL}_incl" — таблиця віджетів, вкладених у віджети-контейнери, бібліотеки (структура "LibWidgetIncl") або проєкту (структура "ProjPageWIncl");
  • "{DB_TBL}_mime" — таблиця ресурсів бібліотеки та її віджетів (структура "LibWidgetMime"), або проєкту та його сторінок (структура "ProjMime");
  • "{DB_TBL}_stls" — таблиця значень стильових параметрів проєкту (структура "PrjStlsIO");
  • "{DB_TBL}_stl" — застаріла таблиця значень стильових параметрів проєкту (структура "PrjStlIO");
  • "{DB_TBL}_ses" — таблиця даних режиму виконання проєкту, тобто сеансів (структура "PrjSesIO").

At.png {DB_TBL} наразі формується у вигляді "wlb_{ID}" для бібліотек та "prj_{ID}" для проєктів, а окреме поле DB_TBL таблиць "Libs", "Projs" застаріле і буде видалене у випуску OpenSCADA 1.0!

Проекції (структури) основних таблиць такі:

  • Libs(ID, NAME, DSCR, DB_TBL, ICO) — бібліотеки віджетів ID.
ID — ідентифікатор;
NAME — ім'я;
DSCR — опис;
DB_TBL (ЗАСТАРІЛЕ) — корінь таблиць БД з віджетами;
ICO — закодоване (Base64) зображення іконки бібліотеки.
  • LibWigets(ID, ICO, PARENT, PROC, PROC_PER, ATTRS, TIMESTAMP) — віджети ID бібліотеки.
ID — ідентифікатор;
ICO — закодоване (Base64) зображення іконки віджету;
PARENT — адреса віджету основи, у вигляді /wlb_originals/wdg_Box;
PROC — внутрішня процедура та мова процедури віджету;
PROC_PER — період обчислення процедури віджету;
ATTRS — перелік атрибутів віджету, модифікованих користувачем;
TIMESTAMP — мітка часу останньої модифікації.
  • LibWidgetIO(IDW, ID, IDC, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL) — робочі атрибути ID віджету IDW дочірнього віджету IDC.
IDW — ідентифікатор віджету;
ID — ідентифікатор атрибуту;
IDC — ідентифікатор дочірнього віджету;
IO_VAL — значення атрибуту;
SELF_FLG — внутрішні прапорці атрибутів;
CFG_TMPL — шаблон елементу конфігурації, заснованого на даному атрибуті;
CFG_VAL — значення елементу конфігурації (посилання, константа ...).
  • LibWidgetUserIO(IDW, ID, IDC, NAME, IO_TP, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL) — користувацькі атрибути ID віджету IDW дочірнього віджету IDC.
IDW — ідентифікатор віджету;
ID — ідентифікатор атрибуту;
IDC — ідентифікатор дочірнього віджету;
NAME — ім'я атрибуту;
IO_TP — тип та головні прапорці атрибуту;
IO_VAL — значення атрибуту;
SELF_FLG — внутрішні прапорці атрибуту;
CFG_TMPL — шаблон елементу конфігурації, заснованого на даному атрибуті;
CFG_VAL — значення елементу конфігурації (посилання, константа ...).
  • LibWidgetIncl(IDW, ID, PARENT, ATTRS) — включені у контейнер IDW віджети ID.
IDW — ідентифікатор віджету;
ID — ідентифікатор екземпляру вкладеного віджету;
PARENT — адреса віджету основи, у вигляді /wlb_originals/wdg_Box;
ATTRS — перелік атрибутів віджету, модифікованих користувачем.
  • LibWidgetMime(ID, MIME, DATA) — audio, video, media та інші ресурси віджетів ID бібліотеки.
ID — ідентифікатор ресурсу;
MIME — MIME ресурсу, у форматі — "{MIME};{Size}";
DATA — дані ресурсу, кодовані Base64.
  • Projs(ID, NAME, DSCR, DB_TBL, ICO, USER, GRP, PERMIT, PER, FLGS, STYLE) — проєкти ID інтерфейсу візуалізації.
ID — ідентифікатор проєкту;
NAME — ім'я проєкту;
DSCR — опис проєкту;
DB_TBL (ЗАСТАРІЛЕ) — корінь таблиць БД зі сторінками;
ICO — закодоване (Base64) зображення іконки проєкту;
USER — ім'я власника проєкту;
GRP — ім'я групи користувачів проєкту;
PERMIT — права доступу до проєкту;
PER — період обчислення проєкту, у мілісекундах;
FLGS — прапорці проєкту;
STYLE — типовий стиль проєкту.
  • ProjPages(OWNER, ID, ICO, PARENT, PROC, PROC_PER, FLGS, ATTRS, TIMESTAMP) — сторінки ID, що містяться у проєкті-сторінці OWNER.
OWNER — проєкт-сторінка — власник даної сторінки, у вигляді — "/AGLKS/so/1/gcadr";
ID — ідентифікатор сторінки;
ICO — закодоване (Base64) зображення іконки сторінки;
PARENT — адреса віджету основи, у вигляді /wlb_originals/wdg_Box;
PROC — внутрішня процедура та мова процедури сторінки;
PROC_PER — період обчислення процедури сторінки;
FLGS — прапорці типів сторінки;
ATTRS — перелік атрибутів сторінки, модифікованих користувачем;
TIMESTAMP — мітка часу останньої модифікації.
  • ProjPageIO(IDW, ID, IDC, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL) — робочі атрибути сторінок, структура фактично збігається з таблицею "LibWidgetIO".
  • ProjPageUserIO(IDW, ID, IDC, NAME, IO_TP, IO_VAL, SELF_FLG, CFG_TMPL, CFG_VAL) — користувацькі атрибути сторінок, структура фактично збігається з таблицею "LibWidgetUserIO".
  • ProjPageWIncl(IDW, ID, PARENT, ATTRS) — віджети, включені на сторінки, структура фактично збігається з таблицею "LibWidgetIncl".
  • ProjMime(ID, MIME, DATA) — audio, video, media та інші ресурси сторінок проєктів, структура фактично збігається з таблицею "LibWidgetMime".
  • PrjStls(SID, ID, VAL) — значення VAL поля ID стилю SID проєкту.
IDS — ідентифікатор стилю;
ID — ідентифікатор поля стилю;
VAL — значення поля стилю.
  • PrjStl(ID, V_0, V_1, V_2, V_3, V_4, V_5, V_6, V_7, V_8, V_9) — значення поля стилю ID проєкту.
ID — ідентифікатор поля стилю;
V_{N} — значення поля стилю для стилю N.
  • ProjSess(IDW, ID, IO_VAL) — таблиця проєкту IDW для збереження даних сеансів, що виконують проєкт.
IDW — повний шлях елементу проєкту;
ID — атрибут елементу;
IO_VAL — значення атрибуту.