Сергей Золотарев
Sitex - программный пакет класса SCADA (Supervisory Control and Data Acquisition) был разработан английской фирмой Jade Software в 1995 г. Вынесенное в заголовок определение Sitex как нового SCADA-пакета требует некоторого пояснения. Во-первых, Sitex - новый пакет для российского рынка. Во-вторых, концептуально он вобрал в себя современные теоретические взгляды на построение SCADA-пакетов и практический опыт работы в области промышленной автоматизации. В качестве любопытной исторической справки хочется отметить, что Sitex спроектирован и разработан группой специалистов, длительное время работавших в области АСУ ТП и использовавших пакет RealFlex фирмы BJ Software Systems (BJSS, Хьюстон, США). Основные идеологи пакета Sitex - Глин Дурбан, многие годы бывший дистрибьютором RealFlex, и Барбара Джонсон, основатель компании BJSS, чьи инициалы и составили ее название. Естественно, при разработке Sitex использовался опыт внедрения RealFlex и современные взгляды на построение SCADA-пакетов.
Sitex спроектирован, чтобы удовлетворить самые требовательные запросы в области мониторинга и систем управления. Этот SCADA-пакет обеспечивает многие возможности, обычно отсутствующие у его аналогов, базирующихся на PC, и его цена нехарактерна для пакетов реального времени, работающих в среде операционных систем в стандарте POSIX.
Мощностью и структурой Sitex обязан операционной системе QNX. Благодаря системе абсолютных приоритетов, реализованных в архитектуре микроядра, QNX идеальна для такого рода приложений. Эта ОС имеет собственные средства для работы в сети, обеспечивающие быструю связь, устойчивую к отказам (FLEET), равномерную загрузку и избыточность сети. QNX в полной мере реализует возможности, предоставляемые современными процессорами, так как приложения в этой среде работают в защищенном режиме, целиком используя 32-разрядный код. Механизм абсолютных приоритетов QNX позволяет вести параллельную обработку: например, в одном окне можно следить в реальном времени за трендом на дисплее, отображающем процесс, и в то же время модифицировать базы данных в онлайновом режиме. Наконец, POSIX-образная, надежная файловая система делает данные пользователя более защищенными.
Графический пользовательский интерфейс Open Look, обеспечиваемый графической средой QNX Windows и используемый в Sitex, облегчает его изучение и использование. Несколько окон могут быть открыты одновременно, причем все они будут обновляться в режиме реального времени (сейчас готовится версия Sitex, которая будет работать в графической среде Photon) .
Основу Sitex составляют несколько серверов (БД, ввода-вывода, предыстории и быстрой предыстории) и администраторов (доступа, управления, сообщений, исходных данных). Далее везде под сервером понимается программный компонент, а не отдельный компьютер. Каждый сервер в Sitex может поддерживать одновременно работу нескольких серверов ввода-вывода.
Sitex поставляется со всеми необходимыми компонентами, обеспечивающими работоспособность системы пользователя без программирования.
- Редактор базы данных. Работая в области АСУТП с различными SCADA-пакетами, я для себя условно разделил их на два класса. Первый класс - это пакеты (например RealFlex, VTC), разрабатываемые специалистами в области АСУТП. В этих пакетах внимание акцентируется на базе данных системы, которая в наибольшей степени определяет объект управления, а все остальные возможности (графика, отчеты и т. п.) рассматриваются как производные. Sitex можно считать типичным представителем этого класса пакетов. Второй класс - это пакеты (Genesis, Trace Mode), где во главе угла стоят графические возможности системы. Появлению этих пакетов способствовало развитие некоторого графического инструментария и библиотеки с элементами динамизации. Для этих пакетов, наоборот, база данных является производной от графики. В наиболее концентрированной форме этот подход сформулирован в лозунге “Нарисуйте АСУ ТП”.
Экранные формы позволяют динамически отображать связи в реальном времени.
- Сервер распределенной базы данных реального времени с архитектурой, обеспечивающей множественный доступ и активное резервирование серверов. Множественность доступа - это очень полезная возможность. Во-первых, она повышает “живучесть” системы благодаря способности отдельных серверов продолжать работу автономно, в условиях потери связи с другими серверами. Во-вторых, значительно уменьшается нагрузка на сеть, как это происходит в случае с выделенным или централизованным сервером.
- Серверы ввода-вывода и утилита их конфигурирования. Серверы ввода-вывода могут использовать связь по различным физическим средам, включая локальные и глобальные сети, “полевые шины”, модемы, радиоканалы; они могут запускаться и останавливаться “на лету”. Серверы ввода-вывода Sitex обеспечивают поддержку большинства устройств ввода-вывода (в том числе и российских, таких, как логический микропроцессорный контроллер ЛОМИКОНТ, регулирующий микропроцессорный контроллер РЕМИКОНТ, цифровой многоканальный преобразователь Ш-711, технологический контроллер ТКМ51, многофункциональный контроллер МФК).
- Средства оперативного контроля и управления оператором процессов реального времени с утилитами просмотра таблиц данных, процессор ввода-вывода и администратор управления.
- Графический интерфейс, включающий объектно-ориентированный графический построитель, редактор динамического экрана и редактор символов.
- Процессор данных, который буферизирует данные между серверами ввода-вывода и сервером Sitex, обеспечивая преобразование технических единиц и проверку тревог.
- Система управления тревогами, основывающаяся на администраторе тревог/событий, редакторе аварийных сообщений и редакторе системных сообщений.
- Средства ведения данных предыстории. Кроме собственно серверов предыстории и быстрой предыстории в Sitex включены средства просмотра, редактирования, экспорта и импорта данных предыстории. Понятие быстрой предыстории является нововведением Sitex и присутствует пока лишь в нем. Если обычная предыстория предполагает упорядочение данных по времени средствами Sitex, то в случае быстрой предыстории упорядочивание данных по времени остается на совести разработчика драйвера устройства. Быстрая предыстория используется там, где нужно обеспечить прием десятков тысяч сигналов в секунду, например в быстрых АЦП.
- Генератор отчетов позволяет составлять отчеты как в виде табличных данных, так и в виде графиков. В отчете статический текст может быть скомбинирован с динамическими полями, связанными с сервером базы данных, при этом обеспечивается гибкая компоновка заголовка и списка данных и контроль уровня доступа при генерации отчета. Отчет может генерироваться вручную или автоматически (периодический отчет).
- Система управления доступом пользователей. Она разрешает иметь неограниченное число имен пользователей, обеспечивая индивидуальную защиту с помощью паролей, и регламентирует права доступа в соответствии с одним из шести уровней доступа: “только смотреть”, “оператор”, “руководитель”, “администратор”, “инженер”, “суперпользователь”. Кроме того, для каждого пользователя задается список узлов сети, с которых ему разрешено работать.
- Встроенные средства поддержки работы в сети QNX (сеть, устойчивая к отказам, - FLEET) позволяют работать через Ethernet, ARCNET, Token-Ring, FDDI, ATM и последовательный порт.
- Средства взаимодействия с другими системами по протоколам TCP/IP и DDE.
- Бейсик-подобный язык для программирования задач пользователя.
- Система разработки собственных расширений Sitex.
Рассмотрим подробнее особенности основных компонентов. Сервер базы данных обеспечивает обращение к серверам по именам и поддерживает четыре типа данных: “числовой” (64 бит), “логический” (4 состояния), “аккумулятор” (числовой массив длины 12), “текст” (80 символов). Пользователи системы разработки могут создавать свои типы записей базы данных. Редактор базы данных включает в себя функции группового копирования и увеличения значения поля для ускорения создания базы данных. В Sitex для структурирования записей БД используется понятие “группа”. Каждая точка внутри такой группы может быть привязана к физическому устройству индивидуально - через свою собственную ссылку. Используя такой метод, можно сконфигурировать БД или в традиционном духе (как, например, в SCADA-пакете RealFlex), или таким образом, что каждая группа может быть привязана к нескольким устройствам. Скажем, система водоочистки может состоять из входного очистительного агрегата, фильтра и агрегата окончательной очистки. У каждого агрегата может быть несколько типов устройств. В других SCADA-пакетах пришлось бы создавать группу для каждого физического устройства, в то время как в Sitex достаточно создать структурированную БД из трех логических групп.
Графический интерфейс выразителен и легок в обращении. Он базируется на векторном объектно-ориентированном построителе экранных форм (рис. 1). В этом построителе реализованы все необходимые средства (но без ненужных излишеств типа трехмерной графики), позволяющие динамически отобразить связи в реальном времени. Для переносимости экранных форм реализован импорт графики и редактор растровой графики (BMP, PCX), а также редактор символов с полным набором цветов с инвертированием и вращением. Очень важна возможность разграничения доступа к экранным формам по номеру узла локальной сети и по правам оператора. Она позволяет главному инженеру видеть одни экранные формы, а диспетчеру - совсем другие. При разработке экранов (мнемосхем) можно использовать в новых экранах ранее созданные замены. Подобная возможность позволяет “накладывать” на одну статическую картинку различные динамические связи. Это дает значительный выигрыш при разработке экранов и позволяет сэкономить место на диске, что особенно важно для встраиваемых систем. Например, в случае нескольких идентичных насосных станций понадобилось бы создать только одну статическую картинку, один раз привязать к ней динамику, а затем тиражировать эту привязку, только заменив полные имена групп. Работа, которая могла отнять много часов или даже дней, в Sitex делается за несколько минут.
В Sitex реализована очень мощная система управления тревогами, которая имеет 99 приоритетов. Для числовых данных контролируются значения параметра по следующим уровням: hi (“верхнее”); hi-hi (верхнее критическое); lo (“нижнее”); lo-lo (нижнее критическое), а также скорость изменения параметра. Sitex ведет многостраничный журнал тревог с возможностью просмотра по приоритету и по хронологии, в который включает кроме “штатных” и сообщения по тревогам, определяемым пользователем. Кроме того, обнаруженные тревоги остаются в списке до момента подтверждения и запись производится в суточные файлы тревог/ событий с автоматической обработкой последовательностей событий. Sitex присваивает временные отметки записям тревог с разрешением 1 мс, и тем не менее он способен регистрировать несколько сотен сообщений в секунду с этой интенсивностью. При просмотре журнала тревог крайне полезной является возможность, нажав мышью на интересующей строке тревоги сразу увидеть место (на экранной форме), где эта тревога произошла. Управление тревогами гибко конфигурируется, что позволяет пользователю как угодно менять содержание сообщений и через администратор сообщений выдавать свои собственные.
Система оперативного контроля и управления включает, во-первых, средства отображения текущих значений точек БД, которые облегчают проверку и поиск неисправностей, а также обеспечивают доступ к меню точки. Этот доступ позволяет выполнять запрет/разрешение тревоги, ручную перезапись значения параметра, контролировать вывод и создавать комментарии для точки (информационные и управляющие). Во-вторых, в систему входит администратор управлений, который обеспечивает контроль за очередями управляющих запросов, проверяет буфер ввода-вывода на наличие команд управления и передает их серверам ввода-вывода, генерирует тревоги при неисполнении запросов и выполняет проверку по таймеру их выполнения.
Sitex включает отдельный пакет отображения трендов. Эти тренды могут быть легко сконфигурированы, сохранены и воспроизведены без необходимости вызова построителя экранных форм. Временной интервал тренда может быть изменен “на ходу”, и можно даже добавлять и удалять число параметров во время просмотра тренда. Программа, которая отвечает за ведение предыстории и запись ее на диск с целью построения трендов и отчетов, называется историк. Историк в Sitex устроен просто, он удобен в обращении и, если нужно, используется при восстановлении данных. Он быстр и надежен, а формат его файлов открыт для пользователей. Доступ к данным предыстории осуществляется просто открытием одного из ежедневных файлов событий и чтением из него списка данных с временными отметками. В Sitex запись предыстории по точке назначается в редакторе БД. Важно отметить два ключевых аспекта записи предыстории по точке: во-первых, запись производится с использованием полосы нечувствительности (а не по фиксированным временным интервалам), и, во-вторых, полоса нечувствительности задается в абсолютных инженерных единицах, а не в процентах. Поскольку данные по предыстории сохраняются в ежедневных файлах, поддержание и дублирование данных осуществляется в виде обычных файловых операций. Весьма развитыми в Sitex являются средства отображения трендов, которые обеспечивают работу с трендами по именам, разрешая доступ к точкам БД на любом сервере. В каждом тренде может отображаться до шести параметров, выполняться панорамирование по времени, вырезание участков тренда с увеличением и сжатием по осям, cчитывание точных значений с помощью курсора, отображение данных предыстории и данных в реальном времени. Кроме того, есть возможность делать cравнительный тренд, который обеспечивает сопоставление данных предыстории и данных реального времени.
В Sitex для повышения живучести и непрерывности работы системы реализован механизм активного резервирования (вместо обычного для других систем механизма “горячего” резервирования). Если в Sitex две полностью работоспособные БД запускаются с одним и тем же именем, то одна рассматривается как основная БД, другая как резервная. Функционально обе задачи на обеих машинах идентичны. Все данные на уровне сервера БД передаются одновременно на обе машины, где обрабатываются одинаковым образом. Если основная машина отказывает, переключение на резервную происходит практически мгновенно и без потери данных. При “горячем” резервировании синхронизация БД на основной и резервной машинах ведется не непрерывно, а периодически (например, через каждую минуту).
Sitex может поставляться в различных конфигурациях (см. таблицу).
Варианты поставки Sitex
В заключение рассмотрим пример конфигурации Sitex (См. рис.). Здесь показаны два сервера Sitex под одним и тем же именем A_SERVER, работающие в режиме активного резерва, с двойным соединением по сети (Ethernet или Arcnet) и обеспечивающие как раздельную загрузку, так и избыточное соединение в случае отказа. Третий сервер, обозначенный B_SERVER, работает независимо, хотя программам пользователя на каждой рабочей станции доступны данные с любого сервера. Также показаны различные типы устройств ввода-вывода и то, как они могут быть интегрированы в систему.
Пример конфигурации Sitex. Система управления с активным резервированием сервера
С автором статьи можно связаться по телефону: (095) 939-5872 или по адресу: root@nautsilus.ru .