Детектор инцидентов
Описание и принцип работы
Программный модуль «Детектор инцидентов» выполняет периодический анализ состояния контроллеров/объектов проекта SCADA ЭНТЕК и при наличии соответствующих настроек:
-
формирует отчет о текущем состоянии контроллеров;
-
производит автоматическую фильтрацию отчетов по заданным настройкам;
-
производит автоматическую рассылку отчетов по электронной почте;
-
регистрирует или закрывает инциденты в системе Naumen Service Desk.
Приложение может работать в качестве службы (сервиса) ОС Windows.
Приложение с заданным периодом выполняет цикл анализа состояния контроллеров SCADA ЭНТЕК:
-
чтение настроечного файла IncDetector_new.ini;
-
выбор из базы данных учетной информации (модуль Справочники SCADA ЭНТЕК) списка объектов на контроле – сопоставленных настройкам контроллеров (модуль Контроллеры);
-
выполнение запросов состояния контроллеров к станциям системы SCADA;
-
определение текущего состояния контроллера;
-
формирование новых инцидентов (при обнаружении перехода состояния контроллера из нормального в аварийное) и закрытие имеющихся инцидентов (при обратном переходе состояния контроллера из аварийного в норму);
-
синхронизация инцидентов (регистрация и закрытие) с системой Naumen Service Desk (если заданы реквизиты соответствующих сетевых сервисов);
-
сохранение текущего состояния контроллеров в базу данных.
Цикл анализа также выполняется при изменении времени модификации настроечного файла IncDetector_new.ini.
В заданное время суток приложение формирует отчет (книгу MS Excel) о текущем состоянии объектов/контроллеров. При наличии настроек почтовой рассылки отчет автоматически отправляется по электронной почте указанному списку получателей.
Основные события функционирования (в т.ч. возникающие ошибки) записываются в файл IncDetector.log
Для работы программного модуля «детектор инцидентов» необходимо скачать и установить дистрибутив для обновления SCADA ЭНТЕК не ранее версии 7.0.2021.06.07.

Рис. 1. Дистрибутив модуля «Детектор инцидентов»
В папке с проектом SCADA ЭНТЕК создать папку: «Logs». Пример: «C:\ENTEK Projects\ЦППС Нижний Новгород\Logs».

Рис. 5. Папка «Logs» в проекте SCADA ЭНТЕК
В папку проекта \Configurator скопировать настроечный файл: «IncDetector_new.ini».

Рис. 6. Папка проекта «Configurator»

Рис.7. Настроечный файл: «IncDetector_new.ini»
Создать ярлык приложения «InDetectorV2.exe» и переместить в папку с проектом. Ярлык может иметь любое удобное название.

Рис.8. Ярлык приложения «InDetectorV2.exe»
Открыть свойства ярлыка, в поле объект прописать путь в формате: «пусть к исполнительному файлу» «путь к файлу проекта». Пример: "C:\Program Files (x86)\ENTEK\Bin\InDetectorV2" "C:\ENTEK Projects\ЦППС Нижний Новгород\entek.epr". Исполнительный файл IncDetectorV2.exe может быть расположен в любом месте, рекомендуется разместить его в C:\Program Files (x86)\ENTEK\Bin для ОС Windows и в /opt/entek/bin для ОС Linux.

Рис. 9. Свойства ярлыка «IncDetector.exe»
ВАЖНО! Если для подключения к SMTP серверу надо задать пароль, то первый запуск необходимо произвести в консольном режиме, где потребуется ввести пароль для подключения и осуществления рассылки на почту. Предварительно надо указать пользователя в конфигурационном файле, а при необходимости сменить пароль надо удалить ранее записанный пароль. После этой процедуры можно запускать модуль в режиме службы или сервиса.
НАСТРОЙКА МОДУЛЯ СПРАВОЧНИКИ SCADA СИСТЕМЫ ЭНТЕК
Для регистрации инцидентов в системе Naumen Service Desk каждому объекту присваивается личный идентификационный номер HWID.
Для занесения идентификационного номера в базу данных, необходимо в модуле «Справочники», создать дополнительное поле.
Открыть модуль «Справочники» и перейти в режим настройки, нажав клавишу «F6». После этого появятся дополнительные кнопки управления модулем, сверху будет отображен режим работы.

