Стартовая >> Документация >> Энергонадзор >> Electro для построения систем учета и контроля

Принципы работы WEB-сервера - Electro для построения систем учета и контроля

Оглавление
Electro для построения систем учета и контроля
Установка, программы и драйвера
Комплекс модулей опроса
RepCNF
DBView, LogView
AppName
Примеры, рекомендации, типовые решения
Принципы работы WEB-сервера
Результаты тестирования СУБД
Конфигурирование СУБД
Установка демонстрационной версии
FAQ 1
FAQ 2
FAQ 3
FAQ 5
FAQ 6
FAQ 8
Dll Option перечень ключей
Dll Option - организация опроса устройств
Dll Option - организация опроса счетчиков Elgama
Dll Option - организация опроса устройств Альфа
Dll Option - организация опроса счетчиков Энергия-9,  Облік ЛО-3Т5, корректоров ОЕ-VT, OE-VPT
Dll Option - GPS-Приемник, мультиплексор MX16, ПИК-16
БД ElectroCNF, Electro
БД ElectroCNF, Electro - состав таблиц
Работа с БД ElectroCNF
ElectroHost сервер
ElectroHost сервер - задания, контроль, связь

9. Принципы работы WEB-сервера системы Electro

            В составе системы имеются компоненты (CGI-модули, пакетный генератор отчетов RepGen.exe), позволяющие организовать работу клиентов системы на основе Web-технологии – на компьютере клиента достаточно наличия web-браузера (MS Internet Explorer) и настройки подключения к Серверу.
На Сервере должен функционировать стандартный комплект системы (База Данных, Ядро, компоненты сбора и обработки данных) и произвольный Web-сервер (MS IIS, Apachi, Xitami, EServ и др., согласуется с Заказчиком), поддерживающий протокол HTTP/1.1 и CGI-интерфейс.
Ориентация на CGI-интерфейс обусловлена его наличием в любом Web-сервере. Web-программисту предоставляется набор готовых CGI-модулей (ElCGI_xxx.exe) и исходные тексты интерфейсных функций (MS Visual C++) Ядра Electro.dll.
Естественно, возможно применение и других технологий web-программирования, расширяющих стандарт HTML и поддерживаемых конкретным web-сервером (JavaScript, JScript, VBScript, апплеты и сервлеты Java, ISAPI/NSAPI, PHP).
Что касается взаимодействия web-программы с системой Electro, то техническая сторона проблемы заключается в организации интерфейса между web-программой и Ядром (Electro.dll). По мере развития системы програмисту будут предоставлены интерфейсные модули Electro для Java, PHP, Perl и др.

            Важное место в организации web-страниц системы Electro занимает программа RepGen.exe. Функционально это часть программы RepCnf.exe, обеспечивающая генерацию отчета (в форматах HTML и XLS) в пакетном режиме. Специальный CGI-модуль реализует на HTML-странице идентификацию пользователя, навигацию по базе данных шаблонов отчетов и ввод необходимых для генерации отчета меток времени, после чего запускает RepGen.exe. Результат работы генератора отчетов публикуется в виде HTML-страницы.

9.1 RepGen.exe – пакетный генератор отчетов

            Синтаксис командной строки запуска программы:

RepGen RID=n [SRV=serv] [HTML=file] [XLS=file] [DTi=date] [RUN=macro] [VIEW]

            где
n   - Идентификатор шаблона (TB_Reports.RepId). Вы можете узнать этот код в программе RepCnf в диалоговом окне открытия шаблона;
SRV=serv       - указание сервера ElectroHost. Шаблон и исходные данные будут взяты с указанного сервера. Если ключ не указан, будет использоваться локальная БД;
HTML=file     - если ключ указан, RepGen  генерирует отчет в html-формате. Обычно, эта опция используется Web-приложениями;
XLS=file        - если ключ указан, RepGen генерирует отчет в указанный xls-файл.
Значение file может содержать литерал $DTn (n – идентификатор метки времени). Текст литерала будет замещен текстом значения соответствующей метки времени.
RUN=macro   - when this key is used, RepGen try to execute macros macro in report.
Dti=date         - define date for DT1, DT2.. ectc. in report. Possible date format is:
CURDAY
LASTDAY
DAYn
LASTMON
MONTHn
yyyy                (year)
yyyy/mm
yyyy/mm/dd
yyyy/mm/dd hh
yyyy/mm/dd hh:mm
yyyy/mm/dd hh:mm:ss

            Программа протоколирует события процесса генерации документа в файл RepGen.log размещаемый в папке Electro/log

Examples:
RepGen RID=2 XLS=”C:\Test.xls” DT1=LASTDAY
RepGen RID=2 XLS=”C:\Test.xls” DT1=2002/03/05 RUN=Button1Click
RepGen RID=2 XLS=”C:\Test for $DT1.xls” HTML=”C:\Test.htm” DT1=LASTDAY

RepGen exit code:
0 - successful
3 - Couldn't start Excel
4 - Old Excel version
5 - Error while automate Excel
6 - Report is absent in database
7 - Unsupported TB_Reports.Media
8 - Unsupported TB_Reports.Type
9 - Error while access to database

How RepGen working?:

  1. Try to load report pattern RID=n from PLS.TB_Reports to temporary XLS-file.
  2. Hidden start MS Excel (OLE-automation)
    • Enter dates from command line to ‘define date’ – cells. If date not defined, use current time, reduced to DefineDate type.
    • Retrieve data from NRS COM-server to cells.
    • [Run macros]
    • If HTML= then save html-file
    • If XLS= then save xls-file

3. Close Excel and exit.

            RepGen is main program for build NRS Web-site. Usually, some [CGI-] module prepare dialog with user (navigate in report database, ask date etc.). After this, CGI-module run RepGen and publish HTML-document. It very simple J

            Also. Sometime RepCnf  have problem with Excel in OLE-container. So, I recommend use RepCnf only as Report Editor. For report generation, best ways is:

  • Web-based solution;
  • Simple shell for RepGen.exe (navigate in report database à ask dates à run RepGen.exe à open xls- or html- report in pure Excel).

9.2 XmlGen.exe - Пакетный исполнитель заданий

            Программа XmlGen.exe является консольным вариантом  оболочки вызова функции ElectroXML() из ядра Electro.dll (см. документ ElectroCNF.doc). Синтаксис:
XMLGEN ACTION=n INPUT=file [OUTPUT=file] [OPTION=txt] [SERVER=name]
Где n – код команды (задания):


0 – экспорт данных

1 – экспорт конфигурации

2 – замена конфигурации

3 – импорт данных

4 – не используется

5 – опрос устройств

6 – обновление данных в БД

7 – удаление данных из БД

Ключ INPUT указывает имя файла с XML-заданием;
Ключ OUTPUT указывает имя файла для результата выполнения задания;
Ключ OPTION содержит строку с опциями выполния.

Пример. В файле OPROS.xml перечислены некоторые переменные БД Electro. Нам необходимо выполнить чтение этих переменных из устройства, причем необходимо указать диапазон выборки данных:
XMLGEN ACTION=5 INPUT=opros.xml OUTPUT=result.xml OPTION=”FROM=DAY4 TO=DAY1”



 
EТ2, EТ3 счетчики »
электрические сети