scada_io

SCADA Signal Database (cis.db)

База данных сигналов 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 История изменений значений сигналов

Команды

Руководство пользователя

Импорт и экспорт файлов выполняется на основании существующих id, id находятся под контролем, поэтому всегда можно переименовать сущность при сохранении id.

Создать базу

Создаются базы данных автоматически, по списку определенному в файле conf.yaml в секции create.order. DDL для создания расположены в секциях create.[table_name]

Список таблиц:

Заполнить базу

Заполнить базу данных можно из файлов csv, с разделителями табуляция, расположенными в каталоге ref/in. Порядок получения данных для импорта определен в файле conf.yaml в секции upd.[table_name]. Импортировать файлы в указанном порядке:

Файлы импорта можно получить из базы данных, загрузив их из каталога ref/out и отредактировав с соблюдением правил.

Выгрузить данные для редактирования

Экспорт выполняется сразу для всех таблиц, определенных в conf.yaml в секции exp.

В секции определяются: