×

Модуль ЭнергоИмпорт V.2024

Назначение модуля

Модуль предназначен для импорта объектов и точек учета в модуль "Справочники", а также для экспорта настроек аскуэ для работы других компонентов SCADA-системы ЭНТЕК. Настройка импорта/ экспорта производится посредством конфигурирования настроечного файла или указывания необходимых ключей при старте программы.
 

Принцип работы

Импорт производится из файла с расширением .xlsx с форматом кодировки UTF-8. В нем должны содержаться обязательные столбцы такие как название объекта, название точки учета и серийный номер прибора учета, которые нужны для создания объектов и точек учета в базе данных. Настройки аскуэ (тип успд, тип точки учета, IP-адрес, порт связной адрес прибора учета и пароли для разных уровней доступа) могут быть не указаны, но в таком случае будет невозможно сразу опросить объект, для этого надо будет указать настройки вручную.
Процесс импорта сначала вычисляет размер файла, а затем начинает анализировать каждую строку (стартовая строка указывается в конфигурационном файле, важно учитывать, если присутствуют название столбцов). Анализ каждой строки заканчивается созданием новой точки учета и объекта при необходимости, если возникает ошибка, то она отображается в консоли. Важно отметить, что процесс импорта не проверяет существующие объекты и точки учета, которые были созданы до его запуска, но проверяет уникальность тех, которые добавляются из импортируемого файла. Критерий уникальности объекта вычисляется по его имени, используемому ip-адресу и порту, а для точки учета это ее название и серийный номер прибора учета, если один из параметров не совпадает, то создается новая запись. Если выявлено совпадение объектов, то к нему добавляется новая точка учета, а если совпали две точки учета в одном объекте, то выводится сообщение в консоль.
 

Конфигурирование

Конфигурационный файл имеет название EnImportCfg.ini. Он может находиться рядом с с самим модулем, либо путь до него указывается третьим параметром командной строки с опцией cfg.
Важно отметить, что файл должен иметь кодировку UTF-8!
В конфигурационном файле указываются настройки импорта, а также общие настройки такие как путь до проекта, путь до импортируемого файла, строка таблицы, с которой начинается импорт и режим работы (импорт/экспорт).
Пример конфигурационного файла:

[Main]
Mode=Import
Prj=C:\ENTEK Projects\Spodes direct\main.epr
InputFile=C:\ENTEK\source\EnImport\build\Шаблон импорта.xlsx
StartRow=4
EndRow=10
Pyramid= 1
 
[AscueSet]
UspdType=C
Ip=D
Port=E
TuLinkNum=H
TuPsw1=I
TuPsw2=J
TuType=K
 
[MandatoryFields]
ObjectName=B
TuName=F
TuSerial=G
 
[AdditionalObjectFields]
N=Код сетевого филиала
L=Адрес
 
[AdditionalTuFields]
M=Сетевой адрес
K=Тип сч.
 
[ExportSets]
GuidField=Серийный номер     

 
Разберем настройки конфигурационного файла.
В секции Main содержатся общие настройки, описанные в таблице 1.
Таблица 1
Название параметра
Назначение
Допустимые значения
Mode
Режим работы модуля (импорт или экспорт)
Import/Export
Prj
Полный путь до проекта до файла main.epr, entek.epr и т.п.
Полный путь без кавычек
InputFile
Полный путь до импортируемого файла
Полный путь без кавычек
StartRow
Номер строки, с которой начинается анализ
Целое положительное число
EndRow
Номер строки, на которой заканчивается анализ. Если значение 0, меньше начальной строки или отсутствует, то файл анализируется
до конца
Целое положительное число
Pyramid
Признак анализа входного файла из Пирамиды
1/0
 
Параметры Prj, InputFile могут не указываться, если они передаются в командной строке. Если они передаются обоими методами, то у тех, которые в командной строке, приоритет выше.
В секции AscueSet и MandatoryFields указываются из каких столбцов, импортируемого файла, берутся настройки аскуэ и обязательные поля. Для настроек аскуэ информация может не указываться, однако для обязательных полей столбцы необходимо указать, иначе процесс импорта не будет запущен.
Форма настройки этих секций следующее: <параметр>=<буквенное представление столбца excel>.
Информация о полях указана в таблице 2.
Таблица 2
Название параметра
Секция
Назначение
UspdType
AscueSet
Тип УСПД (согласно приложению 1)
Ip
AscueSet
Ip-адрес
Port
AscueSet
Порт
TuLinkNum
AscueSet
Связной номер прибора учета
TuPsw1
AscueSet
Пароль ПУ первого уровня
TuPsw2
AscueSet
Пароль ПУ второго уровня
TuPswLvl
AscueSet
Уровень пароля (Параметр только для шаблона из Пирамида-Сети, соответствует столбцу Пользователь в разделе Связь с ПУ)
TuType
AscueSet
Тип точки учета (согласно приложению 2)
ObjectName
MandatoryFields
Название объекта
TuName
MandatoryFields
Название точки учета
TuSerial
MandatoryFields
Серийный номер точки учета
 
При импорте шаблона из Пирамида-Сети ячейки для полей Ip,Port,TuPsw1,TuPsw2 задаются относительного того, где содержится необходимая информация и могут повторяться. Например, если маршрут опроса, в котором указаны ip и порт для подключения, в шаблоне Пирамида-Сети содержится в одной ячейке СЕ, то для значения Ip,Port оно будет одно и тоже. Если указано несколько подключений, то используется первое, которое определилось. А в случае пароля необходимо указать одну ячейку для первого и второго уровней, а также ячейку, где указан уровень пароля. Если уровень не указан, то паролю присваивается первый уровень.
Секции AdditionalObjectFields, AdditionalTuFields предназначены для дополнительных настроек необязательных столбцов для объектов и точек учета соответственно. В них указывается столбец в буквенном представлении и соответствующее поле из соответствующего журнала в модуле "Справочники" (название поля в конфигурационном должно полностью соответствовать названию в журнале!). Пример заполнения приведен выше в примере конфигурационного файла.
Секция ExportSets предназначена для настроек экспорта. В ней при необходимости указывается поле из журнала, которое содержит идентификатор точки учета, в переменной GuidField, который будет передаваться в json.
Чтение настроек зависит от режима работы приложения. Так при режиме Import секция ExportSets анализироваться не будет, а при режиме Export будут пропущены секции AdditionalObjectFields, AdditionalTuFields и AscueSet.
 

Запуск

Модуль Энергоимпорт является консольным приложением с возможностью передачи некоторых параметров в качестве опций при запуске или указанием их в конфигурационном файле.
Список возможных опций:

Опция

Назначение

Prj
Полный путь до проекта
Cfg
Полный путь до конфигурационного файла
InputFile
Полный путь до файла импорта
Пример передачи аргумента: Prj=<Путь до проекта> (До и после символа '=' не должно быть пробелов)
Если параметр Cfg не передается опцией, то рядом с исполнительным файлом обязательно должен присутствовать конфигурационный файл с именем по умолчанию EnImportCfg.ini. Для остальных опций условий нет, но информация о проекте и файле импорта обязательно должна быть указаны хотя бы в одном месте (либо передаются опциями, либо в конфигурационном файле).
 

Форма экспорта

Экспорт происходит в формате json и сохраняется в папке проекта в файл dynamic_cfg.json.

{
    "objects": [
        {
            "object_name": "Название объекта",
            "object_type": 0,
            "ip": "127.0.0.1",
            "port": "4001",
            "tus": [
                {
                    "tu_name": "Название точки учета",
                    "tu_serial": "серийный номер",
                    "tu_addr": 0,
                    "tu_type": 0,
                    "guid": "идентификатор",
                    "psw1": "пароль первого уровня",
                    "psw2": "пароль второго уровня"
                }
            ]
        }
    ]
}

 

Форма экспорта

Экспорт происходит в формате json и сохраняется в папке проекта в файл dynamic_cfg.json.
 
Переменная
Назначение
Тип данных
objects
Массив объектов
Массив
object_name
Пользовательское название объекта
Строка
object_type
Тип УСПД (приложение 1)
Целое положительное число
ip
IP-адрес для подключения
Строка
port
Порт для подключения
Целое положительное число
tus
Массив точек учета объекта
Массив
tu_name
Пользовательское название точки учета
Строка
tu_serial
Серийный номер точки учета
Строка
tu_addr
Адрес точки учета
Целое положительное число
tu_type
Тип точки учета (приложение 2)
Целое положительное число
guid
Идентификатор точки учета (если есть соответствующая настройка в конфигурационном файле)
Строка
psw1
Пароль прибора учета первого уровня
Строка
psw2
Пароль прибора учета второго уровня
Строка
В случае отсутствия каких-то данных в БД будет передаваться пустая строка, для адреса точки учета значение будет -1
 

Приложение 1

Таблица допустимых значение типов УСПД. Наименование типа объекта должно полностью совпадать с наименованием в таблице.
Внутренний идентификатор
Наименование
0
УСПД ЭНТЕК
1
Опрос напрямую
2
М228_485
3
УМ-31/40
4
УСПД СИГМА RF
5
УСПД EnLogic
6
Нет (ручной сбор показаний)
7
УСПД M234/M250
8
SL7000
9
ZMD400
10
УСПД Гран-Электро
11
УСПД RTU-327
12
М2М МИРТ
13
РиМ099
14
М228_CAN
15
МИР
18
Сервер Лартех
19
MQTT брокер
20
Сервер Вега
21
УСПД СМ-160
22
УСПД Нартис
23
УСПД Миртек
 

Приложение 2

Таблица допустимых значение типов точек совпадать с наименованием в таблице.
Внутренний идентификатор
Наименование
0
Неизвестен
1
СЭТ-4ТМ.01/02
2
СЭТ-4ТМ.03
3
Меркурий 230
4
PLC-II М203
5
PLC-II М233
6
PLC-I (1 тариф)
7
PLC-I (2 тарифа
8
CE301
9
CE302
10
CE303
11
Меркурий 200
12
Меркурий 203
13
CE102
14
Пульсар-М
15
SL-7000
16
ZMD-400
17
 Меркурий 233
18
Меркурий 234
19
Меркурий 236
20
Гран-Электро СС-101
21
Гран-Электро СС-301
22
ТУ УСПД Гран-Электро
23
 ТУ УСПД EnLogic
24
ТУ УСПД УМ-31/40
25
 ТУ УСПД ЭНТЕК
26
ТУ УСПД М234/М250
27
ТУ УСПД Сигма-RF
28
ТУ УСПД RTU-327
29
КАСКАД 200
30
КАСКАД 310
31
SATEC EM133
32
ВИС.Т
33
Alpha 1800
34
ТУ EnLogic
35
CE201
36
PLC-III M207
37
НЕВА 324
38
Счетчик ЭЭ
39
РиМ 489
40
РиМ 189
41
 PLC-III M208
42
PLC-III M237
43
СЭБ 2А.07.ххх.х
44
СЭБ 2А.08.ххх.х
45
ПСЧ-3ТА.07.ххх
46
ПСЧ-3ТА.07.ххх.1
47
ПСЧ-3ТА.07.ххх.2
48
ПСЧ-3АРТ.07.ххх
49
ПСЧ-3АРТ.07.ххх.1
50
ПСЧ-3АРТ.07.ххх.2
51
ПСЧ-3АРТ.07.ххх.3
52
ПСЧ-3АРТ.07.ххх.4
53
ПСЧ\СЭБ разные
54
Формула
58
УРЖ2КМ
60
МИР-04
61
МИР-05
62
МИР-07
63
М238 (PLC-III)
64
ПСЧ-3АРТ.09.ххх.1
65
ПСЧ-3АРТ.09.ххх.1
66
ПСЧ-3АРТ.09.ххх.2
67
ПСЧ-3АРТ.09.ххх.3
68
ПСЧ-3АРТ.09.ххх.4
69
Логика СПГ761
70
НЕВА 124
71
НЕВА 323
72
Turbo Flow UFG-F
75
Ирвис
76
Энергомера СЕ308
80
РиМ 38х
81
ТУ Лартех
82
Меркурий 201
83
Меркурий 202
84
Меркурий 208
85
Меркурий 231
87
Ультрамаг
88
Протей
89
СПОДЭС 3ф
90
 Меркурий 204
91
 CE102M
92
Милур 30x
93
Милур 10x
94
СПОДЕС 1ф
95
ТУ СМ-160
96
ТУ Нартис
97
ТУ Миртек
Справочная система создана в Dr.Explain