Сделай Сам Свою Работу на 5

Рассмотрим пример реализации компонентов интеграции для предоставления доступа к диагностическим данным контроллеров CoDeSys SP клиентам OPC сервера.





 

 

Рис.35.Структура объектной модели OPC сервера.

Каждая OPC группа имеет уникальное имя среди всех групп данного OPC клиента. OPC клиент может изменить это имя позже, задать активное или пассивное состояние группы, включить или выключить получение данных от OPC сервера без перевода OPC группы или элемента данных OPC в пассивное состояние. Таким образом, он не влияет на обмен данными между OPC сервером и системой управления. OPC группы создаются динамически согласно требованиям текущего приложения (Клиента) по списку тэгов и их свойств. В зависимости от этих требований может варьироваться как содержание группы, так и число включенных в нее элементов данных OPC. В отличии от OPC группы и OPC сервера, элемент данных OPC не поддерживает OPC интерфейс и не является, таким образом, COM-объектом. Это внутренний объект OPC сервера, который содержит важную информацию о запросах OPC клиента (например, тип данных, использующихся для загрузки значений, или состояние (активное или пассивное) запрашиваемых значений и т.п.). С точки зрения OPC клиента, элемент данных OPC не представляет собой реальный источник данных, а лишь обеспечивает с ним логическую связь. Количество элементов данных OPC, связанных с одним источником данных, не ограничено (даже в рамах одной OPC группы , одного клиента OPC).



Реализация интерфейсов OPC в сервере.

 

OPC - (OLE for Process Control) стандартное описание интерфейса для локального и сетевого обмена данными. Технология OPC основана на механизме DCOM (Distributed Component Object Model) Microsoft Windows. Интерфейс IUnknown является базовыминтерфейсом в COM/DCOM. Объект OPC сервера является прямым наследником интерфейса IUnknown (Рис. 36). Идиома точек стыковки выражает общую концепцию регистрации экспортируемых интерфейсов как небольшого числа интерфейсов стандартной инфраструктуры. Наиболее фундаментальным из этих интерфейсов является IConnectionPoint. Интерфейс IOPCServer предоставляет возможностьуправлять OPC группами. Этот интерфейс определяет методы длядобавления и удаления OPC групп. С его помощью можно преобразовать стандартный код ошибки в описание, понятное конечному пользователю. Интерфейс IOPCServer позволяет следить за общим состоянием



сервера.Интерфейс IOPCBrowse является необязательным, позволяет приложению просматривать имена тегов и атрибутов, которые доступны внутри сервера. Интерфейс IOPCItemIOиспользуется для выполнения операций чтения и записи элементов данных OPC сервер вне зависимости от стандарта OPC (Data Access, Alarm & Event, Historical Data Access и т.д.)использует интерфейс IOPCCommon. Этот интерфейс предоставляет возможность устанавливать и запрашивать значение идентификатора LocaleID, который будет действовать для данной клиент-серверной сессии OPC.

Рис. 36. Стандартные интерфейсы OPC сервера.  

Благодаря этому, действия одного OPC клиента не затрагивают других клиентов. Также как и для других интерфейсов, например IUnknown, объект, реализующий интерфейс IOPCCommon,для каждого сервера уникален. И объект сервера доступа к данным, и объект сервера уведомлений должны обеспечить реализацию интерфейса IOPCCommon.Клиент, который поддерживает соединение с этими серверами, будет использовать интерфейсы этих двух объектов независимо.

Реализация OPC компонентов диагностики для контроллеров CoDeSys SP


В качестве базовой реализации элементов данных используется класс CDAIItemBase, определенный на стороне OPC сервера (Рис. 37). Наследование от этого класса позволяет не реализовывать базовую функциональность, которая является общей для всех элементов данных. Методы, которые требуют специфической реализации, можно переопределить в производных классах.

 

 

Рис. 37. Иерархия классов элементов данных

 

Внутри компонента интеграции с помощью механизма наследования определяется базовый класс CPlcItem (Рис. 37) для всех разновидностей элементов данных. Характерной особенностью объектов этого класса является то, что они содержат в себе объект CPlcVarList, который представляет собой связующее звено между запросом к элементу данных компонента интеграции и интерфейсом взаимодействия с устройством электроавтоматики (Рис. 34). Конечной реализацией элементов данных являются классы CPlcItemImpls, унаследованные от CPlcItem, которые реализуют получение диагностических данных от контроллеров.



Обобщенная схема получения диагностических данных OPC клиентами представлена на Рис. 38. При обращении OPC клиента к OPC серверу (вызов 1 на Рис. 38) происходит запрос к элементу данных CPlcItemImpl (вызов 2) компонента интеграции в основном потоке. После этого элемент данных добавляется в очередь запросов (вызов 3) и обрабатывается в отдельном потоке функцией обработки запросов (вызов 4). Дополнительный поток обработки запросов необходим для того, чтобы организовать одновременный доступ к синхронным сервисам OPC сервера для его клиентов.
Функция обработки запросов (вызов 5), выполняемая в отдельном потоке, осуществляет взаимодействие с устройством электроавтоматики через интерфейс PLCHandler (вызовы 6.1. и 6.2). Уведомление элемента данных CPlcItemImpl (вызов 9) о завершении обработки запроса (вызов 7) происходит через скрытое окно (вызов 8). После этого происходит возврат фокуса управления обратно OPC серверу (вызов 10) и OPC клиенту (вызов 11).




Рис. 38. Обработка синхронного запроса OPC клиента.


Представленный механизм обработки синхронных запросов к устройству электроавтоматики является универсальным для одновременного использования несколькими OPC клиентами. Наличие очереди обусловлено необходимостью обработки нескольких синхронных запросов от OPC клиентов. Уведомление о завершении работы с интерфейсом PLCHandler, отправляемое через скрытое окно, означает готовность поля данных CPlcVarList.

 

Вопросы

  1. Назначение интерфейса PlcHandler
  2. Создание/уничтожение и конфигурирование экземпляра CPLCHandler.
  3. Подключение/отключение, получение значений переменных управляющих программ исполняемых на контроллере.
  4. Типы коммуникационных каналов для подключения к PLC.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.