Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0 М УП 2012, 241с Марданов Р Ф СПА Распределенные системы управления (общее).doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
10 Мб
Скачать
☆
    1. Спецификация орс ua

Несмотря на огромный успех и всеобщее признание, практика выявила следующие недостатки ОРС технологии:

  • доступность только на ОС семейства Microsoft Windows;

  • связь с технологией DCOM, исходные коды которой являются закрытыми.

Это не позволяет решать вопросы надежности ПО, а также выявлять и устранять возникающие программные отказы;

  • бывают проблемы конфигурирования, связанные с DCOM;

  • неточные сообщения DCOM о прерываниях связи;

  • неприспособленность DCOM для обмена данными через Интернет;

  • неприспособленность DCOM для обеспечения информационной безопасности.

В связи с этим в 2006 г. ОРС Foundation предложил новую стандартную спецификацию для обмена данными в системах ПА, получившую название «ОРС Unified Architecture» - «ОРС с унифицированной архитектурой», которая рассматривается как ОРС-стандарт нового поколения.

Стандарт ОРС UA устанавливает методы обмена сообщениями между ОРС-сервером и клиентом, не зависящие от аппаратно-программной платформы, от типа взаимодействующих систем и сетей. ОРС UA обеспечивает надежную и безопасную коммуникацию, противодействие вирусным атакам, гарантирует идентичность информации клиента и сервера.

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

ОРС UA использует несколько различных форматов данных, основными из которых являются бинарные структуры и XML-документы. Формат данных может быть определен поставщиком ОРС-сервера или стандартом. Для работы с произвольными форматами клиент может запросить у сервера информацию об описании этого формата. Во многих случаях используется автоматическое распознавание формата данных во время их передачи.

ОРС UA обладает высокой робастностью (нечувствительностью к помехам, сбоям, вычислительным ошибкам) данных и уведомлений о событиях. Робастность обеспечивается механизмом быстрого обнаружения ошибок коммуникации и восстановления данных.

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

Архитектура, ориентированная на сервисы. Основным отличием ОРС UA от ОРС является отказ от технологии СОМ и DCOM фирмы Microsoft и переход к архитектуре SOA (Service Oriented Architecture - архитектура, ориентированная на сервисы) с целью обмена информацией и обеспечения совместимости с множеством различных аппаратно-программных платформ. Под сервисом в ОРС UA понимается некоторая функциональность, заключенная в программном компоненте, который может быть транспортирован от сервера к клиенту или обратно и вызван удаленно. Вызов сервиса аналогичен вызову метода в языках объектно-ориентированного программирования. Интерфейс между клиентом ОРС UA и сервером определяется как набор сервисов. Основным принципом SOA является независимость от программной технологии, от вычислительной платформы, от языков программирования, от конкретных приложений, а также организация сервисов как слабосвязанных компонентов для построения систем. Сервисы включают в себя средства обеспечения информационной безопасности.

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

Сервисы ОРС UA делятся на логические группы:

  • сервисы безопасных каналов;

  • сервисы сессий взаимодействия приложений по инициативе пользователя;

  • сервисы для управления узлами (узел - представление объектов, их определений и перекрестных ссылок в адресном пространстве сервера ОРС UA.). Позволяют клиентам добавлять, модифицировать или удалять узлы в адресном пространстве;

  • сервисы видимости узлов, позволяющие задавать индивидуальные наборы видимых узлов для разных клиентов;

  • сервисы атрибутов позволяют модифицировать атрибуты узлов;

  • сервисы методов, которые вызывают функции, исполняемые элементами системы;

  • сервисы для мониторинга узлов в режиме подписки. Эти сервисы периодически контролируют переменные, атрибуты и события, а также генерируют уведомления при наступлении заданных условий;

  • сервисы для осуществления подписки и публикации уведомлений.

Независимость от COM, DCOM. Отказ от DCOM стал возможен благодаря появлению новых транспортных механизмов, основанных на SOAP, XML, HTTP (гл. 2) и сервисах. Благодаря им ОРС UA позволяет осуществить безопасную и надежную доставку информации и объединить в одном сервере функциональность ОРС DA, ОРС HDA и ОРС А&Е-серверов.

Стандарт ОРС UA не предназначен для замены существующих ОРС-спецификаций, а дополняет и расширяет их возможности.

