База данных сигналов SCADA — каталог технологических объектов, их параметров и привязка к сигналам телемеханики.
io/
├── common.py # Утилиты: чтение conf.yaml, подключение к SQLite
├── conf.yaml # DDL, триггеры, SQL-запросы (INSERT/UPDATE/SELECT/EXPORT)
├── db_editor.py # Функции для создания и обновления базы данных
├── db_control.py # Функции для управления. Запуск cli программы
├── cis.db # SQLite база (генерируется)
└── ref/ # Исходные CSV-справочники для импорта
├── in # Файлы для импорта в базу данных
└── out # Файл экспорта из базы данных
| Таблица | Назначение |
|---|---|
sys |
Системы (СДКУ, ЦСПА, ...) |
dpt |
Типы технологических объектов в рамках системы |
dpe |
Свойства/параметры типа (давление, состояние, аварии) |
grp |
Группы параметров, единицы измерения, форматы |
dp |
Экземпляры объектов (конкретная задвижка, агрегат) |
sg |
Сигналы телемеханики связанные с dp, dpe |
sg_rel |
Отношения между сигналами для деревьев |
alarm |
Конфигурация уставок алармов |
alm_lim_type |
Справочник типов уставок |
iec_addr |
Адреса телемеханики IEC 60870-5-104 для сигналов |
val |
Последние значения сигналов |
val_hist |
История изменений значений сигналов |
create- cоздать таблицы по спискуconf.yamlexit- завершить работу программыhelp <arg>- вывести справку, с<arg>по командеexport- выгрузить все таблицы вcsvфайлы для редактированияimport <arg>- загрузить измененияsys- системыdpt- типы точек данных/технологических объектовdp- технологические объектыgrp- группы элементов точек данных/типы сигналовdpe- типы сигналовsg- сигналы
exp_sg- выгрузить список сигналов для драйверов 60870sg_rel- заполняет столбцыdpиdpeтаблицыsgпоnameexp_wcc- выгружаетdplдляwincc oa
Импорт и экспорт файлов выполняется на основании существующих id, id находятся под контролем, поэтому всегда можно переименовать сущность при сохранении id.
Создаются базы данных автоматически, по списку определенному в файле conf.yaml в секции create.order.
DDL для создания расположены в секциях create.[table_name]
Список таблиц:
- sys
- dpt
- grp
- dpe
- dp
- sg
- sg_rel
- alm_lim_type
- alm
- iec_addr
Заполнить базу данных можно из файлов csv, с разделителями табуляция, расположенными в каталоге ref/in.
Порядок получения данных для импорта определен в файле conf.yaml в секции upd.[table_name].
Импортировать файлы в указанном порядке:
sysсписок систем [id, name, dsc, disable]dptсписок типов объектов [id, sys, name, dsc, disable]dpсписок объектов [id, sys, dpt, name, dsc, disable]grpсписок групп типов сигналов [id, parent, name, dsc, unit, fmt, type]dpeсписок типов сигналов [id, sys, dpt, name, dsc, grp, disable]sgсписок сигналов (id, name, dsc, disable, grp - опционально, может быть определено из dpe)iec_addrмэк адреса для сигналов [id, name, dsc, disable, asdu, ca, ioa, is_cot, threshold, conv]alm_lim_typeсписок разрешенных дипазонов [id, name, dsc]almконфигурация для генерации сообщений [id, sg, id_lim, lim_type, val, msg, hyst_h, hyst_l, severity, disable]
Файлы импорта можно получить из базы данных, загрузив их из каталога ref/out и отредактировав с соблюдением правил.
Экспорт выполняется сразу для всех таблиц, определенных в conf.yaml в секции exp.
В секции определяются:
- имя файла
- столбцы файла для экспорта
- запрос для получения данных