Содержание материала

Интеграция и взаимодействие Electro с смежными системами

Многие компоненты Electro специально спроектированы для организации обмена информацией с внешними системами. Перечислим некоторые варианты.

Модуль ElectroOPC.exe реализует функции OPC-сервера согласно спецификации OPC DA v1 & v2 custom interface.

Клиент IEC870.5 в составе ElectroHost.exe реализует протокол IEC870.5 (slave side). Выбранные параметры из БД Electro перенумеровываются в объекты протокола IEC870. Передаются текущие значения и архивные данные. При периодических сеансах связи обеспечивается возобновление передачи данных.

Клиент УППД (Универсальный Протокол Передачи Данных) в составе ElectroHost.exe реализует клиентскую часть протокола УППД, используемого при передаче данных в ГП «Энергорынок».

Встроенный Web-сервер в составе ElectroHost.exe содержит несколько механизмов для автоматизированного получения данных – генератор макетов 30817.

Например, внешнее приложение может обратиться к
http://localhost:5081/DBVIEW?OID=3240
и получить html-документ с таблицей данных по параметру с идентификатором 3240:
Интеграция и взаимодействие Electro с смежными системами
Дополнительные ключи FROM=date и TO=date уточняют диапазон выборки данных, а ключ AFTER=date дополнительно указывает что выбирать следует только элементы данных, поступившие в БД Electro после указанной метки времени. Формат метки времени date
CURDAY, LASTDAY, LASTMON,
yyyy, yyyy/mm, yyyy/mm/dd, yyyy/mm/ddThh, yyyy/mm/ddThh:mm, yyyy/mm/ddThh:mm:ss
Например
http://localhost:5081/DBVIEW?OID=3240&FROM=2005/01&AFTER=2005/02/18T08:00:00
- выборка по параметру 3240 с начала 2005 года; но только данных которые были внесены в БД Electro после 08:00:00 18/02/2005.

Cпособ http-взаимодействия широко используется в web-сервере ElectroHost. Например:
Cпособ http-взаимодействи
Данный скриншот демонстрирует экспорт данных из БД Electro согласно xml-задания находящегося в файле c:\electro\1.xml (локального компьютера). Данная форма обрабатывается web-сервером и возвращается результат типа
экспорт данных из БД Electro согласно xml-задания

Эмулятор Moxa NPort – еще одна компонента ElectroHost.exe, предназначенная для интеграции с внешними системами. Ее принципиальная особенность – обеспечение прозрачного канала связи к устройствам, подключенным к системе Electro.
Эмулятор поддерживает операционные режимы “TCP Server Mode” и “Real COM Mode”. Среди достоинств Эмулятора (относительно использования физического устройства) отметим его интеграцию с Диспечером каналов связи системы Electro что ослабляет коллизии одновременного доступа к последовательному каналу со стороны нескольких систем. Также, используется более гибкий механизм контроля доступа клиентов (IP-адрес, время суток, продолжительность).

Автоматическая чистка и архивирование базы данных

База данных с большим обьемом накопленной информации рано или поздно заставляют Администратора системы озаботится проблемой оптимизацией базы, созданием резервных копий, восстановлением после аварий и т.п. Штатные средства используемой СУБД обычно содержат соответствующие инструменты. Однако они имеют, очевидно, слишком универсальный характер и не могут учесть специфику конкретной системы обработки данных.
Чистка БД. В системе Electro имеются встроенный механизм для изъятия «устаревшей» информация из основной БД и ее переноса в так называемую БД 2-го уровня (БД2). Информация из БД2 может быть восстановлена обратно в основную БД либо, по истечении соответствующего срока, удалена.
Настройка чистки БД выполняется в Конфигураторе системы. Стандартные значения могут быть уточнены для каждого параметра в отдельности (секция Хранение в):
Автоматическая чистка и архивирование базы данных

Снятие отметки о хранении в заголовке секции отключает режим сохранения значений параметра в БД Electro.
Значение параметра с метками времени, устаревшими относительно текущего времени на Время хранения в основной БД (TLim1), разрешено перенести из основной БД в БД2. Перенос является обратимым – так, увеличение TLim1 заставляет механизм вернуть часть информации из БД2 в основную БД.
Значения параметра с метками времени, устаревшими относительно текущего времени на Время хранения в БД2 (TLim2), разрешено безвозвратно удалять из БД2.

В процессе развития системы Electro реализация механизма чистки/архивирования БД несколько раз менялась. Однако, важно понимать следующее – любой механизм архивирования, встроенный в систему Electro, решает соответствующие задачи как клиент (используемой) СУБД. Система мероприятий будет неполной без специфических для данной СУБД действий по резервному копированию и оптимизации файлов базы данных.

Настройка ElectroOPC.exe

Спецификация OPC (OLE for Process Control) (http://www.opcfoundation.com) широко используется для получения данных в системах диспетчерского контроля и управления.
Система Electro содержит компоненту ElectroOPC.exe, которая реализует функции OPC-сервера согласно спецификации OPC/DA v1 и v2 (custom interface) в среде win32.
Компоненты ElectroOPC обычно содержатся в папке electro\opc:
ElectroOPC.exe - собственно OPC-сервер;
LightOPC.dll, unilog.dll - библиотека LightOPC (http://www.ipi.ac.ru/lab43/lopc-ru.html).
Библиотека LightOPC свободно распостраняется на основе лицензии LGPL (см. оригинал http://www.gnu.org/copyleft/lgpl.html).

Компонента ElectroOPC должна быть зарегистрирована (после установки системы Electro):
ElectroOPC.exe /r
В результате регистрируется OPC-сервер с параметрами
ProgId OPC.ElectroOPC-exe
CLSID 4EA2713D-CA07-11D4-BEF5-00002120DB5C

Работу ElectroOPC можно проверить с помощью подходящего OPC-клиента, например Matricon OPC Explorer, бесплатную версию которого можно загрузить с http://www.matrikonopc.com/products/opc-downloads/
После инсталляции и запуска Matricon OPC Explorer имеем экранную форму
Matricon OPC Explorer
В списке доступных OPC-серверов мы видим и OPC.ElectroOPC-exe
Необходимо выполнить действие Connect после чего создать группу (Add Group) например с именем test:
действие Connect
После этого для группы test выполняем действие Add Items. При этом открывается диалоговое окно выбора параметров БД ElectroCNF:
Add Items
и т.д.