Работа с системой

Назначение визуализации

Визуализация позволяет отображать текущее состояние элементов с динамическим его изменением во времени, управлять установками и системами, отправлять команды непосредственно с графических планов. Данный подход упрощает и ускоряет работу оператора, повышает удобство работы, улучшает восприятие текущей обстановки и уменьшает время реакции на события.

Демонстрационный проект

После установки системы ее конфигурация содержит демо-проект, который позволяет посмотреть возможности системы. Данный проект также можно использовать за основу при изучении системы, а также создании своего собственного проекта.

Просмотр визуализации

Для запуска интерфейса пользователя необходимо в адресной строке web браузера ввести адрес https://имядомена, например, https://promuc.loc:

../_images/start_url.png

Далее необходимо ввести учётные данные, которые были сгенерированы во время установки системы:

../_images/start_url_2.png

и подтвердить авторизацию приложения (только при первом запуске):

../_images/start_url_3.png

Интерфейс пользователя откроется в окне web браузера:

../_images/start_url_5.png

Интерфейс пользователя содержит сворачиваемую панель обзора, в которой в виде иерархического дерева представлена структура проекта:

../_images/ui_pane.png

Представляемая в панели информация делится на уровни иерархии:

  • организации

  • проекты организации

  • данные проекта (могут содержать вложенные папки)

Демо-проект demo-scada относится к организации promuc и содержит следующие разделы:

../_images/ui_pane_2.png
  • Диспетчеризация, содержит различные системы, сгруппированные по типу

  • Сервисы, содержит ссылки на дополнительные ресурсы

  • Карта, содержит данные ГИС в виде слоев и маркеров

  • Журналы, содержат настраиваемые отчеты по проекту

Диспетчеризация

Содержит следующие разделы:

  • Дом 3D, отображает размещение и состояние эмулированных устройств на 3-х мерном плане помещений и зданий (вилл) с маркерами и ссылками перехода на другие визуализации:

    ../_images/ui_1.png
  • Системы здания на примере системы контроля и управления доступом (панель свёрнута):

    ../_images/ui_2.png
  • Водоотведение:

    ../_images/ui_3.png
  • Холодоснабжение (панель свёрнута):

    ../_images/ui_4.png
  • Электроснабжение:

    ../_images/ui_5.png
  • Теплоснабжение (панель свёрнута):

    ../_images/ui_6.png
  • Освещение:

    ../_images/ui_7.png
  • Вентиляция (панель свёрнута):

    ../_images/ui_8.png
  • Водоснабжение:

    ../_images/ui_9.png

Сервисы

  • Ссылка на расширенную документацию PromUC в браузере

  • Ссылка на сайт

Карта

Является ГИС. Может использовать как локальный, так и удалённый сервис. В данном демо-проекте для работы требуется подключение к сети Интернет.

../_images/ui_10.png
  • Отображение местности (OSM)

  • Отображение маркеров с настройкой их видимости

  • Отображение движущихся объектов с всплывающей информацией о них (на примере воздушного и морского транспорта)

  • Отображение и работа с маршрутоами

  • Привязка к местоположению

  • Различные слои с настраиваемой видимостью в зависимости от масштаба

  • Выбор отображаемых в данный момент времени слоёв

  • Отображение поэтажных планов с ссылками перехода на этажи

Журналы

Позволяют получать отчёты по любым данным в системе в связанном виде.

Хранение данных конфигурации проекта

Данные конфигурации проекта могут храниться как в файловой системе в виде файлов, а также дополнительно могут находиться под управлением системы контроля версий.

Можно получить доступ к файлам открыв их редактором или, при наличии системы контроля версий, в интерфейсе системы контроля версий.

Настройка визуализации

Для создания собственной структуры системы диспетчеризации требуется выполнить следующие действия:

  1. Используя терминал Linux, перейти в папку /opt/services/scada/data/source:

cd /opt/services/scada/data/source

