iFIX - “крупноблочное” построение диспетчерских систем АСУ ТП

SCADA

Давно сказано: согласных судьба ведет, несогласных - тащит. В области человеко-машинного интерфейса автоматизированных систем управления (HMI/SCADA) такую определяющую роль судьбы играет всем известная корпорация Microsoft. На сегодняшний день операционные системы Windows 9x/NT/2000 абсолютно доминируют по числу рабочих мест, на которых их используют, и поддерживаются практически всеми ведущими производителями автоматизированных систем.

В некотором смысле такое доминирование существенно облегчило жизнь производителям SCADA-систем - рецепт успеха стал простым: делай то, что делает в офисных системах Microsoft, и не ошибешься. С другой стороны, эта простота обманчива, так как реализовать новые технологии и угнаться за Microsoft совсем не просто. В первую очередь требуется определенная подготовленность и зрелость собственного продукта, а также большие капиталовложения в постоянное развитие программ.

В числе фирм, которым это удается, - американская компания Intellution (www.intellution.com). В 1995 г. она одной из первых выпустила полностью 32-разрядный SCADA-пакет FIX32 для Windows 95&NT, ставший вполне успешным с коммерческой точки зрения. Одновременно она приступила к разработке принципиально иного продукта, который должен был воплотить в себе новейшие технологии Microsoft. Напряженная работа увенчалась выходом в начале 1998 г. пакета FIX Dynamics (современное название - iFIX). В феврале 2001 г. появился очередной его релиз - iFIX 2.5, созданный с учетом накопленного опыта. Три года промышленной эксплуатации - это достаточно длительный срок, позволяющий подвести некоторые итоги.

К наиболее важным технологическим новшествам от Microsoft последних лет можно отнести COM/DCOM, VBA и ActiveX. Опираясь на них, Intellution сумела построить новую распределенную архитектуру, которая является серьезным шагом вперед по сравнению с уже ставшей стандартной архитектурой клиент-сервер (рис. 1).

Рис 1. Распределенная архитектура iFIX

Универсальный интерфейс реального времени

Напомним, что спецификации ОРС (OLE for Process Control) были разработаны на основе технологии COM/DCOM и предназначались для обмена информацией между программными приложениями в реальном времени. Развивающая этот стандарт некоммерческая организация OPC Foundation (www.opcfoundation.org) насчитывает свыше 200 членов. В нее входят почти все ведущие мировые производители управляющих систем.

Intellution использовала протокол ОРС для декомпозиции своего SCADA-пакета на три основные подсистемы: подсистему приема-передачи данных (ОРС-серверы), подсистему обработки данных (база данных реального времени) и подсистему графического человеко-машинного интерфейса (WorkSpace). Все они обмениваются информацией по протоколу ОРС, что делает их открытыми для независимого применения.

Спецификации ОРС определяют объекты - источники данных (ОРС-серверы), их функции (интерфейсы) и группировку данных на сервере. Группы позволяют организовать информацию наиболее удобным способом. Они могут создаваться клиентами динамически на этапе выполнения. Группа как целое может быть включена или отключена. При этом обязательно поддерживается обмен между клиентом и группой на сервере по событиям. Внутри каждой группы клиент может создать несколько элементов. Элементы представляют собой отдельные параметры данных. С каждым элементом связаны признак качества и временная метка.

Группы и элементы данных составляют адресное пространство ОРС-сервера. Оно может быть фиксированным (определяется внутри сервера) или заданным извне, может конфигурироваться при старте или меняться “на ходу” клиентом. Обычно предполагается, что серверное адресное пространство управляется клиентом путем динамического построения групп элементов.

Спецификация ОРС задает две группы интерфейсов - OPC Custom interface и OPC Automation interface. Первая предназначена для обращения на языках высокого уровня (Си++), а вторая - для скриптовых языков типа VBA. Реализация интерфейсов не оговаривается, однако должны поддерживаться определенные возможности, такие, например, как разделение канала связи (Ethernet или последовательного) между несколькими серверами. Также ожидается, что ОРС-сервер оптимизирует доступ к данным, запрашиваемым различными клиентами, чтобы оптимизировать доступ к физическому устройству. Получатель информации (клиент) может одновременно обращаться к нескольким ОРС-серверам.

Особое внимание уделяется вопросам синхронизации и упорядочивания (Serialization). Под синхронизацией понимается имеющаяся у клиента возможность читать или записывать данные за одну транзакцию. Например, обычно значение параметра, его качество и отметка времени должны читаться одновременно. С другой стороны, одновременно должна выполняться и запись всех уставок технологического регламента (Recipe). Упорядочивание - это способность клиента контролировать порядок записи и считывания данных. ОРС-сервер предоставляет клиенту эти возможности с помощью специальных механизмов установки соединения между сервером и клиентом.