Рис.10. Модуль «Справочники» режим настройки
Открыть свойства журнала Объекты.

Рис.11. Кнопка свойства журнала
В открывшемся всплывающем окне «Свойства журнала» нажать кнопку «Добавить поле».

Рис.12. Кнопка добавления нового поля в журнал
Откроется всплывающее окно «Добавление поля в журнал». Указать имя поля: HWID. Тип данных: строка. Нажать кнопку «ОК».

Рис.13. Добавление поля в журнал
В конце списка появится новое поле объекта. Нажать клавишу «ОК».

Рис.14. Новое поле в журнале Объекты
Далее необходимо вновь созданное поле поместить на форму «Описание объекта автоматизации».
Нажать кнопку «Форма редактирования».

Рис.15. Кнопка форма редактирования
Откроется «Дизайнер формы редактирования записей». В списке слева найти вновь созданное поле «HWID». Поля отмеченные «
» уже находятся на форме описания объекта.


Рис.16. Дизайнер формы редактирования записей
Зажать левой клавишей мыши и перетянуть запись «HWID» в необходимое место. После этого рядом с записью появится «
». При Необходимости растянуть поле для ввода текста и изменить шрифт. Нажать кнопку «ОК».


Рис.17. Добавление нового поля на форму описания объекта
Поле для записи личного идентификационного номера HWID появится на форме описания объекта автоматизации.

Рис.18. Добавленное поле «HWID»
Далее необходимо настроить справочники для поля «Статус объекта».
Утверждено три статуса объекта:
1. Введен в эксплуатацию
2. Наладочные работы
3. В ремонте
4. Обесточен
5. Демонтирован

Рис.19. Поле «Статус объекта» на форме описания объекта
В режиме настройки нажать кнопку «Файл» и во всплывающем списке выбрать «Справочники».

Рис.20. Переход в справочники
В появившемся всплывающем окне выбрать справочник «Работы».

Рис.21. Справочник работы
С помощью кнопок «Добавить запись», «Удалить запись», «Редактировать запись» скорректировать список согласно утвержденным статусам объектов.
В рабочем режиме статус объекта выбирается из всплывающего списка.

Рис.22. Всплывающий список выбора статуса объекта
Внимание: отправка и регистрация событий в системе Naumen Service Desk производится только при статусе объекта «Введен в эксплуатацию» и заполненном поле «HWID». Во всех остальных случаях отправка событий не производится.

Рис.23. Настроенные поля «HWID» и «Статус объекта»
НАСТРОЕЧНЫЙ ФАЙЛ
Открыть настроечный файл «IncDetector_new.ini» из папки проекта \Configurator для редактирования.

Рис.24. Настроечный файл в папке «Configurator»