В этой директории находятся файлы, которые используются для создания и редактирования мнемо-схем (отображения данных). Внутри этой директории находятся 3 папки: "svg", "visio", "scada":

  • В папке "svg" находится библиотека графических элементов, для создания визуализаций, в формате svg.

    Структура папки имеет следующий вид:

    svg - Корневая папка svg библиотеки

    elements - Папка с графическими элементами

    ventilation- Элементы для конструирования вент-установок

    electricity - Элементы для конструирования схем электроснабжения

    sensors - Различные датчики и измерения

    pumps - Насосы

    primitive - Примитивы для создания собственных простых элементов

    valves - Регулирующие клапаны

    water - Специфические элементы для конструирования систем водоснабжения

    alarms - Элементы отображения аварий

    canalization - Элементы для конструирования систем водоотведения

    controls - Элементы управления

    labels - Надписи (текстовые элементы)

    pipe - Трубы и различные трубные элементы

    icons - Иконки для панелей управления

    Можно добавлять папки в директорию svg/elements, редактировать существующие элементы библиотеки, создавать свои.

    Можно создавать любую структуру папок внутри католога "svg".

  • В папке "visio" находятся шаблоны визуализаций.

    Необходимо создать структуру, в зависимости от нужд предприятия. Например:

    visio - Корневой каталог шаблонов визуализаций (НАЗВАНИЕ "visio" МЕНЯТЬ НЕЛЬЗЯ!)

    electricity - в этой папке шаблоны для схем электроснабжения

    heating - в этой папке шаблоны теплоснабжения

    ventilation - в это папке шаблоны вент-установок

    и т.п.

    Можно создавать любую структуру папок внутри католога "visio"

    Шаблон - готовая визуализация, созданая в редакторе визуализаций, без связанных сигналов (источника данных), для многократного использования. Отпадает необходимость создавать десятки подобных визуализаций.

    При создании шаблона в редакторе, автоматически создается .yaml-файл, который, при необходимости, можно редактировать:

    ---
    # блок кода №1
    self: Visio:lightning/house_1
    description: Освещение. Здание №1
    elements:
    
    # блок кода №2
    - self: schemes
      description: Планировка
      iconUrl: Svg:schemes/house_1
      crd:
        - 403
        - 46
      replace: []
      order: 0
      scale:
        - 1
        - 1
      rotate: 0
      name: schemes
    
    # блок кода №3
    - self: lamp1
      description: Точка освещения 1
      iconUrl: Svg:elements/electriciy.lamp
      crd:
        - 1382
        - 375
      replace:
        STATE: lamp-1-state
      order: 6
      scale:
        - 1
        - 1
      rotate: 0
      name: lamp1
    
    # блок кода №4
    - self: lamp2
      description: Точка освещения 2
      iconUrl: Svg:elements/electriciy.lamp
      crd:
        - 1383
        - 479
      replace:
        STATE: lamp-2-state
      order: 7
      scale:
        - 1
        - 1
      rotate: 0
      name: lamp3
    

    Блок кода №1

    self: Название визуализации, так же является ее URL

    description: Описание (название) визуализации

    elements: Содержит в себе все элементы визуализации

    Блок кода №2

    self: Название элемента (латиницей), системное.

    description: Название элемента (латиницей, кириллицей) для пользователя. Отображается в интерфейсе пользователя.

    iconUrl: url элемента библиотеки

    crd: координаты элемента на экране (x, y)

    replace: [В данном элементе не используется]

    order: порядковый номер элемента. Так же является графическим слоем SVG

    scale: масштабирование элемента (x,y)

    rotate: угол на который повернут элемент, относительного исходного отображения

    name: Название элемента (латиницей), системное.

    Блок кода №3 и №4

    self: Название элемента (латиницей), системное.

    description: Название элемента (латиницей, кириллицей) для пользователя. Отображается в интерфейсе пользователя.

    iconUrl: url элемента библиотеки

    crd: координаты элемента на экране (x, y)

    replace: Ссылка для связанной переменной

    order: порядковый номер элемента. Также является графическим слоем SVG

    scale: масштабирование элемента (x,y)

    rotate: угол, на который повернут элемент относительно исходного отображения

    name: Название элемента (латиницей), системное.

  • В папке "scada" находятся визуализации (шаблоны с подключенным источником данных).

    Необходимо создать структуру, в зависимости от нужд предприятия. Например:

    scada - Корневой каталог шаблонов визуализаций с источником данных (НАЗВАНИЕ "scada" МЕНЯТЬ НЕЛЬЗЯ!)

    electricity - в этой папке визуализации схем электроснабжения

    heating - в этой папке визуализации теплоснабжения

    ventilation - в это папке визуализации вент-установок

    и т.п.

    Можно создавать любую структуру папок внутри католога "scada"

    Чтобы создать визуализацию в «scada» необходимо создать .yaml-файл.

    Задача:

    создать визуализацию вент-установки П-1, которая будет храниться в каталоге визуализаций scada/ventilation и привязать к ней источник данных

    Решение:

    переходим в папку /opt/services/scada/data/source/scada/ventilation и создаем файл ahu-p1.yaml

    ---
    description: Вент-установка П-1
    reference: Visio:ventilation/ahu_i
    data: "mqtt:ws://user@user:mq.4iot.pro:15675/ws#data//ahu"
    ...
    

    «description:» - Название визуализации, отображаемое в интерфейсе пользователя PromUC (в данном случае это будет Вентиляция/Вент-установка П-1).

    «reference:» - Указывает какой шаблон визуализации будет использован (в данном случае "visio/ventilation/ahu_i.yaml")

    «data:» - источник данных (в данном случае это данные получаемые по протоколу mqtt). Источники данных могут быть локальными и внешними.

  • В папке "pult" находятся созданные шаблоны панелей управления (шаблон без источников данных).

    Необходимо создать файлы формата .yaml, добавить требуемый набор элементов управления. Например:

    ---
    description: Управление ИТП
    elements:
    
      # Элемент №1
    - name: Уставка температуры ГВС
      type: analog
      data: GVS_TEMP_SET
      min: 40
      max: 65
      step: 1
    
      # Элемент №2
    - name: Уставка температуры отопления
      type: analog
      icon: Svg:icons/sq2
      data: OT_TEMP_SET
      min: 50
      max: 80
      step: 1
    
      # Элемент №3
    - name: Режим работы насоса Н-1
      type: binary
      icon_on: Svg:icons/on
      icon_off: Svg:icons/off
      data: PUMP_1
    
      # Элемент №4
    - name: Режим работы насоса Н-2
      type: multistate
      data: SEASON_MODE
      states:
         1: Зима
         2: Лето
         3: Авто
    
      ...
    

    «description» - Название панели управления.

    «elements» - набор элементов управления в панели.

    Элемент №1:

    «name:» - Название элемента управления. Отображается в панели как описание функционального назначения элемента.

    «type:» - Тип элемента управления. Поддерживаемые типы: analog - числовое управление, binary - дискретное управление, multistate - выбор из списка значений.

    «data:» - Глобальная переменная - для связывания с источником данных. Источник данных привязывается в файле scada/{any}.yaml

    «min:» (только для «type» - analog) - Минимальное используемое значение

    «max:» (только для «type» - analog) - Максимальное используемое значение

    «step:» (только для «type» - analog) - Шаг изменения значения

    Элемент №3:

    «name:» - Название элемента управления. Отображается в панели как описание функционального назначения элемента.

    «type:» - Тип элемента управления. Поддерживаемые типы: analog - числовое управление, binary - дискретное управление, multistate - выбор из списка значений.

    «data:» - Название для связанной переменной. Источник данных привязывается в файле scada/{any}.yaml

    «icon_on:» (только для «type» - binary) - Иконка для отображения состояния логической «1»

    «icon_off:» (только для «type» - binary) - Иконка для отображения состояния логической «0»

    Элемент №4:

    «name:» - Название элемента управления. Отображается в панели, как описание функционального назначения элемента.

    «type:» - Тип элемента управления. Поддерживаемые типы: analog - числовое управление, binary - дискретное управление, multistate - выбор из списка значений.

    «data:» - Название для связанной переменной. Источник данных привязывается в файле scada/{any}.yaml

    «state:» (только для «type» - multistate) - Список значений для выбора.

    «1:» - Описание варианта «1», отображается в выпадающем списке панели управления

    «2:» - Описание варианта «2», отображается в выпадающем списке панели управления

    «3:» - Описание варианта «3», отображается в выпадающем списке панели управления