Скорость работы ОРС-драйверов вполне приемлема для SCADA-систем. В тестах, проведенных при составлении спецификаций, сервер (Pentium 233) поставлял около 20 000 параметров в секунду четырем клиентам при 10%-ной загрузке процессора. Для модели InProccess ОРС позволяет передавать свыше 10 000 параметров в секунду менее чем с 1%-ной загрузкой CPU.

Принципиально новой возможностью работы с драйверами, обеспечиваемой ОРС, является применение универсальных языков для управления ими. В первую очередь это Си++, Visual Basic (VB) и VBA. Можно также программно добавить к конфигурации устройство, блок или элемент данных, включить или остановить опрос ОРС-сервера, прочесть/записать данные и выполнить ряд других команд.

Компания Intellution входила в руководящую группу по разработке спецификации ОРС с самого начала реализации проекта и с тех пор продолжает его активно поддерживать. ОРС-драйверы Intellution допускают автоматическую генерацию серверов, групп и элементов. Они позволяют конфигурировать драйвер и управлять им из приложения, передавать данные клиенту по событиям (в синхронном или асинхронном режиме), “на ходу” включать и выключать посылку сообщений к серверам, группам или элементам, использовать “защелкнутые” (т. е. последние достоверные) значения и т. п. Совместно с драйвером обычно поставляется стандартный клиент PowerTool - графический интерфейс пользователя. Он выполняется независимо от iFIX и позволяет конфигурировать ОРС-сервер локально или удаленно по сети (рис. 2).

Рис 2. Power Tool выполняется независимо от iFIX и позволяет конфигурировать

OPC-сервер локально или удаленно по сети

База данных реального времени - ядро SCADA-пакета

Драйвер передает исходные, обычно необработанные данные. Как правило, кроме измеряемых параметров в системе есть большое число величин, рассчитываемых в реальном времени. Помимо этого требуется генерировать тревоги в ответ на нештатные ситуации, взаимодействовать с удаленными клиентами, вести историю и решать другие стандартные задачи HMI/SCADA-пакета. Специально для выполнения этих функций был выделен отдельный продукт под названием SCADA-Server. Он не содержит графического интерфейса пользователя и этим отличается от узлов, выполняющих серверные функции в предыдущей версии пакета - FIX32.

При переходе от FIX32 к iFIX принципы организации базы данных по сути не изменились. Как и прежде, она состоит из набора стандартных блоков - тегов, конфигурируя которые, можно решать задачи приема, передачи и обработки данных. Набор атрибутов тегов был несколько расширен для учета информации, получаемой от ОРС-серверов.

Intellution постаралась сделать базу данных максимально открытой, чтобы та могла использоваться в качестве ОРС-сервера и клиента; информация из нее доступна через ODBC-драйвер и по DDE-протоколу. Принципиальным новшеством является оснащение базы данных языком программирования высокого уровня. Нетрудно догадаться, что это язык офисных приложений VBA. Он связан с базой данных с помощью подсистемы Scheduler (планировщик), следящей за временем или за событиями в базе данных. Этими событиями в базе данных являются определенные изменения значений тегов. При наступлении события запускается соответствующая программа на VBA. Например, при переключении дискретного канала можно вызвать некоторую диалоговую форму или послать сообщения по E-mail. Для большого набора стандартных задач предусмотрены так называемые “эксперты”, генерирующие VBA-скрипты, так что создание программ в этих случаях осуществляется без программирования.

WorkSpace - графический интерфейс разработчика и пользователя

Как известно, победное шествие Windows началось с реализации GUI - графического интерфейса пользователя. Соответственно удобству построения проекта уделено в iFIX особое внимание. Здесь реализована новая среда разработки Workspace. Следуя классическому образцу, она выдержана в стиле проводника Windows NT. В частности, имеется дерево проекта, панели функциональных меню, настраиваемые инструментальные наборы для построения экранных форм и для установления анимационных связей (рис. 3).

Рис 3. Среда WorkSpace выдержана в стиле проводника Windows NT

Благодаря дереву проекта разработчик имеет непосредственный доступ ко всем экранным формам. Каждая из них является корнем дерева с графическими объектами, которые на нем изображены.

Среда разработки графических форм WorkSpace имеет два режима - Configure (конфигурирование) и Run (исполнение). Мгновенное переключение между этими режимами позволяет быстро проверить работоспособность экранной формы. В обоих режимах применяется один и тот же компилятор VBA. С его помощью можно, например, автоматизировать построение экранных форм проекта, создав собственные эксперты для разработки экранных форм на этапе конфигурирования.

Из WorkSpace есть доступ ко всем подсистемам iFIX, а также к экранным формам и их элементам. Особо следует выделить возможность доступа к объектам внутри группы на экранной форме. Благодаря этому в iFIX не нужно разгруппировывать сложные объекты, чтобы изменить свойство какого-либо элемента внутри группы. Все диалоги по созданию анимации, вызову приложений, редактированию, настройке среды и другим функциям реализованы через типовые меню, к которым относятся строка с ниспадающими меню, инструментальные панели и диалоговые окна с меню-закладками. Существенно расширены возможности по настройке рабочей среды и использованию файлов различных форматов. В экранную форму можно вставлять не только файлы формата bmp, но и ряда других, в том числе wmf.

