Актуально для версии 5.20

Начиная с версии 6.30 плагины, описанные ниже, не будут входить в поставку. Все реализуемые ими возможности перенесены в сервисы,  переработаны, и стали базовым функционалом или удалены. Однако пользовательские плагины, написанные сторонними разработчиками, продолжают функционировать.

Модули расширения - плагины

Для некоторых классов задач, таких как отображение данных СУБД, отображение данных телемеханики из ОИК через интерфейс OPC, существуют типовые решения в составе программного комплекса Модус, реализованные в виде соответствующих модулей расширения (плагинов). Они могут адаптироваться к решениям, используемым на предприятии (например для привязки к базам данных – тип СУБД, имя базы данных, структура – названия таблиц и полей), с помощью конфигурирования.
Как правило, в составе комплекса каждый плагин поставляется в паре с соответствующим редактором, позволяющим настраивать его конфигурацию в рамках внедрения на конкретном предприятии. Например:


Модуль связи с базами данным

SDEDB.dll 

Редактор привязок к БД

LinkSxeme.exe
Модуль навигации по справочнику объектов  HTSDN.ocx Редактор справочника объектов  SDNEdit.exe
Модуль отображения данных OPC  OPCSDE.dll Редактор связи с OPC  OPCLink2.exe
Модуль отображения сцен (для тренажера)  ScnViewX.ocx Редактор сцен  ScnEditor.exe

Модуль отображения состояния оборудования

из БД электронного журнала

 PGUEST.dll ПО ведения мнемосхемы  OL.exe
Навигация по схемам  SDENavigation.dll Графический редактор  Sdedit32.exe

Модули расширения представляют собой исполняемые файлы формата EXE, DLL или OCX. Имеется возможность подключать даже плагины, выполняющиеся на удаленном компьютере по сети.

  • Приложение, к которому подключается плагин, называется приложением – хостом. В качестве таких приложений могут быть задействованы практически все основные приложения комплекса:
  • Графический редактор.
  •  Аниматор.
  •  Тренажер. 
  • Интегратор.
  • Диспетчер.

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

  • Наиболее важные приложения из интерфейсов объектной модели: 
  • ISDEApplication – приложение программного комплекса; 
  • ISDEDocument – документ схемы, соответствующий схеме SDE; предусматривается наличие коллекции документов приложения (ISDEDocuments);
  • ISDEPage – страница схемы, включает коллекцию страниц ISDEPages;
  • ISDEObject2 – элемент схемы и ISDEObjects2 – коллекция элементов, описывающая набор элементов, содержащихся на странице, в контейнере, присоединенные к данному коннектору; 
  • IParam – именованный параметр элемента и IParams –коллекция параметров элемента; 
  • ISDENode - коннектор элемента, через который возможно получить список элементов, топологически подключенных к данному элементу; ISDENodes – коллекция коннекторов элемента; 
  • IPlugin – модуль расширения и IPlugins – коллекция модулей расширения.

Для оповещения модулей расширения о происходящих действиях и предоставления им возможности реализовать реакцию на эти действия в приложениях используются около 30 видов событий, например:

  • OnDocObjectEnter - курсор мыши попадает в область элемента схемы;
  • OnDocPageChange – переход на другую страницу документа;
  • OnDocObjectsChangeParams – изменился один из параметров элемента (для группы элементов).

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

Для подключения имеющегося плагина к Интегратору достаточно указать его для приложения, выбрав из списка (операция выполняется в специальном приложении «Управление плагинами»):
 


Подключение плагина из списка имеющихся.

 

 



Далее можно настроить особенности исполнения плагина в приложении (состав меню, вид иконок и др.). 


 Конфигурирование плагина.

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

 

 

 

 

Взаимодействие модулей расширения с приложением осуществляется через объектную модель приложения, основанную на стандарте COM и единообразную для всех основных приложений. Таким образом, один и тот же модуль расширения может использоваться с несколькими приложениями. По идеологии организация взаимодействия приложений комплекса с модулями расширения аналогична организации взаимодействия с приложением модулей расширения MS Office.

Плагины реализуют следующую функциональность:

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

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

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

Объектная модель приложения

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