После начальной настройки структуры можно приступить к использованию ПО

Настройка визуализации в интерфейсе системы контроля версий

Если используется система контроля версий, то действия описанные выше можно выполнить в web браузере перейдя по ссылке https://git.promuc.loc/ под учётными данными, которые были сгенерированы при установке системы.

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

Нужно выбрать существующий или создать новый репозиторий. Для просмотра имеющейся конфигурации демо-проекта необходимо зайти в репозиторий promuc/demo-scada:

../_images/git_1.png

В составе репозитория все вложенные папки и файлы будут иметь ту же структуру, что и в файловой системе:

../_images/git_2.png

В папке scada:

../_images/git_3.png

В папке систем здания:

../_images/git_4.png

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

../_images/git_5.png

Затем необходимо обновить страницу в web браузере, если была открыта редактируемая визуализация или перейти на неё чтобы проверить сделанные изменения.

Источники данных

В качестве поставщиков данных для отображения, могут использоваться различные источники данных:

  • локальная база данных, например:

    "sql:db://{username}@{pass_user}:{host}/{port}sql#{database_name}/{table_name}

  • mqtt брокер, например:

    "mqtt:ws://user@user:mq.4iot.pro:15675/ws#data/lightning-2"

  • шлюз сбора данных (BACnet, Modbus, SunApi, Profinet и т.п.) см. модуль «PromUC Gateway»

  • GET и POST запросы для различных Api

После создания новых экранов визуализаций можно приступить к их использованию.

Создание панелей (элементов) управления

Приводится пример создания панели управления для визуализации scada/ventilation/ahu_p1.yaml

  1. Создание шаблона панели управления «pult/ahu.yaml»

Перейти в папку source/pult и создать файл ahu.yaml

---
description: Управление ПВУ
elements:

