Иван Хахалев
Совершенно очевидно, что у отраслевых интеграторов потенциальных возможностей для тиражирования проектов на порядок больше, чем у универсальных. С другой стороны, отраслевые интеграторы чаще, чем универсальные, страдают от диктатуры заказчика, выбирающего программно-аппаратные средства без учета их мнения.
Универсальным системным интеграторам тоже хватает проблем – они вынуждены работать с разными технологиями в разных отраслях, поэтому избыточную трудоемкость своих проектов они часто компенсируют опорой на одну программно-аппаратную платформу. В результате выживают все, но многим бы хотелось не просто выживать, а жить-поживать, добро наживать.
В этих условиях крайне существенным становится фактор наличия инструментария повышения производительности труда разработчика, такой инструментарий, который бы обеспечил возможность тиражирования любой мало-мальски повторяющейся задачи. Только копилка опыта может стать фундаментом для всех прочих копилок.
Рассказывая о MasterSCADA (МА № 6/2006, с. 24), мы мельком упомянули о возможности «размножения» (тиражирования) многих элементов в рамках проекта или помещение их в библиотеку с целью использования в других проектах. Рассмотрим эту возможность более подробно.
Рисунок 1. Интегрированная среда MasterSCADA
Сначала перечислим, что может стать предметом нашего библиотечного коллекционирования. В проекте в целом это:
Ø Сам проект
Ø Объект (в понимании MasterSCADA — это законченная самодостаточная часть проекта, обычно отражающая какую-либо технологическую сущность, например, все относящееся к контролю и управлению одним технологическим агрегатом)
Ø Визуальный функциональный блок с набором настроек
Ø Вычислительная формула расчетной переменной или события
В графическом редакторе:
Ø Мнемосхема в целом (с динамическими связями)
Ø Единичный графический элемент с набором настроек
Ø Графический символ (группа элементов), в том числе динамизированный
Ø Графические свойства объемных объектов (включая материал)
Ø Анимированное растровое изображение (мультфильм)
Посмотрим, что дает нам тиражирование проекта и каждого из вышеперечисленных элементов.
Необходимость тиражирования проекта – это удача системного интегратора. Однако, крайне редко новая система становится буквальным повторением пройденного. Даже на изначально одинаковых технологических агрегатах, не говоря уже о целых предприятиях, в процессе их жизни накапливается множество мелких, но существенных отличий. Да и сам интегратор растет над собой, хочет в каждой следующей системе усовершенствовать что-то из сделанного ранее. Отсюда необходимость правки проекта.
Что в проекте MasterSCADA изменить легко, а что трудоемко? Как правило, практически ничего не стоит изменить архитектуру системы – число и роль отдельных устройств в ней. Цена такого изменения – выбор для отдельных частей проекта (объектов) новых узлов системы, на которых они будут обрабатываться. Невелика трудоемкость и выбора другой технической базы – замена одних контроллеров на другие приводит лишь к повторной привязке логических переменных проекта к физическим входам/выходам контроллера.
Дороже стоит изменение разрешающей способности используемых мониторов: поскольку в мнемосхемах используется в том числе и растровая графика, она не может быть идеально отмасштабирована, в связи с чем за смену мониторов придется заплатить ручной правкой: мелкой коррекцией месторасположения и размера отдельных элементов. Но в сегодняшних условиях монитор — не та вещь, на которой имеет смысл экономить.
Рисунок 2. Мастер восстановления внешних связей
Крупные системные интеграторы, которые занимаются не только инжинирингом, но и полномасштабной разработкой проекта, к задаче повышения производительности своего труда часто подходят тоже системно. То есть создают или адаптируют к своей специфике системы автоматизированного проектирования. В такой системе обычно содержатся сведения не только о структуре проекта, перечне параметров, но и об их обработке. А это – готовая основа для проекта MasterSCADA. И такой проект можно сделать автоматически – ведь одна программа с другой всегда сможет договориться, если они построены на современных технологиях, а программисты поняли, чего от них хотят проектировщики.
Интерфейсы автоматизации MasterSCADA (доступ к ее объектной модели) не входят в перечень документации, поставляемой в комплекте с пакетом, но предоставляются бесплатно многим организациям на основе партнерского соглашения. Результатом такого соглашения может стать система автоматизированного сквозного проектирования, базирующаяся на типовых решениях данного проектировщика и позволяющая автоматически генерировать готовые проекты MasterSCADA, обычно требующие далее только создания мнемосхем и небольшой ручной «рихтовки».
Как мы уже ранее писали, объект – центральное понятие проекта MasterSCADA. Он включает:
структуру, состоящую из подчиненных объектов (обычно библиотечных), параметров (в том числе, расчетных) и групп параметров;
обработку данных в виде схемы функциональных блоков;
документы (мнемосхемы, окна, тренды, рапорты, архивы, журналы сообщений и т. п.);
свойства (прежде всего, наследуемые периоды обработки данных);
вычисляемые события, вызывающие действия и сообщения;
расписания, формирующие последовательность действий по абсолютному времени или с заданным периодом.
Входные параметры объектов, входы функциональных блоков, списки используемых в документах параметров объекта имеют связи по получению данных. Команды, расчеты, события, выходы функциональных блоков передают формируемые значения различным потребителям. Эти связи могут быть локальными – с переменными внутри самого объекта (при создании документов, прежде всего мнемосхем, это рекомендуемая методика работы), либо внешними – с сигналами технических устройств (например, контроллеров) или с параметрами других объектов.
Любой объект может тиражироваться в рамках проекта, где он был создан, либо через библиотеку в другие проекты. И здесь легкость тиражирования в значительной степени зависит от методологической дисциплины проектировщика. Поскольку MasterSCADA предоставляет проектировщику полную свободу, остается надеяться на его самодисциплину.
Основных правила всего три:
1. Все, что носит локальный характер, не должно торчать «хвостом» (параметром) наружу. Мнемосхема и другие документы должны ссылаться на локальные параметры объекта.
2. Имена параметров должны быть стандартизованы.
3. Параметры, относящиеся к внешним связям одного объекта, желательно группировать вместе их расположения. К примеру, переменные конфигурации OPC-сервера надо в самом сервере или при вставке их в проект MasterSCADA разбить по группам, соответствующим одному типовому объекту, и назвать одинаково в каждой группе, так, чтобы различалось только имя самой группы.
При таком подходе вставка или тиражирование параметра предельно упрощаются. В момент вставки открывается окно мастера установления связи, в котором показывается список всех внешних связей объекта, некоторые из которых могут быть восстановлены автоматически, а для других надо указать нового «партнера». Если «Правило № 3» выполнялось, то достаточно указать «мастеру», чтобы он сменил имя группы-партнера, а привязку всех отдельных параметров в каждой группе он сделает сам автоматически.
В любом случае разработчик проекта может не беспокоиться о том, что в каком-то из документов осталась разорванная связь с внешним миром, даже, если «Правило №1» не соблюдалось. Все существующие внешние связи объекта, в том числе связи входящих в него документов, предоставляются «мастером» разработчику для согласова ния восстановления или правки.
Функциональные блоки (заранее запрограммированные библиотечные объекты) имеют множество настроек, в том числе влияющих на количество их входов/выходов, алгоритм работы, список формируемых сообщений и т. п. В проекте может использоваться множество экземпляров одного и того же блока, например, реализующего работу с насосом. Как правило, проектировщик для всех этих экземпляров хочет задать один и тот же набор настроек. Ему достаточно один раз вставить блок из библиотеки, настроить и сохранить в библиотеке еще раз под другим именем.
Очень часто в проектах используются не прямо измеренные, а вычисляемые параметры, рассчитанные с учетом температурной коррекции, коррекции по давлению, другим формулам косвенных измерений. Также широко используются вычисления, связанные с обработкой параметров на определенном временном отрезке – усреднения, интегрирование и т. п. Некоторые из этих видов вычислений уже реализованы библиотечными функциональными блоками MasterSCADA, другие могут быть написаны пользователем в виде формулы, а затем помещены в библиотеку. В формулах используются внутренние (локальные) переменные, поэтому для привязки библиотечной формулы достаточно установить внешние связи этих переменных.
Рисунок 3. Мастер создания формул
Строго говоря, тиражирование мнемосхем никому не нужно. Мнемосхема – всего лишь принадлежность объекта, который имеет все основания и возможности для типизации в целом. Однако часто разработка мнемосхем — наиболее трудоемкая часть создания проекта, требующая кропотливой, но не слишком высококвалифицированной работы. Поэтому во многих случаях их создание целиком или только в части статической основы можно поручить вспомогательному персоналу. Чтобы делать это асинхронно с разработкой проекта, в MasterSCADA предусмотрен механизм экспорта и импорта мнемосхем. После вставки мнемосхемы в проект достаточно установить ее внешние связи для изображений объектов, динамизированных элементов и команд.
Эргономика – это лицо и стиль проектировщика. Именно поэтому выбор способа отображения того или иного технологического оборудования на мнемосхеме производится один раз для всех мнемосхем проекта, а иногда и всех проектов данного разработчика. Чтобы не приходилось для каждого вставленного в мнемосхему графического элемента заново производить настройку его свойств (цвета заполнения, толщины линий, типа шрифта и т. п.), один раз настроенный элемент можно сохранить в любую из библиотек элементов.
Символ, как объединение ряда отдельных элементов, не является их механической суммой. MasterSCADA позволяет выбрать и дать новое имя тем свойствам каждого из входящих в символ элементов, которые должны подлежать настройке или динамизации символа в целом, а остальные свойства оставить «за кадром».
В результате, символ может оказаться проще в настройке, чем исходный графический элемент. Этой возможностью иногда пользуются даже для работы с единственным графическим элементом с целью его упрощения для разработчика мнемосхемы, например, это способ «русификации» свойств импортированных в библиотеку элементов ActiveX-контроля сторонних разработчиков.
Рисунок 4. Мастер фильтрации свойств символов
Особенность объемных объектов – в наличии большого числа графических настроек. Так, элемент «цилиндр» в зависимости от настроек формы его окончания может с легкостью превращаться в цистерну, бочку, «карандаш» и т. п. Объемным элементам требуется также настройка внешнего вида материала, из которого они «сделаны», поскольку, кроме цвета, на вид влияет направление и яркость их освещения, отражающие свойства поверхности.
Чтобы не повторять эти настройки неоднократно, разработчику предоставляется возможность создания библиотек объемных «объектов» определенной формы и материала: емкостей, танков, цистерн из металла или других материалов любых оттенков. Поскольку разные объекты могут быть сделаны из одного и того же материала, есть возможность создания отдельной библиотеки материалов.
Рисунок 5. Диалог создания материала объемного элемента
Встроенный в графический редактор мастер создания мультфильмов служит для создания спецэффектов, которые невозможно или неудобно реализовать простой динамизацией свойств элементов. Это не только смена растровых изображений с заданным темпом, но и эффекты движения (удобно для отображения разнообразных конвейеров, поршней, стрелок и т. п.), изменения четкости изображения (обеспечивают интуитивно понятное для операторов отображение таких процессов, как кристаллизация), изменения масштаба изображения и так далее.
Отображение созданных мультфильмов может динамически управляться с помощью переменных проекта, а сохранение мультфильмов возможно не только в локальной библиотеке данной мнемосхемы, но и в проекте в целом и в общей библиотеке графического редактора MasterSCADA.
Рисунок 6. Мастер создания мультфильма
Понятно, что базовые библиотеки для MasterSCADA – это необходимая для полноты ее функций часть пакета. Однако начавшийся процесс создания отраслевых решений (уже реализованы библиотеки для «большой» теплоэнергетики, вентиляции и кондиционирования зданий) ориентирован на более узкий круг потребителей.
Любой труд должен быть вознагражден, поэтому такие специализированные библиотеки предлагаются в качестве недорогого «вспомогательного» продукта для целевой аудитории. Системный интегратор, воплотивший свой опыт в новую библиотеку для MasterSCADA, также может и должен в интересах всего профессионального сообщества сделать ее публичной. Будет эта библиотека коммерческим изделием или бескорыстной помощью коллегам – решать авторам.
Последний вариант иногда оказывается лучшим видом рекламы.