Выполнение назначенных заданий
Встроенный в ElectroHost диспетчер назначенных заданий функционально напоминает соответствующий сервис операционной системы Windows, адаптированный к специфике системы Electro. Важные отличия:
Диспетчер заданий ElectroHost запускает выполнение заданий в виде отдельных потоков внутри приложения ElectroHost. Диспетчер назначенных заданий Windows запускает задания как отдельные приложения, например XmlGen.exe.
Настройка заданий выполняется Конфигуратором системы:
Как правило, задание оформляется в виде XML-документа (см. ElectroXML.doc). Просмотр и редактирование задания доступно через кнопку “XML-задание” (аналогично модулю ElectroXML.exe).
Исполнение задания аналогично работе модуля XmlGen.exe. Собственно, и модуль XmlGen.exe, и Диспетчер назначенных заданий используют функцию ElectroXML() Ядра системы (см. ElectroCNF.doc). Строка редактирования в блоке ElectroXML (см. рисунок) предназначена для задания дополнительных ключей опроса (параметр opt функции ElectroXML()).
В случае успешного либо неуспешного выполнения задания администратор может указать реакцию, согласно которой будет послано сообщение “Задание такое-то не выполнено, код ошибки xx”.
Информация о назначенных заданиях хранится в таблице TB_Sheduler (БД ElectroCNF). При запуске (либо выполнении команды Refresh) ElectroHost читает содержимое таблицы. Состояние выполнения заданий отражается в окне «Electro журнал»:
В файле Electro/Logs/DispTask.log ведется подробный протокол выполнения задания, что является очень ценной информацией для анализа работы системы.
Архивирование данных
При длительной работе системы Electro в БД накапливается достаточно большой обьем информации. Как следствие этого замедляется время отклика используемой СУБД, что отрицательно сказывается на работе приложений системы, в первую очередь интерактивных.
Администрирование СУБД (оптимизация таблиц, дефрагментация файлов) не решает проблему, особенно если система Electro используется в режиме сбора информации для SCADA. Например, система каждые 5 минут опрашивает 50 счетчиков (30 параметров с каждого счетчика). Тогда за месяц в БД попадает
50*30 * 12*24*30 ~ 13,000,000 измерений
В БД такой обьем занимает около 600Mb.
Обычно актуальность оперативных параметров не превышает нескольких месяцев, после чего их можно изъять из основной БД и перенести в архив (БД 2-го уровня). В свою очередь, окончательно потерявшие актуальность данные изымаются из БД 2-го уровня и помещаются в файл удаленных данных. Администратор системы периодичести очищает этот файл.
Подсистема архивирования данных ElectroHost периодически (раз в сутки) либо по команде сканирует основную БД и БД 2-го уровня. Для каждого хранимого параметра устанавливается два лимита – хранения в основной БД (Tlim1) и окончательного удаления (Tlim2). Данные с меткой времени t > (Tтекущ-Tlim1) остаются в основной БД (либо восстанавливаются в ней из БД 2-го уровня). Данные с меткой времени t < (Tтекущ-Tlim2) изымаются из БД (основной либо 2-го уровня) и помещаются в файл удаленных данных. Данные с меткой времени (Tтекущ-Tlim1) >= t <= (Tтекущ-Tlim2) размещаются в БД 2-го уровня.
Основная БД функционирует под управлением СУБД общего назначения (SQL-сервер) и доступна для приложений.
БД 2-го уровня функционирует под управлением библиотеки BerkeleyDB (www.sleepycat.com) и доступна только для подсистемы архивирования данных ElectroHost.
Файл удаленных данных – это текстовый файл, куда ElectroHost помещает удаляемые данные.
Web-контроль
ElectroHost содержит встроенный Web-сервер (порты 5081), предназначенный для контроля функционирования системы и доступа к данным со стороны внешних систем по протоколам, базирующихся на HTTP (SOAP, REST).
Подключение на http://localhost:5081 выдает стартовую страницу
Смена номера порта с 5081 на другой возможна в окне «Electro журнал»:
Для этого измените значение тэга Port и перезапустите ElectroHost.
Telnet- контроль
ElectroHost содержит встроенный Telnet-сервер (порт 25), предназначенный для контроля функционирования системы.
Для подключения к telnet-серверу ElectroHost запускаем любой telnet-клиент и выполняем подключение, указывая порт 25.
Виртуальный модем
Прежде чем опишем функциональность данной компоненты, познакомимся с устройством NPort фирмы Moxa.
Это промышленный контроллер с несколькими (от 1 до 16) портами RS232/485 и выходом в TCP/IP (Ethernet) сеть.
В персональном компьютере устанавливается драйвер виртуального последовательного порта (в примере – COM3). Порту COM3 соответствует некоторый физический последовательный порт в устройстве NPort.
Большинство прикладных программ успешно работают с виртуальным портом, «не догадываясь» о том что обслуживаемое через COM3 устройство (Device) физически удалено от компьютера.
Другой важный момент в том что виртуальный порт, настроенный на некоторый физический порт NPort, можно установить в нескольких компьютерах, включенных в рассматриваемую IP-сеть. Причем, если в одном компьютере это виртуальный порт COM3, то в другом это может быть уже COM10. При необходимости обеспечивается контроль доступа – если физический порт открыт в одном виртуальном порту, он временно будет недоступен для других.
Подробнее ознакомиться с устройством NPort, скачать документацию, программное обеспечение можно на сайте производителя – www.moxa.com
ElectroHost содержит программный эмулятор устройства NPort. При этом, по аналогии с физическими портами NPort, эмулятор работает с устройствами передачи данных, перечисленными в конфигурации системы Электро (закладка Модемы в Конфигураторе системы).
Технология GPRS-связи в системе Электро
Предлагаемые операторами GSM-связи (см. например http://mts.com.ua/ukr/gprs_internet.php) услуги, предоставляемые на базе протокола GPRS, интересны для построения сетей сбора данных благодаря следующим преимуществам –
Повышенная (по сравнению с GSM-протоколом) скорость передачи данных;
Постоянное соединение (не нужно тратить 30-40с на набор номера;
Плата за объем переданных данных а не за время соединения.
Главной проблемой применения GPRS является необходимость наличия интеллектуального устройства возле GPRS-модема, отвечающего за инициализацию соединения и ретрансляцию информационного потока на терминальные устройства (счетчики расхода электроэнергии и т.п.).
Также, зачастую возникает необходимость заключения с оператором GSM-связи договора на создание корпоративной IP-сети с выделением фиксированных ip-адресов для GPRS-модемов.
Применяемая в системе Электро технология GPRS-связи основана на следующем:
- Используются модемы Wavecom M1306B с технологией OpenAT. В модем записывается дополнительная программа, отвечающая за инициализацию GPRS-соединения и ретрансляцию информационного потока на последовательный порт модема. Это позволяет подключать терминальные устройства непосредственно к GPRS-модему.
- Создание корпоративной IP-сети не требуется. Единственное требование – сервер Электро должен иметь фиксированный ip-адрес, полученный у любого internet-провайдера.
- Программное обеспечение, входящее в комплект сервера Электро, содержит драйвер виртуального последовательного порта (подобный драйверу устройства Moxa NPort, но работающий с технологией GPRS-связи). Благодаря виртуальному порту, GPRS-связь доступна не только в рамках системы Электро, но и для других программ – например для фирменных программ обслуживания терминальных устройств.
Таким образом, применяемая в системе Электро технология делает доступными преимущества GPRS-связи (скорость, стоимость передачи данных) для построения систем сбора данных без создания корпоративной IP-сети. Также, поддержка виртуальных последовательных портов открывает широкие возможности для интеграции программного обеспечения верхнего уровня.