Безопасность. Для обеспечения информационной безопасности в ОРС UA используются стандартные веб-сервисы безопасности, такие как WS-Security, WS-Trust или WS-SecureConversation. Диапазон возможностей средств безопасности простирается от простой аутентификации с помощью пароля и обмена цифровыми подписями до полного шифрования передаваемых сообщений.

ОРС-сообщения в стандарте UA передаются с помощью сообщений SOAP в виде XML-текста. Поскольку кодирование и декодирование текстового формата занимает довольно много времени, стандарт предусматривает альтернативный способ представления информации в виде бинарного файла.

Достоинства нового стандарта:

  • реализация на языке программирования ANSI С для обеспечения переносимости на другие платформы, включая встраиваемые системы. Доступны также версии на .NET и Java (от ОРС Foundation);

  • ориентация на сервисы вместо ориентации на объекты, что позволяет использовать ОРС UA на любых компьютерах, встраиваемых системах, в коммуникаторах и т.п., которые используют веб-сервисы;

  • позволяет осуществить масштабирование ОРС UA, т.е. изменение объема программы в зависимости от вычислительных ресурсов процессора и требуемой функциональности. Может быть выполнена также компиляция в виде однопоточного или многопоточного приложения;

  • поддержка надежного и современного транспортного механизма SOAP на базе XML с применением HTTP-протокола;

  • обеспечение хорошей информационной безопасности;

  • конфигурируемый таймаут для каждого сервиса;

  • использование открытых стандартов World Wide Web Consortium (W3C) вместо закрытого стандарта COM/DCOM.

Концепция системы на базе ОРС UA. Система на базе ОРС UA может содержать множество клиентов и серверов. Каждый клиент может работать параллельно с несколькими серверами, и каждый сервер может обслуживать нескольких клиентов. Пользовательское приложение (например, SCADA) может создавать комбинированные группы клиентов и серверов для ретрансляции сообщений, которыми оно обменивается с другими клиентами и серверами, как показано на рис. 9.5.

Клиентом при взаимодействии с ОРС-сервером является прикладная программа, например, SCADA. Структура клиента показана на рис. 9.6. Клиентская программа выполняет запросы сервисов ОРС-сервера через внутренний интерфейс, который является изолирующей прослойкой между программой и коммуникационным стеком. Коммуникационный стек конвертирует запросы клиентской прикладной программы в сообщения для вызова необходимого сервиса, которые посылает серверу. После получения ответа на запросы коммуникационный стек передает их в клиентскую программу.

Рис. 9.5. ОРС UA-клиент и сервер могут быть скомбинированы в одном приложении для взаимодействия с другими ОРС UA-клиентами и серверами

Рис. 9.6. Структура клиентской программы в стандарте ОРС UA

Структура сервера ОРС UA представлена на рис. 9.7. Модули в/в, ПЛК, интеллектуальные устройства и программы, которые могут поставлять данные через ОРС-сервер, обозначены на рис. 9.7 как «реальные объекты». Серверное приложение - программная реализация функций, которые должен выполнять сервер. Взаимодействие ОРС UA-сервера с клиентом выполняется через интерфейс прикладной программы (рис. 9.7) путем отправления запросов и получения ответов.

Адресное пространство ОРС-сервера - множество узлов, доступных клиентской программе с помощью сервисов ОРС UA. «Узлы» в адресном пространстве используются, чтобы представить реальные объекты, их определения и перекрестные ссылки. В адресном пространстве выделяется подпространство узлов, которые сервер делает «видимыми» для клиента. Видимые узлы организуются в виде иерархической структуры, для удобства навигации их клиентской программой.

Обмен данными между клиентом и сервером может выполняться как путем получения мгновенных ответов на запросы, так и по схеме «издатель подписчик». Во втором случае клиентская программа осуществляет «подписку» на получение определенных данных, которые сервер должен будет предоставить по мере их появления. Для реализации режима подписки сервер осуществляет непрерывный контроль (мониторинг) узлов и соответствующих им реальных объектов с целью обнаружения изменений. При обнаружении изменений в данных, событиях или аварийных сигналах (алармах) сервер генерирует уведомление, которое передается клиенту по каналу подписки.

Рис. 9.7. Структура сервера в стандарте ОРС UA