Для полного контроля над компонентом ActiveX или приложением комплекса в системе Модус реализуется ряд программных COM-интерфейсов, совокупность которых называется объектной моделью. Перечислим наиболее важные приложения из интерфейсов объектной модели:

  • ISDEApplication – приложение программного комплекса; 
  • ISDEDocument – документ схемы, соответствующий схеме SDE; предусматривается наличие коллекции документов приложения (ISDEDocuments); 
  • ISDEPage – страница схемы, включает коллекцию страниц ISDEPages; 
  • ISDEObject2 – элемент схемы и ISDEObjects2 – коллекция элементов, описывающая набор элементов, содержащихся на странице, в контейнере, присоединенные к данному коннектору; 
  • IParam – именованный параметр элемента и IParams –коллекция параметров элемента; 
  • ISDENode - коннектор элемента, через который возможно получить список элементов, топологически подключенных к данному элементу; ISDENodes – коллекция коннекторов элемента; 
  • IPlugin – модуль расширения и IPlugins – коллекция модулей расширения.

    Для оповещения модулей расширения о происходящих действиях и предоставления им возможности реализовать реакцию на эти действия в приложениях используются около 30 видов событий. В качестве примера назовем: 
  •  OnDocObjectEnter - курсор мыши попадает в область элемента схемы; 
  • OnDocPageChange – переход на другую страницу документа; 
  • OnDocObjectsChangeParams – изменился один из параметров элемента (для группы элементов).

    В комплексе Модус версии 5.0 объектная модель компонента существенно доработана. Увеличено число доступных интерфейсов и событий, уже имеющиеся были переработаны с учетом рекомендаций Microsoft для интерфейсов автоматизации, что облегчает возможность использования компонента в приложениях Visual Basic.

Пример реализации модуля расширения

Каков алгоритм взаимодействия модуля расширения с приложением? В качестве примера рассмотрим, что должно быть реализовано в модуле расширения OPC-агента.

  • Плагин сообщает программе данные о себе (название и назначение модуля, способы его загрузки) посредством интерфейса IpluginInfo. 
  • Активируются интерфейсы IPluginMenus и IpluginMenu, чтобы плагин совместно с приложением могли создать меню и/или кнопки на панели инструментов. 
  • Механизм подключения OPC-сервера (приложение) реализуется в модуле расширения. 
  • Обработка событий. Например, плагин обрабатывает событие "Открытия документа" (OnDocOpened), поступившее от приложения. После открытия документа, содержащего схему, плагин вычитывает оттуда раздел с таблицей соответствия собственных элементов и OPC-тегов, после этого начинает принимать информацию по соответствующим тегам от OPC-сервера.
  • При поступлении события от OPC-сервера OPС-модуль находит соответствующий элемент на схеме, пользуясь его идентификатором, указанным в привязке и присваивает ему изменившиеся параметры. После этого приложение оповещает и другие плагины об изменении параметров элемента. 
  • Механизм отключения OPC-сервера.

Редактор схем как сервер автоматизации

В комплексе Модус, начиная с версии 4. предусмотрена возможность генерации схемы из внешней программы (например, добавление элементов в заданное место схемы) с помощью технологии OLE Automation. Такие возможности полезны, к примеру, для написания пользовательских алгоритмов верификации схем. Этот инструмент доступен как из внешней программы (клиент автоматизации), так и из модуля расширения графического редактора. С помощью плагинов возможно самостоятельное создание функций редактирования, не предусмотренных разработчиками, например, обеспечение привязки элементов схемы к пользовательской БД непосредственно из графического редактора.

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

Выводы

Опыт компании Модус показывает, что разработка и сопровождение специализированной графической подсистемы высокого качества является весьма трудоемкой и дорогостоящей задачей. Созданная объектно-ориентированная графическая система отвечает высоким требованиям заказчиков и уже используется в качестве основного средства подготовки и использования электронных схем такими крупными энергосистемами, как Мосэнерго.

Технология COM/ActiveX позволяет обеспечить простой и удобный доступ пользовательских программ к графической подсистеме. Теперь разработчики могут целиком сосредоточиться на решении прикладных задач, а технологи - использовать привычный ЧМИ.