Рис.25. Открытый настроечный файл
ОПИСАНИЕ НАСТРОЕЧНОГО ФАЙЛА
[Settings]
WorkInterval=100 – Период выполнения полного цикла анализа (в секундах)
DataTimeZone=3 – Часовой пояс сервера
[Folder]
Days=7 – Время хранения файлов (в днях)
[Objects]
FieldStation=Дерево параметров – Наименование поля журнала объектов базы учетной информации, содержащего сопоставление объектов контроллерам системы SCADA. Без корректного указания данного поля анализ состояния контроллеров невозможен
FieldActive=Статус объекта – Наименование поля журнала объектов базы учетной информации, содержащего признак вывода объекта из процедуры анализа состояния контроллера: если значение данного поля не равно заданному параметру ValueActive, анализ состояния контроллера не производится. Если данное поле не задано, считается, что для всех объектов установлен признак, равный значению ValueActive, и состояние контроллеров анализируется
ValueActive=Введен в эксплуатацию – Текстовое значение, соответствующее необходимости проведения анализа состояния контроллера и регистрации\закрытия инцидентов в системе Naumen Service Desk
ValueActiveNoNaumen=Наладочные работы – Текстовое значение, соответствующее необходимости проведения анализа состояния контроллера без регистрации\закрытия инцидентов в системе Naumen Service Desk
Если FieldActive=<пусто>, всем объектам присваивается ValueActiveNoNaumen. Если значения ValueActive и ValueActiveNoNaumen одинаковы, действует ValueActiveNoNaumen
AllTypes=Введен в эксплуатацию,В ремонте,Демонтирован,Наладочные работы,Обесточен – Список типов объекта для заполнения, соответствует статусам объекта из модуля Справочники. Если переменной в файле нет, то в отчете не будет полей с количеством объектов каждого типа
TimeoutLinkLoss=1800 – Допустимое время отсутствия данных от контроллера (в секундах). Используется как критерий нарушения связи с контроллером (полное пропадания ТМ)
TimeoutLinkLossOn=1800 – Задержка регистрации инцидента в системе Naumen Service Desk о нарушении связи с контроллером (в секундах)
Задержка регистрации инцидента в системе Naumen Service Desk отсчитывается от времени формирования сигнала о нарушении связи. Если время отсутствия данных TimeoutLinkLoss=1800, а время задержки регистрации события TimeoutLinkLossOn=1800, то инцидент в Naumen Service Desk будет зарегистрирован через 3600 секунд после получения последних данных от контроллера
TimeoutLinkLossOff=1800 – Задержка закрытия инцидента в системе Naumen Service Desk о нарушении связи с контроллером (в секундах). Если ССД успешно получает данные от контроллера в течение данного промежутка времени, инцидент будет закрыт
TimeoutPowerLossOn=1800 – Задержка регистрации инцидента в системе Naumen Service Desk о пропадании электропитания (в секундах)
TimeoutPowerLossOff=1800 – Задержка закрытия инцидента в системе Naumen Service Desk о пропадании электропитания (в секундах)
TimeoutFunctionalityLoss=1800 – Допустимое время получения недостоверных значений от контроллера (в секундах). Используется как критерий частичного пропадания ТМ
TimeoutFunctionalityLossOn=1800 – Задержка регистрации инцидента в системе Naumen Service Desk о частичном пропадании ТМ (в секундах)
Задержка регистрации инцидента в системе Naumen Service Desk отсчитывается от времени формирования сигнала о частичном пропадании ТМ. Если время получения ССД недостоверных значений от контроллера TimeoutFunctionalityLoss=1800, а время задержки регистрации события TimeoutFunctionalityLossOn=1800, то инцидент в Naumen Service Desk будет зарегистрирован через 3600 секунд после начала получения недостоверных значений от контроллера
TimeoutFunctionalityLossOff=1800 – Задержка закрытия инцидента в системе Naumen Service Desk о частичном пропадании ТМ (в секундах). Инцидент закрывается при условии, что в заданный промежуток времени все данные приходят достоверные
[NAUMEN]
URL=https://10.99.0.147/sd/services/rest – Сетевой адрес сервиса системы Naumen Service Desk. Если сетевой адрес не задан, регистрация и закрытие инцидентов в Naumen Service Desk не производится!
Key=1f4203b8-b5a2-4765-a4af-e07ac4f10520 – Клиентский ключ для использования сервиса системы Naumen Service Desk. Если ключ не задан, регистрация и закрытие инцидентов в Naumen Service Desk не производится!
FieldHWID=HWID – Наименование поля журнала объектов базы учетной информации, содержащее уникальный идентификатор оборудования. Если не задано, регистрация и закрытие инцидентов в Naumen Service Desk не производится. Если задано, но значение поля отсутствует, регистрация и закрытие инцидентов для данного объекта/контроллера в Naumen Service Desk не производится!
Prefix= – Единый префикс, добавляемый к уникальному идентификатору оборудования при регистрации инцидента в Naumen Service Desk. Применяется только при тестировании
IncidentLinkLoss=Полное пропадание ТМ – Текст инцидента о нарушении связи с контроллером
IncidentPowerLoss=Пропадание электропитания – Текст инцидента о нарушении электропитания контроллера
IncidentFunctionalityLoss=Частичное пропадание ТМ – Текст инцидента о частичной передачи данных
[Report]
Hour=09 – Час когда следует произвести формирования отчета о текущем состоянии контроллеров
Minute=00 – Минута когда следует произвести формирования отчета о текущем состоянии контроллеров
OnTimeOnly=1 – При наличии данного параметра, равного 0, формирование отчета производится при каждом изменении времени модификации настроечного файла IncDetector_new.ini
[Report 1]
Title_1=Отчет о состоянии объектов телемеханики – Заголовок отчета
AllObjects=1 – При наличии данного параметра, не равного 0, в отчет включаются все объекты на контроле (имеющие сопоставленные контроллеры SCADA). В противном случае в отчет включаются объекты, контроллеры которых находятся в состояниях на связи и связь нарушена
Title_2=филиал «Нижновэнерго» – Заголовок отчета
Field_1=РЭС – Поле журнала 1. Наименования полей журнала объектов базы учетной информации, которые следует включить в отчет. Числовой индекс, задаваемый после строки Field_«n», задает порядок следования полей в таблице отчета. Ненайденные поля в отчет не включаются
Field_2=тип объекта – Поле журнала 2
Field_3=объект – Поле журнала 3
Field_4=ПС – Поле журнала 4
Field_5=Линия – Поле журнала 5
Field_6=Тип УСПД – Поле журнала 6
Filter=РЭС:Центральный - Тип объекта:рекл:тп-РЭС:Истр – Фильтр по полям журнала, формат заполнения <колонка1>:< значение >:<значение>- <колонка2>:< значение>-...
колонка – поле из справочников; если колонка не найдена, фильтр игнорируется;
значение – возможное значение колонки, поиск по содержанию символов в поле;
Перечисление фильтров задается через «-», первое значение соответствует названию колонки, далее через «:» перечисляются возможные значения. Если у фильтра несколько значений, то они объединяются через логическое «ИЛИ», а несколько фильтров объединяются через логическое «И».
при отсутствии фильтров формируется отчет по всем объектам
To=ivanov@entels.ru,petrov@mail.ru – Список адресов получателей (через «,»)
ToCC= – Список адресов получателей копии (через «,»)
Body1=Письмо сформировано автоматически службой "Детектор инцидентов" системы ЭНТЕК – Первая строка текста письма, не обязательна, используется по причине отправки пустых писем в «спам»
Body2=ЦППС ЭНТЕК-1000 – Вторая строка текста письма, не обязательна
Body3=Филиал Нижновэнерго – Третья строка текста письма, не обязательна
[SMTP]
Host=10.52.52.71 – Сетевые реквизиты почтового сервера (адрес)
Port=25 – Сетевые реквизиты почтового сервера (порт)
TLS=0 – При наличии данного параметра, не равного 0, используется защищенный протокол SSL/TLS
UserName= – Реквизиты почтового аккаунта отправителя, если не используются оставить поле пустым
Password= – Реквизиты почтового аккаунта отправителя, если не используются оставить поле пустым. Вручную поле не заполняется, только через запуск в консольном режиме и заполненным полем пользователя!!
FromAddress=SmlCppsEntek@nn.mrsk-cp.ru – Текстовые реквизиты отправителя, указываемые в электронном письме
FromName=Детектор Инцидентов SCADA ЭНТЕК Нижновэнерго – Тема письма
Для настройки рассылки отчетов с различными полями и фильтрами необходимо после раздела [Report 1] добавить раздел [Report n], где n целое число.
Пример:
[Report 1]
Title_1=Отчет о состоянии реклоузеров
AllObjects=1
Title_2=филиал ЭНТЕЛС
Field_1=РЭС
Field_2=Тип объекта
Filter=Тип объекта:рек
To=Ivanov@entels.ru
ToCC=
Body1=Отчет о состоянии реклоузеров
[Report 2]
Title_1=Отчет о состоянии ТП
AllObjects=1
Title_2=филиал ЭНТЕЛС
Field_1=РЭС
Field_2=Тип объекта
Filter=Тип объекта:ТП
To=Petrov@entels.ru
ToCC=
Body1=Отчет о состоянии ТП
[Report 3]
…
[Report 4]
…
[Report n]
…
ВАЖНО! Настроечный файл должен быть в кодировке WIN-125
НАЧАЛО РАБОТЫ
Первый запуск детектора инцидентов производится в режиме консоли с помощью созданного ранее ярлыка или из командной строки с указанием пути до исполнительного файла и до проекта, файла с расширением .epr.

