Мы все, конечно, помним зеркальце из сказки А. С. Пушкина о мертвой царевне и семи богатырях. То самое, которое на вопрос “Свет мой, зеркальце, скажи! Да всю правду доложи+”, отвечало правдиво, исчерпывающе и конфиденциально. Какой руководитель не хотел бы его иметь? Даже если его не интересует ответ на сакраментальный вопрос “Я ль на свете всех милее?..”, то наверняка ему (а также специалистам различных подразделений) хотелось бы знать, как функционировало предприятие в прошлом, что происходит с ним сейчас и что ждет его в будущем. Это важно для выбора оптимального решения в различных критических ситуациях, контроля за условиями работы и многого другого.
Российский читатель, искушенный в современных АСУ ТП, может спросить: “Но разве SCADA-системы не способны заменить собой волшебное зеркальце?”. Действительно, наиболее продвинутые пакеты такого типа в какой-то степени решают эти проблемы, но тем не менее по своему назначению и способам применения они служат инструментами для оперативного диспетчерского контроля и управления, а не для решения задач сбора, хранения и отображения данных в масштабе всего предприятия. Кроме того, на среднем и крупном производстве, как правило, установлены несколько разных SCADA- или DCS-систем. Нельзя ведь уставить рабочий стол (пусть даже виртуальный) различными пакетами отображения информации и обучаться работе с каждым из них. А сколько будет стоить поддержка нескольких систем или разработка и сопровождение десятков или сотен рабочих мест? К тому же, если потребуется связывать производственные системы автоматизации с финансово-хозяйственными, то гораздо проще и надежней получать данные из одного источника, чем из разных.
В силу этих причин, а также исходя из условий безопасности эксплуатации системы управления в мировой практике для построения информационной инфраструктуры предприятия применяются соответствующие специализированные пакеты. Естественно поставить вопрос о требованиях, которые к ним предъявляются.
Очевидно, такой пакет должен иметь клиент-серверную архитектуру, т. е. включать в себя поддержку архивов (серверов) и рабочих мест (клиентов). Желательно, чтобы источники информации, имеющиеся на предприятии (устройства и программы комплексов АСУ ТП, реляционные базы данных, лабораторные системы и системы ручного ввода), сами передавали необходимую информацию в архив по мере ее поступления. Данные в архиве следует уплотнять, чтобы они занимали меньше места и их можно было подольше не выгружать с жесткого диска. Формат хранения должен быть открытым, а клиентские рабочие места настолько простыми, чтобы каждый специалист мог самостоятельно построить требуемую экранную форму и получить интересующую его информацию за определенный временной интервал. Например, просмотреть график изменения параметра во времени или распечатать отчет. Удобно также подключать к архиву и экранным формам сторонние программы. Очень важно, чтобы время отклика архива на запрос было малым и слабо зависело от числа пользователей системы и объема запрошенной информации. Разумеется, все источники данных, хранилища информации и рабочие места должны связываться по локальной или глобальной компьютерной сети.
“+чтоб сказку сделать былью!”
Есть ли пакет, отвечающий перечисленным выше требованиям, или он существует лишь в фантазии наподобие волшебного зеркальца из сказки? Такой пакет есть. Он называется Plant Information System (сокращенно PI System) и предназначен для создания информационных систем средних и крупных предприятий (рис. 1) Выпускает его американская компания OSI Software (www.osisoft.com). С его помощью все сотрудники предприятия, имеющие допуск в систему, могут быстро получить информацию о состоянии производства в прошлом или настоящем, распечатать нужный отчет, а также обменяться информацией с любой программой, которая является ActiveX элементом для ОС MS Windows NT.
Рис. 1. Пример информационной системы нефтеперерабатывающего предприятия
PI System имеет распределенную клиент-серверную архитектуру и состоит из трех уровней - уровня сбора данных, уровня хранения и обработки данных и уровня отображения информации на рабочих местах.
Для подсистемы сбора данных в пакете PI System используется свыше двухсот интерфейсов. Это программы, считывающие данные из промышленных измерительных систем, контроллеров, SCADA и DCS. Есть специальные интерфейсы для текстовых файлов, переносимых устройств, а также для стандартного протокола обмена данными в реальном времени OLE for Process Control (OPC). Интерфейс опрашивает соответствующий источник, но передает на сервер не все данные, а только информативные. (Значение параметра является информативным, если оно отличается от предыдущего больше, чем на заданную величину). Информативное значение параметра с меткой времени, проставляемой источником, составляет событие. Архив PI способен поддерживать точность метки времени до одной миллисекунды. С целью уменьшения нагрузки на сеть за одно обращение к серверу передается группа событий. Если сервер окажется временно недоступным (например, при потере связи или по естественной причине смены текущего архивного файла), то интерфейс сохранит информацию локально и передаст ее при восстановлении связи. Хранить информацию интерфейс может несколько дней.
“Фотография” на память
Архив PI System может сохранять строковую и числовую информацию в различных форматах. Он начинается с буфера, который называется Snapshot (“снимок”). В него попадают новые события, приходящие на сервер от интерфейсов или вводимые вручную. Если это событие более раннее, чем событие в Snapshot, то оно сразу направляется в очередь событий (Event Queue) для записи в архивный файл. Если новое событие более позднее, чем событие в Snapshot, то оно замещает предыдущее, которое, в свою очередь, либо забывается, либо запоминается в архиве. При этом реализуется метод сжатия хранимой информации.
Алгоритм сжатия строит линейную аппроксимацию кривой тренда параметра во времени с заданной точностью. При этом записываются только события, удовлетворяющие определенному условию, называемому “swinging door”, т. е. “вращающаяся дверь”. Имеется в виду аналогия с вращающейся вокруг своей оси дверью, в которую должно “пройти” новое событие.
Математически условие “swinging door” эквивалентно тому, чтобы очередное событие, пришедшее в Snapshot, попадало в текущий створ “двери”, определяемый всеми предыдущими событиями. Оказывается, для проверки этого условия достаточно помнить только два числа.
В любой реальной системе, кроме непосредственно замеряемых параметров, есть вторичные параметры, вычисляемые исходя из замеряемых. Таким путем могут осуществляться косвенные замеры или контролироваться показания датчиков. Для построения расчетных точек в составе сервера имеются две подсистемы - Performance Equations и Totalizer. Подсистема Performance Equations позволяет рассчитывать новые точки по замеряемым при помощи различных встроенных функций, в том числе строковых, интерполяционных, качества значения, статистики архива, поиска по времени и др.
Подсистема Totalizer применяется в случаях, когда необходимо получить стандартные статистические оценки по архиву (среднее, вариацию, минимум, максимум и т. д.). Кроме того, Totalizer может подсчитать число событий определенного типа, например равных заданной величине, больших или меньших. Полученное значение хранится как отдельная точка архива. Totalizer позволяет гибко настроить подсчет статистики, делать разного рода взвешенные оценки и т. д.
Следует упомянуть еще три подсистемы, работающие на PI-сервере - Batch, SQL и Alarm. Подсистема Batch позволяет следить за выпуском отдельных партий продуктов на установках. Это удобно, когда требуется отслеживать изменение параметров некоторой установки за период ее работы.
Подсистема PI-SQL выполняет SQL-операторы, адресованные к серверу. Благодаря этой подсистеме к архиву можно обращаться как к реляционной базе данных. Она выполняет все запросы параллельно. Возможны прямые вызовы функций Performance Equations в SQL-подсистеме. В частности, это позволяет эффективно осуществлять запросы по времени.
Подсистема Alarm фиксирует и затем визуализирует нештатные ситуации. Для контроля за ними создаются точки архива специального типа. Эти точки могут группироваться, образуя иерархию нештатных ситуаций.
Архив состоит из набора файлов, в заголовках которых указан временной диапазон хранения данных. Кроме того, каждый файл имеет индексированную по времени внутреннюю структуру. Благодаря этому поиск информации для заданного интервала времени выполняется очень быстро. Администрирование сервера осуществляется посредством ряда утилит по конфигурированию, мониторингу потоков данных, управлению файлами архивов и настройкой прав доступа. Важно, что расширение и корректировка архива может выполняться в режиме on-line без остановки работы сервера, т. е. без потери информации и перерывов в обслуживании клиентов.
Доступ к архиву PI System можно получить несколькими способами. Например, описанными выше методами при помощи SQL/ODBC, а также из Excel или VBA. Кроме того, есть специальные библиотеки работы с архивом на Cи++ или VB. Имеются также дополнительные программные пакеты для разработки нестандартных интерфейсов. Для передачи информации в бизнес-системы можно применить ODBC-драйвер, а для связи с известным пакетом R/3 разработан специальный интерфейс, сертифицированный фирмой SAP.
“В одно мгновенье видеть вечность+”
Клиентские приложения PI System содержат несколько подсистем, основные из них - ProcessBook и DataLink.
ProcessBook - это приложение, позволяющее сравнительно просто отображать информацию из архива PI и других баз данных. Оно сертифицировано для операционных систем Microsoft Windows 95 и Microsoft Windows NT, имеет лицензию на применение языка VBA и сертификат соответствия Microsoft Office 97.
Внешне ProcessBook похоже на клиентское приложение SCADA- или DCS-пакета (рис. 2). Так же как они, ProcessBook отображает анимированную информацию реального времени и архивные значения, но есть и принципиальные отличия. Так, по сравнению с пакетами диспетчерского контроля и управления, ProcessBook имеет упрощенные средства отображения и анимации, зато в него встроены возможности мгновенного построения трендов и развитые средства навигации по времени для просмотра истории. Благодаря простому диалоговому интерфейсу этим инструментом может достаточно быстро овладеть специалист, знакомый с офисными приложениями типа Word или Excel, и применять его для просмотра и анализа прошлых и текущих значений параметров на графиках или в анимированном виде.
Рис. 2. Экранная форма ProcessBook
Информация в режиме реального времени поступает на экранные формы непосредственно из оперативного буфера сервера Snapshot. Периодичность опроса клиентом сервера для обновления экранной формы настраивается. Элементы экранной формы могут быть нескольких типов - статические или динамические, кнопки и OLE-объекты.
Статические элементы не связаны с сервером и не меняются при отображении. Для построения статических элементов можно использовать векторные примитивы (прямые линии, прямоугольники, овалы, многоугольники и т. д.) и пиксельные битовые массивы. К динамическим элементам относятся числовые связи, тренды, бар-графики (закрашиваемые прямоугольники) и символы с переменным цветом. В качестве источника данных можно использовать не только архивы PI System, но и архивы других систем, “понимающих” обращение по протоколу Universal Data Adapter (UDA). Кроме того, возможно обращение к реляционным базам данных, имеющим ODBC-драйверы. Кнопки вызывают другие экранные формы или приложения. При помощи механизма встраивания OLE (ActiveX) элементов могут подключаться другие программы. Поддерживаются оба способа встраивания таких элементов - linking (связывание) и embedding (внедрение). В свою очередь экранные формы ProcessBook могут быть внедрены в другие ActiveX-контейнеры, например в Word или Excel.
Хотя возможностей для построения динамических экранных форм в PI System несколько меньше, чем у современных SCADA-пакетов, но пользоваться ими проще и средства манипулирования трендами в этом приложении богаче. Так, щелчком мыши можно перейти от числового представления параметров к графическому. Тренды очень просто масштабируются и сдвигаются во времени.
Для управления экранными формами и вставленными элементами применяется язык, фактически ставший сегодня стандартом для настольных приложений - Visual Basic for Applications. Благодаря тому, что VBA служит общим языком для приложений MS Office, с его помощью, например, можно из объектов ProcessBook передавать информацию в Excel и печатать ее.
Второе основное клиентское приложение - DataLink. Оно содержит два добавочных модуля к Microsoft Excel и к Lotus 1-2-3 for Windows. Эти модули добавляют к стандартным электронным таблицам возможность считывать из архива значения хранящихся параметров и их атрибуты, делать выборки из архива, производить вычисления над значениями, подсчитывать суммы, средние, отклонения и пр. Кроме того, с их помощью можно записывать значения обратно в архив. DataLink обычно используется для автоматической генерации периодических отчетов.
Plant Information System - это реальность
Всего в мире насчитывается свыше 3 тыс. инсталляций пакета PI System. Его применяют нефтеперерабатывающие и химические заводы, целлюлозно-бумажные комбинаты, крупные электростанции и энергосистемы, городские службы, фармацевтические и другие компании более чем в 55 странах мира.
Имеется ряд приложений, взаимодействующих с архивом PI System и решающих задачи управления нефтеперерабатывающими заводами, электростанциями, целлюлозно-бумажными комбинатами, тепловыми системами и пр. Особо можно выделить пакет Sigmafine, широко используемый на нефтеперерабатывающих заводах для составления баланса продуктов и энергии. Поддержка функций ActiveX-контейнера, языка VBA и наличие многочисленных сопутствующих приложений позволяют применять PI System для решения сложных задач анализа состояния производства и его визуализации.
Познакомиться с пакетом можно в московской компании “Индасофт” (www.indusoft.ru), которая является дистрибьютором фирмы OSI Software в странах СНГ и Балтии.