Использование вариантов в E3.series
Меж двух равно манящих яств, свободный
В их выборе к зубам бы не поднес
Ни одного и умер бы голодный…
Данте Алигьери. Божественная комедия (1321)
В статье продолжен обзор нововведений в E3.series. Рассмотрен вопрос использования Вариантов и Опций в проекте. Варианты/Опции — по сути, не новый функционал, однако в E3.series 2009 его возможности значительно расширены. Материал будет интересен как начинающим пользователям, так и опытным проектировщикам.
Введение
Наверняка читатели, работающие проектировщиками, сталкивались с ситуацией, когда на этапе проектирования приходится отдавать предпочтение тому или другому решению в проекте. На это, как правило, влияет огромное количество факторов, начиная от желания заказчика и заканчивая опытом и интуицией проектировщика.
Зачастую процесс проектирования сложно назвать гладким и однозначным. Особенно на начальном этапе. Входных данных может оказаться недостаточно, и проектировщику приходится разрываться между несколькими решениями (вариантами) одного и того же проекта. В результате на компьютере в рабочей директории появляются файлы с именами, понятными только их автору: вариант-1, вариант-2 и т.д. Человеку, не принимающему участия в работе, не стоит даже пытаться разобраться в этом, а тем более понять. До боли знакомая ситуация, не правда ли?
По мере поступления дополнительной информации (данных) проектировщику становится ясно, какому варианту отдать предпочтение.
Возможна и другая ситуация, когда инициатором выполнения нескольких вариантов проекта (или какой-то его части) выступает сам заказчик, который и осуществляет выбор. В этом случае проектировщику дополнительно приходится решать вопросы представления/сравнения вариантов в понятной для заказчика форме.
Как бы там ни было, в любой из описанных выше ситуаций неизбежно появление новых файлов — различных вариантов проекта. Различие между ними можно оформлять в виде комментариев, опять же в отдельном файле. При изменении какого-либо варианта приходится вносить изменения и в свои комментарии. Очевидно, что при этом значительно усложняется процесс проектирования и, как следствие, существенно повышается вероятность появления ошибок.
Чтобы избавить проектировщика от подобных сложностей и сделать его работу более упорядоченной, разработчики E3.series предложили особый подход в управлении вариантами.
Варианты и Опции в E3.series
Под Вариантом (от лат. variantis — меняющий, изменяющийся) в E3.series понимается одна из нескольких редакций какой-либо части проекта в рамках одного и того же проекта. Варианты объединяются в группы, которые называются Опциями (от лат. optionis — альтернатива, предмет выбора).
Опцию можно рассматривать как некий контейнер, который может содержать как Варианты, так и другие Опции — Подопции. Это позволяет создать иерархию. Но здесь есть одна особенность: на одном и том же иерархическом уровне не могут одновременно располагаться Варианты и Подопции.
Рассмотрим пример. Если в проекте определить Опцию «Напряжение электропитания» (уровень 0), то его Вариантами (уровень 1) могут быть, например, следующие значения: –110 В, ~220 В, ~380 В (рис. 1а). Такая структура является одноуровневой.
а
б
Рис. 1. Опция и Вариант — элементы иерархической структуры
Применение Подопций дает возможность организовать многоуровневую структуру. На число иерархических уровней не налагается никаких ограничений. На рис. 1б приведен пример такой структуры. В ней Опция «Напряжение электропитания» занимает уровень 0, Подопции «Постоянное» и «Переменное» — уровень 1, а Варианты – 110 В, ~220 В, ~380 В — уровень 2.
Примечание. Природа Опций и Подопций абсолютно одинакова. Любые действия над Опциями, описанные в статье, справедливы и для всех Подопций. Поэтому для улучшения восприятия информации и придания материалу более лаконичного вида в большинстве случаев наряду с Опциями упоминание Подопций будет опущено. |
Каждый элемент, будь то Вариант или Опция, обладает собственным именем. Именование элементов подчинено определенному правилу, которое заключается в том, что имя должно быть уникальным в рамках своего иерархического уровня. Количество Вариантов и Опций в проекте не ограничено.
Работу с Вариантами и Опциями разработчики представили единым функционалом — Варианты/Опции, что вполне логично.
Применение этого функционала подразумевает активацию (включение) и деактивацию (выключение) нужного Варианта и/или Опции. При этом каждый из них может быть назначен любому объекту (листу, символу изделия, изделию, соединению и т.д.) или его части (отдельная схема, панель щита и т.д.) проекта. При активировании (деактивировании) нужного Варианта и/или Опции будут активированы (деактивированы) объекты, которым они назначались.
Пользователям, имеющим опыт работы в E3.series, наверняка известна возможность применения Вариантов и Опций. В E3.series 2009 этот функционал значительно расширен и усовершенствован.
Нужно признать, что в предыдущих версиях программы он был реализован наполовину, то есть Варианты и Опции существовали независимо друг от друга. В новой же версии они представлены однозначными иерархическими связями. При этом возможна их логическая комбинация. Но обо всем по порядку.
Создание Опций
Для работы с Вариантами и Опциями разработчики не стали создавать отдельных окон, загромождающих рабочее пространство программы. Предложенное ими решение оказалось весьма рациональным: для работы с Вариантами и Опциями была отведена отдельная закладка в Окне проекта.
По умолчанию эта закладка скрыта. Чтобы ее активировать, необходимо выполнить команду Вид > Окно Варианта/Опции . После этого станет доступна новая закладка Варианты/Опции (рис. 2), а в соответствующем окне будет происходить основная работа с Вариантами и Опциями.
Рис. 2. Закладка Окно проекта для работы с Вариантами и Опциями
Как уже было отмечено, Варианты и Опции организуют иерархическую структуру. Как и любая другая такая структура в E3.series, визуально она представлена в виде дерева. Создание Вариантов и Опций означает организацию элементов (веток) этого дерева, или, как еще говорят, формирование кроны. Поскольку Варианты и Опции являются элементами одного и того же дерева, правила их создания являются общими.
По сути, дерево формируется сначала только из Опций и Подопций. Затем из нужных Подопций путем изменения их свойств получают Варианты.
Чтобы создать Опцию, необходимо в окне закладки Варианты/Опции по правому клику на имени проекта вызвать контекстное меню и выполнить команду Новый Вариант/Опция. В результате появится окно Параметры Варианта/Опции (рис. 3).
Рис. 3. Создание Опции
В данный момент нас интересуют только два поля: Имя и Описание. Не беспокойтесь, что остальные элементы данного окна неактивны: они нам понадобятся чуть позже. Итак, как понятно из названий, в текстовом поле Имя указывается имя создаваемой Опции. Данное поле является обязательным к заполнению. При этом имя Опции должно быть уникальным в рамках своего иерархического уровня и содержать не более 164 символов, что вполне достаточно для реальных проектов. В поле Описание, если это необходимо, указывается текст описания для Опции. Максимально допустимая длина описания, по всей видимости, не установлена. В любом случае пользователь должен сам определиться с тем, какая именно информация и какой ее объем будут вводиться. Главное, чтобы в дальнейшем это не затрудняло работу в программе.
Примечание. Сложно сказать, является ли отсутствие ограничения на длину описания Опции особенностью программы или просчетом программистов. Как правило, в системе E3.series длина текстового элемента ограничена 255 символами. |
Для создания Подопции необходимо щелкнуть правой кнопкой мыши на имени уже созданной Опции, вызвав таким образом контекстное меню, и выполнить команду Новый Подвариант/Опция. Появится такое же окно, как и в случае создания Опции (см. рис. 3), в котором нужно указать параметры Подопции.
При необходимости повторите эти операции в зависимости от того, какие были приняты решения по проекту. Поэкспериментируйте с различными уровнями вложенности, изменить которые можно простым перетаскиванием элемента Опции мышью с одного уровня на другой.
Рис. 4. Дерево из Опций и Подопций
На рис. 4 показана структура дерева, элементами которого являются только Опции и Подопции, о чем, кстати, свидетельствует символ буквы O (Option) возле имени.
Рис. 5. Задание типа активации для элементов группы
Активация Вариантов и Опций
Активация нужного Варианта и/или Опции осуществляется при помощи переключателей, которые размещены перед именем элемента структурного дерева. Используется два типа переключателей:
- независимый переключатель (check box, чекбокс);
- зависимый переключатель (radio button, радиокнопка).
Для активации Опции применяется независимый переключатель, для Варианта — зависимый. Независимый переключатель (или флажок), как следует из его названия, может быть либо установлен, либо сброшен (соответственно квадратик с галочкой внутри или пустой). Зависимый переключатель — это элемент активации, который, подобно независимому переключателю, может находиться в одном из двух состояний с тем отличием, что если флажки не связаны друг с другом, то только одна радиокнопка из группы может быть выбрана в текущий момент.
Примечание. Чувствуем, вас уже мучает вопрос, почему этот переключатель называется радиокнопкой. Оказывается, всё очень просто. Дело в том, что на старых радиоприемниках была группа клавиш, одна из которых могла «защелкиваться», освобождая при этом другую клавишу из группы. Например, если радио могло быть настроено на три станции, то у него были три клавиши и нажата могла быть только одна из них. Согласитесь, терминология очень спорная, но история есть история... |
Задать тип активации отдельно для одного Варианта или Опции нельзя. Это можно сделать только для всей группы, в состав которой они входят. Для этого необходимо щелчком по правой кнопке мыши на имени Опции вызвать контекстное меню и выполнить команду Параметры. Установка нужного типа осуществляется в поле Активация окна Параметры Варианта/Опции (рис. 5).
Далее приведены все возможные типы активации, которые предусмотрели разработчики:
- точно один — всем элементам Опции в качестве переключателя будет назначена радиокнопка, то есть из всей группы активным может быть только один элемент (рис. 6а). Именно этот тип активации превращает элементы группы в Варианты. Обратите на это особое внимание. О том, что элемент дерева является Вариантом, свидетельствует и символ буквы V (Variant) возле имени;
- 0 … n — всем элементам Опции в качестве переключателя будет назначен чекбокс. В этом случае может быть активировано ноль или больше элементов (рис. 6б). Иными словами, группа может как содержать активированные элементы, так и не содержать их вовсе;
- 1 … n — всем элементам Опции в качестве переключателя также будет назначен чекбокс. При этом активированным может быть один или более элементов (рис. 6в).
В любой момент чекбокс (группы Подопций) можно активировать/деактивировать. Однако разработчики предусмотрели еще одну возможность, при которой переключатель всегда будет включен. Для этого необходимо в окне Параметры Варианта/Опции выбрать Обязательно должен существовать (см. рис. 5). После этого переключатель будет включен и простым кликом мыши выключить его уже не удастся. Чтобы перевести его в исходное состояние, достаточно выключить параметр Обязательно должен существовать.
Рис. 6. Возможные типы активации для элементов группы
Задав нужный тип активации для ранее созданных элементов структурного дерева (см. рис. 4), получим законченную модель Опций и Вариантов (рис. 7), структура которой ранее была приведена на рис. 1б. Обратите внимание, что возле каждого элемента наряду с переключателем расположен поясняющий символ — O (Option) или V (Variant). Согласитесь, что это значительно облегчает визуальное восприятие дерева.
Рис. 7. Модель Опций и Вариантов в проекте E3.series
Назначение Опций объектам
Как уже было отмечено, Опция (одна или одновременно несколько) может быть назначена практически любому объекту E3.series (символу изделия, изделию, листу и т.д.). Понятно, что такое назначение доступно лишь после того, как Опции заранее были определены и размещены на нужном иерархическом уровне.
Назначить Опцию объекту можно двумя способами: через контекстное меню выбранных на листе элементов или через окно параметров объекта. В первом случае необходимо выбрать на листе элемент или определенную часть схемы, а затем через контекстное меню выполнить команду Назначить опции. Во втором случае — в окне параметров элемента перейти в закладку Назначить Варианты/Опции (рис. 8).
Рис. 8. Назначение Опций через окно параметров изделия
Содержимое закладки Назначить Варианты/Опции и окна Варианты/Опции (которое вызывается командой Назначить опции) во многом подобно. Поэтому дальнейшее рассмотрение будем проводить на примере последнего.
Назначить объекты можно в одном из двух режимов: стандартном или расширенном. Нужный режим устанавливается при помощи переключателя, элементы которого соответствуют характеристикам выбранного режима (рис. 9).
Рис. 9. Назначение Опций в стандартном режиме
В стандартном режиме будет выведен список всех Опций, которые в своем составе не имеют Вариантов. Возле каждого элемента списка размещен независимый переключатель (см. рис. 9). Включите нужный переключатель, и Опция будет назначена выбранному элементу. Понятно, что при помощи независимых переключателей можно назначить сразу несколько Опций.
В расширенном режиме, наряду с назначением Опций, разработчики предусмотрели возможность назначать и Варианты. Принципы работы в этом режиме для Вариантов и Опций идентичны. Назначению Вариантов посвящена следующая глава, в которой рассмотрены особенности работы в расширенном режиме.
Назначение Вариантов объектам
Назначение Вариантов осуществляется в окне параметров объекта. Так же как и в случае с Опциями, Варианты можно назначить двумя способами. В первом случае назначение осуществляется в расширенном режиме, при этом одновременно может быть использовано до трех групп (рис. 10). Если включить параметр Выбрать группы, то станут доступны выпадающие списки, в которых размещены имена всех Опций, содержащих дочерние элементы.
Рис. 10. Назначение Вариантов и Опций в расширенном режиме
Ниже располагается таблица, число и имена столбцов в которой могут меняться динамически: структура таблицы зависит от того, какие элементы были выбраны из вышеупомянутых списков.
Примечание. Следует отметить, что после первого сеанса работы в расширенном режиме указанный режим становится общим для всего проекта, так что станет невозможно переключиться обратно на стандартный режим. |
При выборе Опции из списка в таблицу будут добавлены столбцы. Имена столбцов будут соответствовать именам элементов (Вариантов или Подопций), входящих в состав выбранной Опции.
Ячейки в столбцах Булево логическое выражение, Тип и Значение содержат текстовую информацию. Ячейки всех остальных столбцов предназначены для функционального использования.
В столбец Булево логическое выражение вводится текст, а точнее логическое выражение, которое представляет собой комбинацию имен Вариантов/Подопций и знаков логических операций. Ячейка этого столбца всегда возвращает логическое значение — истину либо ложь. В том случае, если ячейка возвращает истину, элементы, которым было назначено данное логическое выражение, будут активированными, в противном случае — деактивированными.
Чтобы упростить работу, а также оградить пользователя от ручного набора имен Вариантов/Опций и ввода логических операций, разработчики предложили функциональные ячейки — то есть ячейки, клик по которым добавляет текст имени столбца в ячейку Булево логическое выражение.
Также поддерживаются следующие логические операции:
- & (амперсанд) — логическое И;
- | (вертикальная черта) — логическое ИЛИ;
- !(восклицательный знак) — логическое НЕ.
Открывающая и закрывающая скобки в логическом выражении служат для группировки отдельных его частей. Например, если вы зададите выражение следующего вида:
( ~200 В | ~380 В ) & 50 Гц,
где ~200 В, ~380 В, 50 Гц — имена Вариантов, то ячейка вернет истину, если будет выбран один из двух Вариантов — ~200 В или ~380В — и при этом обязательно 50 Гц, иначе — ложь.
Под вторым способом назначения Вариантов подразумевается способ, который применялся в предыдущих версиях E3.series. Разработчики не стали менять привычные вид и расположение элементов в окне. Как и раньше, в окне параметров объекта имеется раздел Варианты/ Опции (рис. 11). Используя этот способ, нужно учитывать, что Варианты, в отличие от Опций, могут быть назначены не только объектам, но и отдельно их свойствам — атрибутам.
Рис. 11. Назначение Вариантов атрибутам изделий
Чтобы назначить Вариант, необходимо задать все нужные атрибуты, затем в поле Варианты/Опции выбрать нужный Вариант и параметр Создать новый и нажать Применить (см. рис. 11). Далее, не закрывая окна, следует выполнить нужные действия с атрибутами (удалить, добавить, изменить значение и т.п.), выбрать другой Вариант, отметив при этом параметр Создать новый. Теперь в случае активации определенного Варианта изделие будет обладать заданными для него атрибутами.
Конфигурация Вариантов/Опций
Возможны ситуации, когда в проекте предусмотрено большое число Вариантов и Опций, которые назначаются как по отдельности, так и в составе логических выражений. Составление таких логических выражений порой может быть довольно утомительным и, как следствие, является причиной возникновения ошибки. Поэтому можно заменить наиболее часто используемые логические выражения именованным эквивалентом — конфигурацией (псевдонимом).
Чтобы определить конфигурацию, нужно выполнить команду Сервис -> Общие параметры и перейти в раздел Варианты/Опции. В поле Создать новую конфигурацию вариантов и опций задается имя конфигурации и булево выражение, которое представляет собой комбинацию соответствующих имен и символов логических операций.
В качестве демонстрации создадим две конфигурации — ПеременноеНапряжение220 и ПеременноеНапряжение380 — и зададим для них следующие логические выражения (рис. 12).
Рис. 12. Создание конфигураций
Теперь созданные конфигурации можно использовать в логических выражениях, как и любой Вариант. Пусть, например, задано такое выражение:
ПеременноеНапряжение220 | ПеременноеНапряжение380 [1]
Фактически оно будет соответствовать следующему выражению:
( ~220 В & 50 Гц ) | ( ~З80 В & 50 Гц ).
Если применить принцип дистрибутивности (вспомним курс математики), то это выражение можно упростить, приведя к следующему виду:
( ~220 В | ~З80 В ) & 50 Гц.
Иными словами, при назначении выражения [1] соответствующее изделие будет активировано в проекте, если будет выбран один из Вариантов — ~220 В или ~З80 В — и при этом обязательно 50 Гц.
COM-интерфейс
Следуя одному из главных принципов: добиваться расширения гибкости программы, — разработчики предоставили возможность проводить основные операции над Вариантами и Опциями (например, создание, удаление, назначение активным) через скрипты. Скрипт — это обыкновенный текстовый файл, содержащий набор команд на определенном языке программирования. Как правило, скрипты для E3.series создаются на VBScript (Visual Basic Script Edition, VBS).
Суть данной технологии состоит в том, что программа складывается из отдельных компонентов, которые, в свою очередь, состоят из объектов. Доступ к нужным объектам осуществляется из скрипта — через предоставляемый разработчиками COM-интерфейс. С точки зрения программирования COM-интерфейс — это набор команд, используемый в скрипте для операций над Вариантами и Опциями.
Доступ к Вариантам и Опциям осуществляется через отдельные объекты, которые получают из объекта проекта:
objVariant = objProject.CreateVariantObject
objOption = objProject.CreateOptionObject
Полное описание объектов и пример работы с Вариантами и Опциями через COM интерфейс приводятся в контекстной онлайн-справке системы E3.series.
Заключение
При всем многообразии средств и функциональных возможностей предложенного механизма Вариантов и Опций складывается впечатление, что пока он не завершен. Не до конца проработаны некоторые концептуальные моменты, не реализована полноценная поддержка Вариантов/Опций при работе с Областью листа и Сборками. Тем не менее данный функционал показал себя как вполне работоспособный инструмент, который, мы уверены, может стать незаменимым при проектировании в E3.series.
К сожалению, в одной статье сложно осветить все особенности работы с Вариантами/Опциями. Здесь мы попытались изложить только основные моменты. Более детальную информацию можно получить из официальных источников или на форуме русскоязычных пользователей, адрес которого остался прежним: http://forum.E3series.ru.
Инженер-проектировщик отдела автоматизации. Украинский филиал ООО «УК “РусГазИнжиниринг”» (г.Северодонецк, Украина). В 2004 году окончил Восточноукраинский национальный университет им. В.Даля по специальности «Автоматизация и компьютерно-интегрированные технологии».