ОРС UA допускает обмен между 2-мя серверами. Для этого один из сер- веров выступает в роли клиента, 2-ой - в роли сервера. Таким образом можно соединить несколько серверов цепочкой, при этом каждый из них будет выступать с одной стороны цепочки в качестве клиента, с другой стороны - в качестве сервера, как показано на рис. 9.3.

Для защиты уже сделанных инвестиций в ОРС на базе DCOM организация ОРС Foundation разработала стратегию перехода на новую технологию с применением «UA-оболочки», которая допускает обмен данными между старыми и новыми продуктами. Такая оболочка позволяет, например, DCOM ОРС серверу работать с ОРС UA клиентом, и наоборот.

    1. ОРС DA-сервер в среде MS Excel

Microsoft Excel является хорошей средой для разработки несложных систем автоматизации благодаря тому, что он содержит удобный пользовательский интерфейс для обработки данных, построения графиков, вставки рисунков, выполнения анимации и т.п. Он содержит также встроенные элементы управления (раскрывающиеся списки, «радиокнопки», «чек-боксы» и т.п.).

Excel позволяет сделать специализированный пользовательский интерфейс, не уступающий по дизайну профессиональным SCADA-пакетам. Особенно удобным является простое сохранение выполненной работы в файл.

Недостатком MS Excel является низкое быстродействие при записи данных в ячейки таблицы и отсутствие в VBA возможности выполнения задач в нескольких параллельных потоках. VBA включает в себя Visual Basic и дополнительные функции, обеспечивающие работу с приложением, например с ячейками MS Excel или с параграфами MS Word. Рекомендуется использовать MS Excel только для применений, использующих не более 10...30 тегов при периоде их опроса не менее 1 с. Однако это касается только операций в ячейках и динамического обновления графиков и не распространяется на обработку данных средствами языка VBA.

Возможность работы MS Excel (и других приложений Microsoft Office) с ОРС-сервером обеспечивается благодаря тому, что Visual Basic, входящий в состав MS Excel, поддерживает технологию Automation (OLE Automation) (Microsoft). Эта технология позволяет одному приложению (клиенту) использовать объекты другого приложения (сервера). Применительно к задаче ПА это означает, что приложение клиент может использовать объекты ОРС-сервера, который, в свою очередь, может получать данные из физического устройства или записывать их в него.

Automation позволяет использовать в среде MS Excel также объекты других приложений, например ActiveX-объекты, объекты MS Word, Outlook Express и др. Интерфейс Automation позволяет использовать ОРС-сервер с любыми другими приложениями, имеющими встроенный Visual Basic for Application.

На рис. 9.8 показала иерархия объектов, предоставляемых интерфейсом ОРС Automation. Значение данных, считанных из устройства ввода, параметр качества данных и временная метка хранятся в объекте OPCItem. Несколько OPCItem могут составлять коллекцию. (Коллекция - термин VBA, - группа связанных объектов, каждый из которых называется элементом коллекции и может быть вызван по его индексу). Каждая коллекция имеет свойство Count, которое позволяет подсчитать количество элементов.

Рис. 9.8. Иерархия объектов интерфейса Automation

Объект OPCServer - экземпляр ОРС-сервера. Этот объект должен быть создан до того, как будут установлены ссылки на другие объекты. Он содержит коллекцию OPCGroups и создает объект OPCBrowser, который используется в ОРС-клиенте для построения навигатора тегов.

Рассмотрим пример чтения значения тега из ОРС-сервера в ячейку листа MS Excel. Сначала необходимо создать модуль в Visual Basic, входящем в состав MS Excel. В заголовке модуля объявляются переменные Server и Group как имеющие тип OPCServer и OPCGroup соответственно, с областью видимости Public (строки 1 и 2 в листинге 1):

Листинг 1. Подсоединение к ОРС-серверу

1 Public Server As OPCServer

2 Public Group As OPCGroup

3 Sub Connect()

4 If Server Is Nothing Then

5 Set Server = New OPCServer

6 End If

7 If Group Is Nothing Then GoTo noGroup

8 Set Group - Nothing

9 noGroup:

10 Server. Connect "NLopc.server"

11 Set Group = Server.OPCGroups.Add("RLDA")

12 End Sub

Первым делом нужно создать связь MS Excel с ОРС-сервером. Для этого используется процедура Connect() (строка 3). Для того чтобы не создавать новые объекты, если они уже существуют, используется проверка существования объекта Server (строка 4), и если он не существует, то создается новый оператором New (строка 5).

