17. Организация и структура базы данных компонентов системы
Узлы и подсистемы системы OpenSCADA могут иметь собственные таблицы в БД для хранения своих данных. При этом структура таблиц индивидуальна и определяется объектом "TConfig". Узлы и подсистемы должны создавать и конфигурировать объект "TConfig" под свои требования.
17.1. Системные таблицы
Система OpenSCADA имеет две системные таблицы BD и SYS. Таблица BD содержит записи зарегистрированных БД, а таблица SYS содержит данные общесистемных параметров.
Таблица 7. Cтруктура таблицы общесистемных параметров (SYS).
Пользователь <user> | Идентификатор параметра <id> | Значение параметра <val> |
root | /DemoStation/MessLev | 0 |
user | /DemoStation/Workdir | /mnt/home/roman/work/OScadaD/share/OpenScada |
user | /DemoStation/UI/QTStarter/StartMod | QTCfg |
Таблица 8. Cтруктура таблицы зарегистрированных БД.
Идентификатор <ID> | Тип БД <TYPE> | Имя <NAME> | Описание <DESCR> | Адрес <ADDR> | Кодировка содержимого БД <CODEPAGE> | Включать <EN> |
LibBD | MySQL | Библиотека функций | | server.diya.org;roman;123456;oscadaUserLibs | KOI8-U | 1 |
AnastModel | SQLite | Модель АГЛКС | | ./DATA/AGLKSModel.db | UTF8 | 1 |
GenDB | MySQL | Основная БД | | server.diya.org;roman;123456;oscadaDemoSt | KOI8-U | 1 |
17.2. Таблицы подсистемы "Сбор данных"
Контроллеры (источники данных) подсистемы "Сбор данных" хранятся в таблицах своих подсистем с именем DQA_{ModName}. Структуры этих таблиц могут значительно отличаться, однако у всех них присутствуют обязательные поля. Общая структура таблиц контроллеров представлена в таблице 9.
Таблица 9. Общая структура таблиц контроллеров подсистемы "Сбор данных" (DQA_{ModName}).
Идентификатор <ID> | Имя контроллера <NAME> | Описание <DESCR> | Включать<ENABLE> | Запускать <START> | Индивидуальные параметры |
AutoDA | Автоматический источник | Сбор данных из активных источников с автоматическим их выявлением. | 1 | 1 | ... |
Также как и таблица контроллеров, таблицы параметров для различных типов источников данных могут значительно отличаться, но также имеют обязательные поля. Кроме отличия, характерного для типа источника данных, таблицы параметров ещё могут быть разными для различных типов параметров. Общая структура таблицы параметров приведена в таблице 10.
Таблица 10. Общая структура таблиц параметров подсистемы "Сбор данных".
Шифр параметра <SHIFR> | Имя параметра <NAME> | Описание параметра <DESCR> | Включать <EN> | Индивидуальные параметры |
P3 | P3 | Давление на диафрагме | 1 | ... |
Кроме контроллеров и параметров подсистема "Сбор данных" содержит шаблоны параметров. Шаблоны параметров сгруппированы по библиотекам шаблонов и хранятся в таблицах трёх типов: таблица библиотек шаблонов (ParamTemplLibs) таблица 11, таблица шаблонов параметров таблица 12 и таблица параметр шаблонов таблица 13.
Таблица 11. Структура таблицы библиотек шаблонов.
Идентификатор <ID> | Имя <NAME> | Описание <DESCR> | Таблица БД библиотеки <DB> |
base | Базовые шаблоны | Библиотека базовых шаблонов | tmplib_base |
S7 | | Библиотека шаблонов для контроллеров серии Siemens S7. | tmplib_S7 |
Таблица 12. Структура таблицы шаблонов.
Идентификатор <ID> | Имя <NAME> | Описание <DESCR> | Текст процедуры шаблона <PROGRAM> |
digAlarm | Дискр. сигнал | Сигнализация по дискретному параметру | JavaLikeCalc.JavaScript |
simpleBoard | Простые границы | Формирование простых границ для аналогового сигнала. | JavaLikeCalc.JavaScript |
Таблица 13. Структура таблицы параметров шаблонов.
Идентификатор шаблона <TMPL_ID> | Идентификатор параметра <ID> | Имя <NAME> | Тип <TYPE> | Флаги <FLAGS> | Значение <VALUE> | Позиция <POS> |
digAlarm | in | Вход | 3 | 144 | | 2 |
digitBlock | cmdOpen | Команда открытия | 3 | 161 | Параметр:com | 0 |
17.3. Таблицы подсистемы “Транспорты”
Подсистема “Транспорты” делится на входящие и исходящие транспорты. Для каждого типа транспортов существует своя таблица с собственной структурой. Имена таблиц соответственно: Transport_In и Transport_Out. Таблицы могут дополняться полями, характерными для типа транспорта.
Таблица 14. Структура таблицы входящих транспортов (Transport_in).
Идентификатор <ID> | Тип <MODULE> | Имя <NAME> | Описание <DESCRIPT> | Адрес <ADDR> | Протокол <PROT> | Запускать <START> | Индивидуальные поля типов транспортов |
web1 | Sockets | Web 1 | Work web transport for proced http requests. | TCP::10002:0 | HTTP | 1 | ... |
Self | SelfSystem | TCP 1 | Test TCP input socket! | Sockets | TCP::10001:1 | 1 | ... |
Таблица 15. Структура таблицы исходящих транспортов (Transport_out).
Идентификатор <ID> | Тип <MODULE> | Имя <NAME> | Описание <DESCRIPT> | Адрес <ADDR> | Запускать <START> | Индивидуальные поля типов транспортов |
tcp_o1 | Sockets | TCP Out 1 | Output TCP transport 1 | TCP::10001 | 1 | ... |
Для централизованного описания перечня внешних OpenSCADA станций используется таблица внешних хостов (CfgExtHosts). Структура этой таблицы приведена в таблице 16.
Таблица 16. Структура таблицы внешних OpenSCADA хостов (CfgExtHosts).
Пользователь системы <OP_USER> | Идентификатор <ID> | Имя <NAME> | Транспорт <TRANSP> | Адрес удалённого хоста <ADDR> | Пользователь внешнего хоста <USER> | Пароль пользователя внешнего хоста <PASS> |
tcp_o1 | Sockets | TCP Out 1 | Output TCP transport 1 | TCP::10001 | 1 | ... |
17.4. Таблицы подсистемы “Архивы”
Подсистема “Архивы” содержит три таблицы с фиксированными именами:
- Архивы значений: Archive_val;
- Архиваторы значений: Archive_val_proc;
- Архиваторы сообщений: Archive_mess_proc.
Таблицы архиваторов могут дополняться полями, характерными для каждого типа архиватора.
Таблица 17. Структура таблицы архивов значений (Archive_val).
Идентификатор <ID> | Имя <NAME> | Описание <DESCR> | Запускать <START> | Режим источника значений <SrcMode> | Источник значений <Source> | Тип значений <VTYPE> | Периодичность буфера <BPER> | Размер буфера <BSIZE> | Жесткая сетка буфера <BHGRD> | Высокое разрешение времени буфера <BHRES> | Перечень обслуживающих архиваторов <ArchS> |
CPULoad_load | | | 1 | 1 | DAQ.System.AutoDA.CPULoad.load | 4 | 1 | 100 | 0 | 0 | FSArch.1s;DBArch.1m;FSArch.1m; |
ai1_dP | | | 0 | 0 | | 4 | 0.0001 | 100 | 1 | 1 | FSArch.POMP_20070301;FSArch.1s; |
Таблица 18. Структура таблицы архиваторов значений (Archive_val_proc).
Идентификатор <ID> | Тип архиватора <MODUL> | Имя <NAME> | Описание <DESCR> | Запускать <START> | Адрес <ADDR> | Период значений <V_PER> | Период архивирования <A_PER> | Индивидуальные поля типов архиваторов |
1s | FSArch | | Односекундный | 1 | ARCHIVES/VAL/1s | 1 | 60 | ... |
POMP_20070301 | FSArch | | | 0 | ARCHIVES/VAL/POMP_20070301 | 0.0001 | 60 | ... |
Таблица 19. Структура таблицы архиваторов сообщений (Archive_mess_proc).
Идентификатор <ID> | Тип архиватора <MODUL> | Имя <NAME> | Описание <DESCR> | Запускать <START> | Шаблон категории сообщений <CATEG> | Уровень сообщений <LEVEL> | Адрес <ADDR> | Индивидуальные поля типов архиваторов |
StatErrors | FSArh | Ошибки станции | | 1 | /DemoStation* | 4 | ARCHIVES/MESS/stError/ | ... |
NetRequsts | FSArh | Сетевые запросы | | 1 | /DemoStation/Transport/Sockets* | 1 | ARCHIVES/MESS/Net/ | ... |
17.5. Таблицы подсистемы “Безопасность”
Подсистема “Безопасность” содержит две таблицы: таблица пользователей системы (Security_user) и групп системы (Security_grp).
Таблица 20. Структура таблицы пользователей системы (Security_user).
Имя <NAME> | Описание <DESCR> | Пароль <PASS> | Изображение <PICTURE> |
root | Суперпользователь | openscada | |
user | Пользователь | user | |
Таблица 21. Структура таблицы групп пользователей системы (Security_grp).
Имя <NAME> | Описание <DESCR> | Пользователи в группе <USERS> |
root | Группа суперпользователей | root;user |
users | Группа пользователей | toot;user |
17.6. Структура баз данных модулей
Каждый модуль может иметь собственные таблицы БД для хранения индивидуальных данных. Структура таблиц БД модулей может формироваться свободно, исходя из внутренних потребностей.