# Элемент №1
- name: Уставка температуры притока
  type: analog
  data: TEMP_SET
  min: 32
  max: 14
  step: 1

# Элемент №2
- name: Управление приточным вентилятором
  type: binary
  icon_on: Svg:icons/on
  icon_off: Svg:icons/off
  data: SF_CONTROL

# Элемент №3
- name: Управление вытяжным вентилятором
  type: binary
  icon_on: Svg:icons/on
  icon_off: Svg:icons/off
  data: RF_CONTROL

# Элемент №4
- name: Режим работы системы
  type: multistate
  data: MODE
  states:
     1: Включить
     2: Отключить
     3: Работа по расписанию

# Элемент №4
- name: Выбор сезона
  type: multistate
  data: SEASON
  states:
     1: Зима
     2: Лето
     3: Авто
...
  1. Перейти в папку scada/ventilation. Открыть файл "ahu_p1.yaml":

---
description: Вент-установка П-1
reference: Visio:ventilation/ahu_i
data: "mqtt:ws://user@user:mq.4iot.pro:15675/ws#data//ahu"
...
  1. Внести следующие изменения:

---
description: Вент-установка П-1
reference: Visio:ventilation/ahu_i
data1: "mqtt:ws://user@user:mq.4iot.pro:15675/ws#data/ahu"
controls:
    AHU_CONTROL: Pult:ahu
        translate:
            TEMP_SET: data1.sf_t_setpoint
            SF_CONTROL: data1.start_sf
            RF_CONTROL: data1.start_rf
            MODE: data1.unit_mode
            SEASON: data1.season_mode
...

«controls:» - Набор панелей управления, используемых в визуализации

«AHU_CONTROL:» - Название панели управления внутри визуализации, используется в редакторе визуализаций

Pult:ahu - Ссылка на шаблон панели управления

«translate:» - В этом поле связывается глобальная переменная элемента панели управления («data») с переменной из источника данных.

TEMP_SET: - data Элемента №1 pult/ahu.yaml

data1.sf_t_setpoint - переменная из источника данных «mqtt:ws://user@user:mq.4iot.pro:15675/ws#data/ahu»

SF_CONTROL: - data Элемента №2 pult/ahu.yaml

data1.start_sf - переменная из источника данных «mqtt:ws://user@user:mq.4iot.pro:15675/ws#data/ahu»

RF_CONTROL: - data Элемента №3 pult/ahu.yaml

data1.start_rf - переменная из источника данных «mqtt:ws://user@user:mq.4iot.pro:15675/ws#data/ahu»

MODE: - data Элемента №4 pult/ahu.yaml

data1.unit_mode - переменная из источника данных «mqtt:ws://user@user:mq.4iot.pro:15675/ws#data/ahu»

SEASON: - data Элемента №5 pult/ahu.yaml

data1.season_mode - переменная из источника данных «mqtt:ws://user@user:mq.4iot.pro:15675/ws#data/ahu»

Панель управления создана.

  1. Настройка отображения панели управления «AHU_CONTROL» внутри визуализации scada/ventilation/ahu_p1.yaml

Добавить элемент пульта управления (в примере используются элемент библиотеки svg/elements/control/remote.svg) в визуализацию scada/ventilation/ahu_p1.yaml

В поле «reference» вписать название, созданной в визуализации scada/ventilation/ahu_p1, панели управления AHU_CONTROL.

Панель управления полностью настроена и теперь отображается при клике на элемент, который с ней связан.

../_images/remote4.png

В панели имеются встроенные кнопки:

Записать - Отправить выбранные значения на запись

Отмена - Отмена действия

Закрыть - Выйти из панели управления

Управление объектами

  1. Открыть визуализацию объекта, в который требуется отправить команду управления

  2. Кликнуть по иконке панели управления, панель управления откроется

  3. Задать требуемые параметры

  4. Нажать кнопку «Записать»

  5. При необходимости, повторить действия

  6. Выйти из панели управления

После управления объектами можно перейти к любой другой из описаных операций.

Просмотр журнала событий

Демо-проект на данный момент не содержит настроенных шаблонов для журнала событий.

Реакция на аварийные сообщения системы

В случае возникновения аварийной ситуации, на экране отобразится всплывающее сообщение с описанием возникшей проблемы. Информация о возникшей аварии, с указанием времени возникновения, будет записана в журнал аварий. При клике на данном сообщении будет предложено квитировать аварию (информация о имени пользователя, квитирующего аварию, и время квитирования будет также занесено в журнал) и перейти на соответствующий графический экран для более подробного изучения ситуации. Используя полученную информацию, оператор должен оценить ситуацию и принять меры по устранению аварии: найти причины ее возникновения и устранить их, вернув системы в штатный режим эксплуатации, при необходимости задействовать оперативный персонал.