Рис.26. Ярлык IncDetector в папке с проектом
При первом запуске, если указан пользователь для подключения к smtp серверу, потребуется указать пароль в консоли, после чего он будет сохранен.
После первого цикла детектора инцидентов в папке \Logs автоматически создаются и далее будут корректироваться при каждом цикле файл IncDetector**.log – в файл записываются основные события функционирования (в т.ч. возникающие ошибки). Где **. Номер файла, от 1 до 3, текущий лог без цифры.
ФОРМИРОВАНИЕ ОТЧЕТА
После того как выполнены все настройки и запущен режим консоли, необходимо убедиться в правильном формировании отчета.
Открыть настроечный файл IncDetector_new.ini в папке проекта Configurator.
Установить время формирования и поставить флаг формирования отчета по изменению конфигурационному файлу, сохранить и закрыть настроечный файл.

Рис. 31. Настройка времени для проверки формирования отчета
Чем, больше объектов в базе данных, тем больше времени требуется для формирования отчета. Отчет может формироваться несколько минут.
При формировании отчета в консоли появится информация о сформированном отчете и отправке по почте. Если все настройки SMTP и получатели указаны правильно, в консоли появится информация об отправке отчета на электронную почту c указанием перечня получателей.

Рис. 32. Формирование, сохранение и отправка отчета
Даже если не указаны настройки SMTP или пользователи, отчет формируется и сохраняется локально в папке проекта …\Logs.