Аналогично поступают с объектом Group (строка 7). Если объект не существует, то переходят к метке noGroup:, за которой вызывается метод Connect объекта Server, который осуществляет соединение с сервером «гNLopc.server» (в этом примере использован ОРС-сервер Nopс (НИЛ АП). Далее создается новая объектная переменная Group и добавляется методом Add в коллекцию OPCGroups с любым именем, например «RLDA». Если объект Group существует, то его сначала удаляют (строка 8), чтобы не проверять, откуда он появился, затем создают заново (строка 10, 11).

После выполнения процедуры листинга 1 можно прочитать данные из ОРС- сервера. Пример чтения данных иллюстрирует листинг 2.

Предположим, что нужно считать данные тега, указанного на рис. 9.1. Его имя присваивают переменной tagname (строка 7). Далее имя тега нужно добавить к коллекции OPCItems с помощью метода Addltem (строка 8). Второй переменной после имени тега является номер тега в коллекции. После этого объектную переменную anltem ассоциируют с объектом Item, имеющим порядковый номер 1, под этим номером в коллекцию OPCItems был добавлен новый тег.

Объект anltem имеет метод Read, который позволяет прочесть параметры интересующего тега: значение Value, качество Quality и временную метку TimeStamp (строка 10).

После чтения этих переменных (строка 10) их значения записываются ячейки листа Excel с именем Лист1, находящиеся на пересечении 10-й, 11-й и 12-й строки с 5-м столбцом. Функция DoEvents необходима для того, чтобы Excel мог обрабатывать другие события, происходящие в системе, когда процедура ReadQ используется в цикле.

После получения данных от ОРС-сервера тег нужно удалить из коллекции. Для этого находят его указатель с помощью метода ServerHandle (строка 15), затем удаляют из коллекции OPCItems методом Remove. Далее удаляют ассоциацию объектной переменной anltem с реальным объектом (строка 17).

Листинг 2. Чтение данных из ОРС-сервера

1 Sub Read()

2 If Server Is Nothing Then Exit Sub

3 If Group Is Nothing Then Exit Sub

4 Dim serverHandles(l) As Long, Errors() As Long

5 Dim tagname As String, anltem As OPCItem

6 Dim Value, Quality, TimeStamp As Variant

7 tagname = "NL8TI.Laboratory32.Top.Vin4"

8 Group.OPCItems.Addltem tagname, 1

9 Set anltem = Group. OPCItems. Item(l)

10 anltem.Read OPCCache, Value, Quality, TimeStamp

11 JIucml.Cells(10, 5). Value = Value

12 JIucml.Cellsfll, 5). Value = Quality

13 JIucml.Cells(12, 5). Value = TimeStamp

14 DoEvente

15 serverHandles(l) = anltem. ServerHandle

16 Group. OPCItems.Remove 1, serverHandles, Errors

17 Set anltem = Nothing

18 End Sub

Упрощенный интерфейс Easy Access. Описанная процедура работы с ОРС-сервером хороша, когда на основе Visual Basic делается удобная заказная программа и нужно использовать все богатство возможностей ОРС-сервера. Однако для быстрого получения данных при проведении несложного эксперимента применение ОРС-сервера неоправданно сложно. В этих случаях можно использовать упрощенный СОМ-объект Easy Access. Для того чтобы считать из ОРС-сервера значение тега, например «NL8TI.Laboratory32.Top.Vin4» (листинг 3), достаточно после объявления переменных создать объект функцией «CreateObject» (строка 5) и сразу после этого получить значение тега (строка 7). Строка 8 записывает это значение на лист Excel в ячейку (7, 6).

Листинг 3. Применение упрощенного интерфейса Easy Access

1 Sub OnReadTag()

2 Dim obj As Object

3 Dim val As Variant

4 Dim tag As String

5 Set obj = CreateObject(." NLopc.console")

6 tag = "NL8TI.Laboratory32.Top.Vin4"

7 obj.GetTagValue tag, val

8 Лист 1.Cells(7, 6). Value = val

9 End Sub

Для записи данных в физическое устройство вместо функции obj.Get TagValue используют obj.SetTagValue.

Построение графиков, обработка полученных данных выполняются обычными средствами Visual Basic.