понедельник, 12 декабря 2016 г.

Типизация. Обзор функционала

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

Функционал типизации впервые появился в версии 3.6 и первоначально был предназначен для работы с контроллерами. Идея состояла в следующем – существует некий объект автоматизации, например, ИТП, с работающим на нем контроллере. Таких ИТП могут быть сотни, при этом они полностью идентичные. В таком случае создавать проект по «классической» схеме (сотня контроллеров, сотня объектов и связи между ними) не эффективно – даже имея функционал Шаблон-Экземпляр, вносить правки будет трудоемко, кроме того проект будет достаточны крупным.
Типизация решала эту проблему. При использовании типизации в дереве объектов создается единственный объект и единственный контроллер. Затем создается Список экземпляров. Этот список назначался контроллеру и объекту. После этого у контроллера, у портов появлялись дополнительные вкладки, на которых можно указать параметры подключения каждого экземпляра контроллера. Таким образом все отличия сводились лишь к различным параметрам связи контроллеров. Поскольку проект и контроллер в дереве присутствуют в одном экземпляре, то вносить правки можно очень быстро, проект также получается очень компактным.
Однако проектов с большим количеством типизированных объектов использующих контроллеры с MasterPLC немного, поэтому возникла необходимость поддержки ОРС переменных – чтобы можно было работать с любыми другими контроллерами. В версии 3.7 мы реализовали поддержку работы с ОРС переменными и с успехом применили типизацию для диспетчеризации 350 вентиляционных установок крупного торгового центра (использовались контроллеры Segnetics). В версии 3.8 мы сделали ряд существенных доработок для повышения удобства данного функционала – были разработаны специальные контролы, позволяющие автоматизировано расставлять связи (именно это и было главным препятствием распространению типизации, так как создавать тысячи связи вручную крайне трудоемко).
В данной статье мы разберем принципы работы с типизацией на примере небольшого проекта. Также нами выпущен цикл видеопримеров из трех серий по работе с типизацией, ссылки на него - в конце статьи.

Итак, у нас есть конфигурация с 10 устройствами, каждое из которых содержит по 3 тега – синус, пила и случайное:

Построим проект с использованием типизации.
Сначала добавим в дерево системы компьютер, ОРС сервер и переменные.

Теперь приступим к созданию дерева объектов. Создадим общий объект (в нем будут отображаться все данные от всех индикаторов) и у него – вложенный объект устройства.

Мы добавим в этот объект три переменных-значения – Пила, синус и случайный. Привязывать их к дереву системы нельзя – для типизации это делается специальными средствами. Эти переменные будут индицировать значения из ОРС сервера. А также сделаем еще одну переменную типа Строка Название, она будет содержать название устройства.

Сделаем изображение объекта и несложную мнемосхему.

Пока что мы с вами делаем проект аналогично, как и при «классическом» построении, разве что внешние связи не расставляли (внутренние связи в типизированном объекте могут быть). Теперь начнем использовать типизацию. 
Первое что нужно сделать – это создать список экземпляров. Это делается на вкладке Система Типизация. Создадим список с такими же именами, как в ОРС сервере – Устройство1:Устройство10.
Список создан. Теперь следующий шаг – нужно назначить этот список экземпляров нужному объекту, т.е. объекту Устройство.
Теперь еще один обязательный шаг – у объекта нужно включить собственный цикл, на вкладке «Опрос». Если вы забудете это сделать, то при запуске скада выдаст вам сообщение об ошибке.

Теперь нужно расставить связи. 
Когда мы назначили объекту типизацию, у его переменных также появляется вкладка Типизация – именно на ней и происходит расстановка связей.

Нужно перетащить ОРС переменную (или любую внешнюю переменную) в нужное поле – входная или выходная связь. Тащим ОРС переменную Пила группы Устройство1 в поле входной связи.

Конечно создавать таким образом сотни связей будет неудобно. Поэтому мы сделали специальные контролы для автоматизации. Но перед тем как перейти их рассмотрению, создадим связи у первого экземпляра (Устройство1) – дело в том, что формирование связей производится через Excel, и поэтому удобно иметь шаблон одной связи, чтобы на его основе сформировать остальные связи. Поэтому установим в дереве связи у переменных Синус и Случайный.

У переменной подписи укажем значение до опроса – имя нашего устройства.

Контролы автоматизации располагаются на мнемосхемах. Мы рекомендуем выделить для этой цели отдельный сервисный объект (можно даже выключить у него исполнение на компьютере). Создадим объект Сервисный и создадим у него мнемосхему. На мнемосхеме расположим контрол Таблица экземпляров, из закладки Окна палитры мнемосхемы. Контрол примет следующий вид:

В столбцах мы видим список экземпляров и их ID. По умолчанию добавленные в дереве связи в контроле автоматически не появляются – их нужно создать вручную, перетащив переменную из типизированного объекта в заголовок таблицы. Но поскольку у нас нужные связи созданы, то проще включить синхронизацию. Для этого в свойствах контрола включите настройку Унаследовать связи объекта.

Теперь мы указали что от данного объекта нужно взять все созданные связи – они появились в контроле.

Теперь можно также создавать связи – перетаскивать ОРС переменные в нужные ячейки. Однако основное преимущество контрола в том, что теперь связи представлены в единой таблице и их можно экспортировать, а затем сформировать связи автоматически.
Нажмем кнопку Экспортировать, и выберем папку. Связи будут сохранены в формате CSV.
Пока что опустим процесс формирования связей в Excel – мы это рассмотрим отдельно, в следующей статье.
Импортируем связи из исправленного файла – они добавятся в таблицу.

Связи сформированы. Сохраним таблицу и выйдем из мнемосхемы.
Как теперь использовать типизированные объекты? В дерево их больше добавлять не нужно – теперь их нужно использовать на мнемосхемах, добавлять изображения объектов, кнопки вызова и т.д.
Создадим у общего объекта мнемосхему, и вытащим на него наш типизированный объект правой кнопкой мыши и выберем изображение объекта.

Теперь нужно указать к какому экземпляру списка он принадлежит. Это делается в свойствах контрола.

По умолчанию стоит режим По выбору – в этом случае, при щелчке по контролу появляется специальное окно, в котором выбирается экземпляр. Можно привязать и к конкретному экземпляру – Устройство1.
Разместим таким образом все изображения объектов.

Вот и все, теперь можно запустить проект в режим исполнения. В контролах изменяются значения – каждый для своих групп переменных.

Нажатие на любой контрол, открывает соответствующую ему мнемосхему объекта.
В заголовке мнемосхемы помимо пути к объекту, указывается и имя экземпляра, которому принадлежит данная мнемосхема.
Проект с использованием типизации готов.
Списков экземпляров может несколько, при этом их уровень может быть разным. Это могут быть целые агрегаты (например, котлы) или отдельные элементы, из которых потом будет создан проект (задвижки, насосы, клапаны).
В следующей статье мы разберем самую сложную часть типизации – создание связей. Для этого нами был разработан специальный макрос Excel.
Также вы можете посмотреть видеопримеры по типизации, которые доступны на нашем сайте:

Комментариев нет:

Отправить комментарий

Поделиться