Рис. 33. Сохраненный отчет
В имени отчета дополнительно указывается дата и время формирования отчета.
Отчет содержит столбцы, указанные в настроечном файле, которые можно добавлять\удалять, а также служебные столбцы, которые настроены по умолчанию (например: «состояние связи», «наличие питания» и т.д.

Рис. 34. Общий вид отчета
В верхней части формируется обобщенная информация по объектам.

Рис. 35. Обобщенная информация.
После того как отчет сформирован и отправлен на почту, необходимо в настроечном файле установить нужное время рассылки и указать всех получателей. Приложение работает в консольном режиме, но для автоматического запуска рекомендуется установка приложения в качестве службы (сервиса) ОС Windows или ОС Astra Linux.
Для активации автоматического фильтра по столбцам необходимо выделить строку с названиями столбцов и нажать сочетание клавиш “Ctrl+Shift+L”.
РАБОТА ПРИЛОЖЕНИЯ В КАЧЕСТВЕ СЛУЖБЫ
Установка детектора инцидентов в качестве службы ОС Windows осуществляется запуском командного bat-файла. Операцию нужно выполнять с правами администратора.

Рис. 39. Пример bat-файла
Перед установкой службы закрыть консольный режим приложения.
Выбрать или создать командный bat-файл и запустить от имени администратора.

Рис. 40. Запуск bat-файла от имени администратора
В появившейся командной строке будет отображен статус установки и запуска приложения как службы.

Рис. 41. Информация об установке службы
В диспетчере задач во вкладке службы можно посмотреть текущий статус работы службы.

Рис. 42. Диспетчер задач. Службы
По умолчанию тип запуска службы автоматический. Рекомендуется перевести тип запуска в: Автоматически (отложенный запуск). Для этого необходимо открыть службы, выделить службу, нажать правой клавишей мыши и нажать свойства.

Рис. 43. Свойства службы
В появившемся окне свойств службы выбрать тип запуска автоматически (отложенный запуск). Нажать кнопку «ОК».

Рис. 44. Настройка типа запуска
Установка службы завершена.
Для ОС Astra Linux рекомендуется через создание сервиса, который необходимо поместить в /etc/systemd/system. Пример содержимого файла:

После подготовки сервиса и размещения его в указанном месте, необходимо выполнить несколько команд в консоли с правами суперпользователя.
1. sudo su – получение прав суперпользователя
2. systemctl daemon-reload – обновление сервисов
3. systemctl start entek-incdetector.service – запуск сервиса Детектора инцидентов (название сервиса может быть задано другое, оно соответствует названию файлов).
4. systemctl status entek-incdetector.service – проверка работы сервиса.
ВАЖНО! Если для подключения к SMTP серверу надо задать пароль, то первый запуск необходимо произвести в консольном режиме, где потребуется ввести пароль для подключения и осуществления рассылки на почту. Предварительно надо указать пользователя в конфигурационном файле, а при необходимости сменить пароль надо удалить ранее записанный пароль. После этой процедуры можно запускать модуль в режиме службы или сервиса.
НАСТРОЙКА АЛАРМОВ
Для настройки формирования инцидента и фиксации состояния внешнего питания объекта необходимо произвести настройку алармов.
Внимание: данный сигнал присутствует не во всех конфигурациях, зависит от типа шкафа, типа объекта, варианта сборки.
Открыть интегратор SCADA ЭНТЕК и перейти в модуль «Алармы».

Рис. 47. Интегратор SCADA ЭНТЕК
В открывшемся окне настройки алармов и сообщений, в верхнем левом углу, выбрать из выпадающего списка необходимую станцию, к которой относятся объекты.

Рис. 48. Модуль настройки алармов. Выбор станции
После перехода на необходимую станцию нажать кнопку «Добавить группу».

Рис. 49. Добавление новой группы
В дереве появится новая группа. Выделить группу и перейти на вкладку настройки.

Рис. 50. Вкладка настройки
Во вкладке настройки установить галку «Собственные настройки алармов». Снять галки в типах алармов: «Неисправно», «Не определено», «ВАУ», «НАУ», «Текстовые».
Выделить «Все типы алармов».

Рис. 51. Настройка всех типов алармов
Установить галку «Управлять системным параметром», выбрать «Наличие напряжения».
Установить имя группы «Наличие напряжения». Нажать кнопку «Сохранить».

Рис. 52. Настройка группы алармов «Наличие напряжения»
Перейти на вкладку «Алармы». Выбрать необходимый контроллер и выделить сигнал.

Рис. 53. Вкладка «Алармы»
Зажать сигнал левой кнопкой мыши и перетянуть во вкладку алармы. Добавленный сигнал в дереве объектов (справа) изменит цвет текста с черного на серый.

Рис. 54. Аларм контроля напряжения на входе в устройство
Повторить операцию для всех необходимых объектов. Нажать Кнопку «Сохранить». И закрыть модуль настройки алармов и сообщений.

Рис. 55. Добавленные сигналы. Кнопка сохранения
После изменений в модуле алармы необходимо перезапустить службу сбора данных, станции в которой были внесены изменения.
При настроенных алармах в отчете будут формироваться данные в столбце внешнее питание: есть/отсутствует.

Рис. 56. Отчет с сигналом - отсутствие электропитания

Рис. 57. Отчет с сигналом - наличие внешнего питания
НАСТРОЙКА ИНФОРМАЦИИ О НЕПРОХОЖДЕНИИ КОМАНДЫ ТЕЛЕУПРАВЛЕНИЯ
Для настройки формирования информационного сигнала о непрохождении команды телеуправления необходимо произвести настройку сигнала в конфигурации контроллера.
Открыть интегратор SCADA ЭНТЕК и перейти в модуль «Контроллеры».

Рис. 58. Интегратор SCADA ЭНТЕК
В открывшемся окне выбрать необходимую станцию и контроллер.

Рис. 59. Станция и контроллер
В левой части окна развернуть дерево конфигурации параметров, вкладки телеуправления и телесигнализации.

Рис. 60. Дерево конфигурации контроллера
Выбрать сигнал, соответствующий контролю отключения коммутационного аппарата и посмотреть МЭК-адрес данного параметра.

Рис. 61. Адрес параметра телесигнализации
Выбрать сигнал телеуправления коммутационного аппарата. В правой части экрана в свойствах выбранного сигнала «Контроль прохождения команды записи» указать МЭК-адрес параметра телесигнализации.

Рис. 62. МЭК-адрес сигнала для контроля прохождения команды телеуправления
После настройки нажать кнопку «Сохранить», далее «Построение конфигурации для верхнего уровня».

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

Рис. 64. Перезапуск службы сервера сбора данных
Информация о непрохождении сигнала телеуправления формируется в сводном отчете в столбце «непрохождение ТУ».

Рис. 65. Сводный отчет. Столбец «не прохождение ТУ»