Объекты WorkSpace анимируются через ОРС-источники. При этом таким источником может служить как “родная” база данных iFIX, так и любой другой зарегистрированный ОРС-сервер. Кроме того, можно “привязаться” к любому свойству объекта на этой или другой открытой мнемосхеме.

Для выполнения автоматизированных действий по событиям служит все тот же универсальный VBA. Он позволяет работать с базой данных iFIX, мнемосхемами, файлами и другими объектами в среде Windows. Например, можно обратиться к таблице Excel или документу Word, послать электронное письмо или выйти в Интернет. Благодаря объектам ADO на VBA достаточно просто реализуется обращение к реляционным базам данных с использованием ODBC или OLE DB.

Ряд стандартных задач может быть решен с помощью встроенных экспертов. Например, для выборки из реляционной базы данных можно применить компонент VisiconX, который без единой строки программирования конфигурирует вывод на экран данных из ODBC- или OLE DB-источников.

Рабочее место пользователя и ActiveX-контейнер

Несколько упрощая, можно сказать, что объекты ActiveX - это специальным образом разработанные программные модули, которые достаточно просто могут встраиваться в приложения - зачастую практически без программирования. Благодаря этому нет необходимости тратить на реализацию требуемых функций многие человеко-годы - ведь есть готовые решения. Как правило, такие компоненты имеют демоверсии, так что перед приобретением можно удостовериться в работоспособности покупки.

В Интернете (см., например, www.componentsource.com) можно найти предложения по всевозможным темам: трехмерное моделирование, искусственный интеллект, аудиокомпоненты, математика, распознавание речи, управление базами данных, отчеты, электронная почта, работа с CAD- и GIS-форматами, телефония, пейджинг и многое другое.

Например, можно организовать представление экранных форм в виде дерева, способного динамически менять свой вид. Или представить их как набор меню и инструментальных панелей. Рабочее пространство может выглядеть стандартным образом - как рабочий стол Windows или Office 2000. Информацию реального времени можно обрабатывать с помощью специальных или математических функций.

Однако для использования этого достижения программной технологии необходимо иметь соответствующий программный продукт, который сможет взаимодействовать с компонентом. Компонент “разрешает” управлять своим поведением, чем пользуется вызывающее его приложение. Ситуация, аналогичная той, что возникает при работе с ОРС-интерфейсами (недаром оба этих программных объекта построены на базе спецификаций СОМ). Приложение, в которое встраиваются ActiveX-компоненты, называется ActiveX-контейнером. От его свойств зависит возможность применения компонентов.

В WorkSpace компонент выглядит объектом со своими свойствами, как и все элементы, населяющие это рабочее пространство. Дополнительно он открывает ряд своих параметров, через которые его можно статически настраивать. Динамический обмен данными с ActiveX-компонентом на этапе выполнения осуществляется проще всего через VBA. При этом реализуется сложный расчет или управление видимым поведением компонента путем передачи ему по событиям необходимых значений. Кроме возможности внедрения ActiveX-компонента, которая является сравнительно широко распространенной, WorkSpace обладает уникальной функцией безопасного сдерживания - “Secure Containment”, т. е. при сбое вставленного компонента он будет изолирован и не остановит работу системы в целом.

Построение проекта из ActiveX-компонентов можно сравнить с крупноблочным строительством, где сложный проект быстро реализуется из готовых компонентов.

Три источника, три составные части SCADA-пакета

Воспользовавшись словами классика, можно сказать, что у современных SCADA-пакетов, которые выполняются на операционных системах Windows и представителем которых является iFIX фирмы Intellution, есть три источника и три составные части. К источникам относятся широко распространенные и устоявшиеся технологии - OLE и ActiveX на базе COM/DCOM, стандартный язык офисных приложений VBA и стандартный графический интерфейс пользователя в его современном виде.

Протокол OPC, выросший из COM/ DCOM-спецификаций, реализуется ОРС-серверами. Это - первая часть SCADA-пакета. Вторая составная часть, которая собирает замеряемые и расчетные данные реального времени, генерирует тревоги, обслуживает клиентов и делает многое другое, - база данных реального времени. В iFIX эта функциональность расширяется с помощью языка VBA, благодаря чему система реагирует на события выполнением VBA-скриптов. Наконец, третья часть - клиентское приложение WorkSpace Intellution, реализующее графический интерфейс разработчика и пользователя. По своему внешнему виду оно приближено к офисным приложениям Microsoft, поддерживает VBA и является ActiveX-контейнером. Три перечисленные части могут располагаться на разных компьютерах или объединяться в один узел - для современного приложения с распределенной архитектурой это не имеет принципиального значения.

Дополнительную информацию о пакете iFIX можно получить у генерального представителя фирмы Intellution в СНГ и странах Балтии компании “Индасофт” (www.indusoft.ipu.rssi.ru) по телефону: (095) 336-9474.