OPC: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Метка: добавление ссылки
м В шаблоне 'переработать' (до 2016 ш:cleanup) добавлена дата установки: 2008-02-15
 
(не показано 36 промежуточных версий 23 участников)
Строка 1: Строка 1:
{{cleanup}}{{style}}
{{переработать|дата=2008-02-15}}{{style}}
'''OPC''' ([[Object Linking and Embedding|OLE]] for Process Control) — семейство [[программное обеспечение|программных]] технологий, предоставляющих единый [[интерфейс]] для управления объектами [[АСУТП|автоматизации]] и [[технологический процесс|технологическими процессами]]. Многие из OPC протоколов базируются на [[Microsoft Windows|Windows]]-технологиях: [[Object Linking and Embedding|OLE]], [[Microsoft ActiveX|ActiveX]], [[Component Object Model|COM]]/[[Distributed Component Object Model|DCOM]]. Такие OPC протоколы, как [[OPC XML DA]] и [[OPC UA]] являются [[Кроссплатформенность|платформо-независимыми]].
'''OPC''' ([[аббревиатура|аббр.]] от {{lang-en|Open Platform Communications}}<ref>{{Cite web |url=https://opcfoundation.org/about/what-is-opc/ |title=What is OPC? (Eng) |access-date=2017-07-11 |archive-date=2017-07-04 |archive-url=https://web.archive.org/web/20170704182224/https://opcfoundation.org/about/what-is-opc/ |deadlink=no }}</ref>, ранее {{lang-en|[[Object Linking and Embedding|'''O'''LE]] for '''P'''rocess '''C'''ontrol}}) — Семейство программных технологий, обеспечивающих единый [[интерфейс]] для управления объектами автоматизации и технологическими процессами. Многие OPC-протоколы основаны на [[Windows]]-технологиях: [[OLE]], [[ActiveX]], COM/DCOM. Такие OPC-протоколы, как OPC XML DA и OPC UA, являются независимыми от платформы.


Создание и поддержку спецификаций OPC координирует международная некоммерческая организация [[OPC Foundation]], созданная в [[1994 год]]у ведущими производителями средств промышленной автоматизации.
Создание и поддержку спецификаций OPC координирует международная некоммерческая организация OPC Foundation, созданная в [[1994 год]]у ведущими производителями средств промышленной автоматизации.


[[Девиз]] OPC Foundation: — «Открытые коммуникации по открытым протоколам».
[[Девиз]] OPC Foundation — «Открытые коммуникации по открытым протоколам».


== Стандарты ==
== Стандарты ==


OPC — набор спецификаций [[стандарт]]ов. Каждый стандарт описывает набор функций определенного назначения. Текущие стандарты:
OPC — набор спецификаций [[стандарт]]ов. Каждый стандарт описывает набор функций определенного назначения. Текущие стандарты<ref>{{Cite web|url=http://dx.doi.org/10.1163/ejb9789004244627.b02174|title=Memorandum, Wisner to Stevens, Consideration of OPC Responsibility in the Field of Escape and Evasion, October 24, 1950, Top Secret.|website=Cold War Intelligence|access-date=2022-04-05}}</ref>:


* OPC DA (Data Access) — основной и наиболее востребованный стандарт. Описывает набор функций [[обмен данными|обмена данными]] в реальном времени с [[Программируемый логический контроллер|ПЛК]], [[Распределённая система управления|РСУ]], [[ЧМИ]], [[ЧПУ]] и другими устройствами.
* OPC DA (Data Access) — основной и наиболее востребованный стандарт. Описывает набор функций [[обмен данными|обмена данными]] в реальном времени с [[Программируемый логический контроллер|ПЛК]], [[Распределённая система управления|РСУ]], [[ЧМИ]], [[ЧПУ]] и другими устройствами.
* OPC AE (Alarms & Events) — предоставляет функции уведомления по требованию о различных событиях: аварийные ситуации, действия оператора, информационные сообщения и другие.
* OPC AE (Alarms & Events) — предоставляет функции уведомления по требованию о различных событиях: аварийные ситуации, действия оператора, информационные сообщения и другие.
* OPC Batch — предоставляет функции шагового и рецептурного управления технологическим процессом (в соответствии с стандартом S88.01)
* OPC Batch — предоставляет функции шагового и рецептурного управления технологическим процессом (в соответствии с стандартом S88.01).
* OPC DX (Data eXchange) — предоставляет функции организации обмена данными между OPC-серверами через сеть [[Ethernet]]. Основное назначение — создание шлюзов для обмена данными между устройствами и программами разных производителей.
* OPC DX (Data eXchange) — предоставляет функции организации обмена данными между OPC-серверами через сеть [[Ethernet]]. Основное назначение — создание шлюзов для обмена данными между устройствами и программами разных производителей.
* OPC HDA (Historical Data Access) — в то время как OPC Data Access предоставляет доступ к данным изменяющимся в [[реальное время|реальном времени]], OPC Historical Data Access предоставляет доступ к уже сохраненным данным.
* OPC HDA (Historical Data Access) — в то время как OPC Data Access предоставляет доступ к данным, изменяющимся в [[реальное время|реальном времени]], OPC Historical Data Access предоставляет доступ к уже сохраненным данным.
* OPC Security — определяет функции организации прав доступа клиентов к данным системы управления через OPC-сервер.
* OPC Security — определяет функции организации прав доступа клиентов к данным системы управления через OPC-сервер.
* OPC XML-DA (XML-Data Access) — предоставляет гибкий, управляемый правилами формат обмена данными через [[SOAP]] и [[HTTP]].
* OPC XML-DA (XML-Data Access) — предоставляет гибкий, управляемый правилами формат обмена данными через [[SOAP]] и [[HTTP]].
* OPC UA (Unified Architecture) — последняя по времени выпуска спецификация, которая основана не на технологии Microsoft COM, что предоставляет кросс-платформенную совместимость.
*OPC UA (Unified Architecture) — последняя по времени выпуска спецификация, которая основана не на технологии Microsoft COM, что предоставляет кросс-платформенную совместимость.


== Назначение ==
== Назначение ==


Стандарт OPC разрабатывался с целью сократить затраты на создание и сопровождение приложений промышленной автоматизации.
Стандарт OPC был разработан с целью сокращения затрат на создание и поддержку приложений промышленной автоматизации.

В начале 1990 года у разработчиков промышленного ПО возникла потребность в универсальном инструменте обмена данными с устройствами разных производителей или по разным протоколам обмена данными.
В начале 1990 годов разработчики промышленного программного обеспечения столкнулись с необходимостью создания универсального инструмента для обмена данными с устройствами разных производителей или в соответствии с различными протоколами обмена данными.

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


Суть OPC проста — предоставить разработчикам промышленных программ универсальный фиксированный интерфейс (то есть набор функций) обмена данными с любыми устройствами. В то же время разработчики устройств предоставляют программу, реализующую этот интерфейс (набор функций).
Суть OPC проста — предоставить разработчикам промышленных программ универсальный фиксированный интерфейс (то есть набор функций) обмена данными с любыми устройствами. В то же время разработчики устройств предоставляют программу, реализующую этот интерфейс (набор функций).
Строка 28: Строка 31:
== Версии ==
== Версии ==


На данный момент последней версией спецификации OPC DA является версия 3.0, однако наиболее распространенной пока является версия 2.05a. Недавно разработанный стандарт OPC UA (Unified Architecture) унифицирует набор функций для обмена данными, регистрации событий, хранения данных, обеспечения безопасности данных.
Последней версией спецификации OPC DA является версия 3.0. Стандарт OPC UA (Unified Architecture) унифицирует набор функций для обмена данными, регистрации событий, хранения данных, обеспечения безопасности данных.


=== OPC DA Version 2.05a ===
=== OPC DA Version 2.05a ===


Наиболее широко используемая. В этом стандарте помимо синхронного обмена данными, введена поддержка асинхронного обмена данными.
Наиболее широко используемая. В этом стандарте, помимо синхронного обмена данными, введена поддержка асинхронного обмена данными.
Асинхронный обмен данных позволяет продолжать выполнение программы без ожидания ответа устройства. Этот метод снижает нагрузку на сеть и должен быть рекомендован как основной. Получение данных реализуется с помощью [[Callback (программирование)|callback-функции]] пользовательской программы, которая вызывается в момент прихода ответа от устройства.
Асинхронный обмен данных позволяет продолжать выполнение программы без ожидания ответа устройства. Этот метод снижает нагрузку на сеть и должен быть рекомендован как основной. Получение данных реализуется с помощью [[Callback (программирование)|callback-функции]] пользовательской программы, которая вызывается в момент прихода ответа от устройства.


Строка 48: Строка 51:
Исходя из области применения OPC-серверов в АСУ предприятия различают несколько уровней управления:
Исходя из области применения OPC-серверов в АСУ предприятия различают несколько уровней управления:


* нижний уровень — [[полевая шина|полевые шины]] (fieldbus) и отдельные контроллеры;
* Нижний уровень — [[полевая шина|полевые шины]] (fieldbus) и отдельные контроллеры;
* средний уровень — цеховые сети;
* Средний уровень — цеховые сети;
* уровень АСУ ТП — уровень работы систем типа [[SCADA]];
* Уровень АСУ ТП — уровень работы систем типа [[SCADA]];
* уровень АСУП — уровень приложений управления ресурсами предприятия.
* Уровень АСУП — уровень приложений управления ресурсами предприятия.


Каждый из этих уровней может обслуживаться OPC-сервером, поставляя данные OPC-клиенту на более высоком уровне или даже «соседу».
Каждый из этих уровней может обслуживаться OPC-сервером, поставляя данные OPC-клиенту на более высоком уровне или даже «соседу».
Строка 57: Строка 60:
== Возможные области применения OPC-серверов в АСУ предприятия ==
== Возможные области применения OPC-серверов в АСУ предприятия ==


Если в системе есть оборудование, например плата АЦП, управляемая через драйвер в операционной системе Windows или другой ОС, которая поддерживает COM/DCOM, то это наиболее подходящий кандидат для реализации OPC-сервера поверх драйвера.


Замена устройства не требует изменения остальных приложений: OPC-сервер модифицируется, но сам OPC-интерфейс поверх него остается прежним.
Если имеется оборудование, например плата [[АЦП]], управляемая через драйвер на компьютере с Windows или другой ОС, поддерживающей [[Component Object Model|COM]]/[[DCOM]], то это самый главный кандидат на реализацию OPC-сервера непосредственно поверх драйвера.

Если устройство управляется через какой-либо сетевой протокол, то вполне возможно реализовать OPC-сервер, получающий данные по этому протоколу. Единственное, что нужно предусмотреть - механизмы восстановления связи в случае сбоев.

Более сложная схема будет при работе управляющих приложений на компьютере, который не поддерживает COM/DCOM. В этом случае можно использовать двухкомпонентный OPC-сервер. На стороне ОС, не поддерживающей COM, устанавливается сетевой модуль, который связан с приложением (ями) с одной стороны и через сеть с OPC-сервером - с другой. Заметим, что сетевой модуль может быть стандартным, например, ISaNet в системе ISaGRAF. В этом случае нужно будет разработать только OPC-сервер. Иногда сетевой модуль создается специально для OPC-сервера. Возможна даже реализация, при которой этот модуль не ориентирован на конкретное приложение, а предоставляет API-интерфейс для любых приложений, желающих обслуживаться с помощью OPC. Так работает OPC-сервер для операционной системы OS-9.

Еще одна разновидность OPC-сервера - шлюз к сети полевой шины, такой как Profibus или LonWorks. Реализация этой схемы очень похожа на предыдущие случаи. Скорее всего, на компьютере с операционной системой Windows будет установлен адаптер полевой шины, а OPC-сервер будет взаимодействовать с этой сетью через драйвер адаптера. В интернете можно найти множество примеров подобных решений.

Идея подобной схемы достаточно очевидна. Сеть полевой шины работает в жестком реальном времени, а OPC предоставляет менее требовательный шлюз к этой сети из приложений более высокого уровня.

Можно назвать много других мест применения OPC: для работы с базами данных в качестве вспомогательных или промежуточных OPC-серверов и т.д. Технология DCOM не очень подходит для глобальных сетей. Поэтому для привлечения OPC-технологии к интернет-технологиям возможен такой путь: расширение веб-сервера является OPC-клиентом, собирающим данные от OPC-серверов. А на стороне клиентов запускается динамическая [[HTML]]- или [[XML]]-страница, получающая данные от этого веб-сервера. Она может быть даже OPC-сервером для других приложений.

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


Замена устройства не потребует изменения остальных приложений: OPC-сервер изменяется, но сам OPC-интерфейс поверх него остается прежним.
Замена устройства не потребует изменения остальных приложений: OPC-сервер изменяется, но сам OPC-интерфейс поверх него остается прежним.
Строка 64: Строка 80:
При наличии устройства, управляемого через какой-нибудь сетевой протокол, вполне возможна реализация OPC-сервера, получающего данные по этому протоколу. Единственная особенность — следует предусмотреть механизмы восстановления связи в случае сбоев.
При наличии устройства, управляемого через какой-нибудь сетевой протокол, вполне возможна реализация OPC-сервера, получающего данные по этому протоколу. Единственная особенность — следует предусмотреть механизмы восстановления связи в случае сбоев.


Несколько более сложной будет схема при работе управляющих приложений на компьютере, не поддерживающем COM/DCOM. В этом случае применим двухкомпонентный OPC-сервер. На стороне ОС, не поддерживающей COM, устанавливается сетевой модуль, который, с одной стороны, связан с приложением(ями), а с другой — через сеть с OPC-сервером. Заметим, что сетевой модуль может быть стандартным, как, например, [[ISaNet]] в системе [[ISaGRAF]]. В этом случае необходимо разработать только OPC-сервер. Иногда сетевой модуль создаётся специально для OPC-сервера. Возможна даже реализация, при которой этот модуль не ориентирован на конкретное приложение, а предоставляет некоторый API-интерфейс для любых приложений, желающих обслуживаться с помощью OPC. Так действует OPC-сервер для операционной системы [[OS-9]].
Несколько более сложной будет схема при работе управляющих приложений на компьютере, не поддерживающем COM/DCOM. В этом случае применим двухкомпонентный OPC-сервер. На стороне ОС, не поддерживающей COM, устанавливается сетевой модуль, который, с одной стороны, связан с приложением (ями), а с другой — через сеть с OPC-сервером. Заметим, что сетевой модуль может быть стандартным, как, например, ISaNet в системе [[ISaGRAF]]. В этом случае необходимо разработать только OPC-сервер. Иногда сетевой модуль создаётся специально для OPC-сервера. Возможна даже реализация, при которой этот модуль не ориентирован на конкретное приложение, а предоставляет некоторый API-интерфейс для любых приложений, желающих обслуживаться с помощью OPC. Так действует OPC-сервер для операционной системы [[OS-9]].


Ещё одна разновидность OPC-сервера — шлюз к сети [[полевая шина|полевой шины]], такой, как [[Profibus]] или [[LonWorks]]. Реализация этой схемы очень похожа на предыдущие случаи. Скорее всего, на компьютере с ОС Windows будет установлен адаптер [[Промышленная сеть|fieldbus-сети]], а OPC-сервер будет взаимодействовать с этой сетью через драйвер адаптера. В Internet можно найти немало таких примеров.
Ещё одна разновидность OPC-сервера — шлюз к сети [[полевая шина|полевой шины]], такой, как [[Profibus]] или [[LonWorks]]. Реализация этой схемы очень похожа на предыдущие случаи. Скорее всего, на компьютере с ОС Windows будет установлен адаптер [[Промышленная сеть|fieldbus-сети]], а OPC-сервер будет взаимодействовать с этой сетью через драйвер адаптера. В интернете можно найти немало таких примеров.


Идея подобной схемы достаточно очевидна. Сеть полевой шины работает в жестком реальном времени, а OPC предоставляет менее требовательный шлюз к этой сети из приложений более высокого уровня.
Идея подобной схемы достаточно очевидна. Сеть полевой шины работает в жестком реальном времени, а OPC предоставляет менее требовательный шлюз к этой сети из приложений более высокого уровня.


Можно назвать много других мест применения OPC: для работы с базами данных в качестве вспомогательных или промежуточных OPC-серверов и т. д. Технология [[DCOM]] не очень пригодна для глобальных сетей. Поэтому для привлечения к OPC-технологии Internet-технологий возможен такой путь: расширение Web-сервера является OPC-клиентом, собирающим данные от OPC-серверов. А на стороне клиентов запускается динамическая [[html]]- или [[xml]]-страница, получающая данные от этого Web-сервера. Ее можно сделать даже OPC-сервером для других приложений.
Можно назвать много других мест применения OPC: для работы с базами данных в качестве вспомогательных или промежуточных OPC-серверов и т. д. Технология [[DCOM]] не очень пригодна для глобальных сетей. Поэтому для привлечения к OPC-технологии интернет-технологий возможен такой путь: расширение Web-сервера является OPC-клиентом, собирающим данные от OPC-серверов. А на стороне клиентов запускается динамическая [[HTML]]- или [[XML]]-страница, получающая данные от этого Web-сервера. Её можно сделать даже OPC-сервером для других приложений.


Полезность применения OPC с точки зрения интеграции достаточно прозрачна и вытекает из самой сути OPC. Это стандарт на интерфейс обмена данными с оборудованием. Первое преимущество — если вы заменяете какой-нибудь компонент, то нет нужды корректировать другое ПО, так как даже при замене драйвера поверх него работает OPC. Второе — если вы хотите добавить в систему новые программы, нет необходимости предусматривать в них драйверы устройств, кроме OPC-клиента, разумеется. Ну и так далее.
Полезность применения OPC с точки зрения интеграции достаточно прозрачна и вытекает из самой сути OPC. Это стандарт на интерфейс обмена данными с оборудованием. Первое преимущество — если вы заменяете какой-нибудь компонент, то нет нужды корректировать другое ПО, так как даже при замене драйвера поверх него работает OPC. Второе — если вы хотите добавить в систему новые программы, нет необходимости предусматривать в них драйверы устройств, кроме OPC-клиента, разумеется. Ну и так далее.
Строка 76: Строка 92:
== Состояние дел ==
== Состояние дел ==


В настоящее время общепризнанным стандартом является только спецификации OPC DA и OPC HDA, а остальные спецификации только начинают завоевывать себе место под солнцем. Не все спецификации завершены, по крайней мере, с точки зрения интерфейса автоматизации (например, для ОРС-Batch уже существует версия 2.0 custom-интерфейса, и только 1.0 — для интерфейса автоматизации. Для некоторых других спецификаций тоже существует отставание интерфейсов автоматизации от custom-интерфейсов).
В настоящее время общепризнанным стандартом является только спецификации OPC DA и OPC HDA, а остальные спецификации только начинают завоевывать популярность. Не все спецификации завершены, по крайней мере, с точки зрения интерфейса автоматизации (например, для ОРС-Batch уже существует версия 2.0 custom-интерфейса, и только 1.0 — для интерфейса автоматизации. Для некоторых других спецификаций тоже существует отставание интерфейсов автоматизации от custom-интерфейсов).


Соответственно широкое распространение получил лишь стандарт OPC DA. Можно сказать, что сейчас действительно очень многие производители снабжают свои продукты OPC DA серверами. В последние годы активно развивается стандарт OPC HDA. Чего нельзя сказать о других спецификациях.
Соответственно широкое распространение получил лишь стандарт OPC DA. Можно сказать, что сейчас действительно очень многие производители снабжают свои продукты OPC DA серверами. В последние годы активно развивается стандарт OPC HDA. Чего нельзя сказать о других спецификациях.


Среди программ высокого уровня аналогичная картина. Спросом пользуется лишь OPC DA.
Среди программ высокого уровня аналогичная картина. Спросом пользуется лишь OPC DA. Почти все известные [[SCADA]]-продукты являются OPC-клиентами, например, AggreGate SCADA/HMI (Tibbo Technology Inc.), [[ЭНТЕК]] ([[ЭНТЕЛС]]), [[MasterSCADA]] ([[ИнСАТ]]), [[Trace mode|TRACE MODE]] ([[AdAstra]]), [[SCADA КРУГ-2000|КРУГ-2000]] ([[НПФ КРУГ]]), [[InTouch]] ([[Wonderware]]), [[Vijeo Citect]] ([[Schneider Electric]]), [[CitectSCADA]] ([[Schneider Electric]]), [[Genesis32]] ([[ICONICS]]), PcVUE(Arc Informatique), [[КАСКАД (SCADA-система)|КАСКАД]] ([http://kaskad-asu.com/ Каскад-АСУ]) а большинство из них и OPC-серверами (в частности, CiTect, [[MasterSCADA]], КРУГ-2000 и [[Trace mode|TRACE MODE]], [[FlexOPC]] ([[RealFlex]]), PcVUE, [[КАСКАД (SCADA-система)|КАСКАД]]). Поддержка OPC HDA из российских полнофункциональных SCADA-систем реализована только в [[Trace mode|SCADA TRACE MODE]], [[MasterSCADA]], [[SCADA КРУГ-2000|КРУГ-2000]] и [[КАСКАД (SCADA-система)|КАСКАД]]. Другое ПО подвержено влиянию OPC в гораздо меньшей степени - например, для приложений уровня управления ресурсами предприятия (АСУП) известна только реализация [http://1c-opc.ru OPC-клиента] с поддержкой OPC DA и OPC HDA спецификаций для систем, построенных на базе платформы 1С Предприятие 8 под Windows.


Из операционных систем технологию [[Component Object Model|COM]]/[[DCOM]] поддерживают следующие:
Из операционных систем технологию [[Component Object Model|COM]]/[[DCOM]] поддерживают следующие:
* ОС Windows, начиная с Windows 95 (с установленным компонентом [[DCOM]]) и до Windows 2000. Начиная с Windows XP модель DCOM поддерживается только для целей обеспечения совместимости;
* ОС Windows, начиная с Windows 95 (с установленным компонентом [[DCOM]]) и до Windows 2000. Начиная с Windows XP модель DCOM поддерживается только для целей обеспечения совместимости;
* большинство Unix-подобных ОС, включая [[Linux]]; поддерживается фирмой [[GE Software]];
* Большинство Unix-подобных ОС, включая [[Linux]]; поддерживается фирмой GE Software;
* ОС реального времени [[QNX]]; мост OPC реализуется при помощи решения OPC DataHub компании [[Cogent]];
* ОС реального времени [[QNX]]; мост OPC реализуется при помощи решения OPC Data-Hub компании Cogent;
* ОС реального времени [[VxWorks]]; обеспечивается фирмой-разработчиком [[WindRiver]]; имеется поддержка OPC, встроенная в систему разработки [[Tornado]].
* ОС реального времени [[VxWorks]]; обеспечивается фирмой-разработчиком WindRiver; имеется поддержка OPC, встроенная в систему разработки Tornado.


В других распространенных операционных системах поддержки COM/DCOM нет.
В других распространенных операционных системах поддержки COM/DCOM нет.
Строка 92: Строка 108:
== Перспективы ==
== Перспективы ==


Итак, в настоящее время картина далеко не идеальна. Ещё довольно много оборудования и ПО не охвачено OPC-технологиями. Даже технологией DA. С другой стороны корпорация Microsoft больше не развивает COM/DCOM, который заменяется более современными технологиями, например .NET.
Довольно много оборудования и ПО не охвачено OPC-технологиями. С другой стороны корпорация Microsoft больше не развивает COM/DCOM, который заменяется более современными технологиями, например .NET.


Организация OPC Foundation своей политикой сдерживает развитие стандарта. Документация с описанием интерфейсов доступна только членам данной организации. Членство стоит от нескольких тысяч долларов, что недоступно не только для разработчиков-одиночек, но даже для многих организаций. Этим и объясняется популярность OPC DA, документация по данному интерфейсу долгое время была доступна свободно. Как результат многие фирмы, не желающие связываться с довольно капризной технологией, имеющие в штате хороших программистов нижнего уровня и работающие с ограниченной номенклатурой контроллеров используют для своих SCADA-пакетов технологию CORBA.
Организация OPC Foundation своей политикой сдерживает развитие стандарта. Документация с описанием интерфейсов доступна только членам данной организации. Членство стоит от нескольких тысяч долларов, что недоступно не только для разработчиков-одиночек, но даже для многих организаций. Этим и объясняется популярность OPC DA, документация по данному интерфейсу долгое время была доступна свободно. Как результат многие фирмы, не желающие связываться с довольно капризной технологией, имеющие в штате хороших программистов нижнего уровня и работающие с ограниченной номенклатурой контроллеров используют для своих SCADA-пакетов технологию CORBA.


== Заключение ==
== Заключение ==
Технология OPC предлагает стандарты для обмена технологическими данными, в которые заложены определенные возможности. Авторитет вовлеченных в данную деятельность фирм серьёзно сказывается на развитии OPC. Однако процесс становления еще далеко не завершён и есть много проблем, которые предстоит решить.


== Примечания ==
Технология OPC предлагает стандарты для обмена технологическими данными, в которые заложены самые широкие возможности. Учитывая большой авторитет вовлеченных в данную деятельность фирм, можно ожидать, что технология OPC будет набирать силу. Это перспективная технология для интеграции разнородных систем. Хотя процесс становления еще далеко не завершён и есть много проблем, которые предстоит решить. Технология OPC активно используется российскими производителями ПО для осуществления взаимодействия с различным оборудованием, в основном с контроллерами сбора данных и приборами учета энергоресурсов.
{{примечания|3}}

== Список популярных OPC-серверов ==
* [[Modbus Universal MasterOPC Server]]
* [[Lectus]]
* [http://www.opcserver.ru/products.phtml?more=MODBUS КРУГ-Софт Modbus OPC-cервер]
* [http://www.opcserver.ru/products.phtml?more=Merkuri-230 КРУГ-Софт ОPC-сервер Меркурий 230]
* [[MatrikonOPC|Matrikon OPC]] сервер
* [http://kaskad-asu.com/index.php/produkcija-i-uslugi/programmnoe-obespechenie/opc-servery Каскад DA ОРС сервер]
* [http://elesy.ru/scada-infinity/components.aspx SCADA Infinity OPC Server]


== Ссылки ==
== Ссылки ==
* [http://www.opcfoundation.org/ Официальный сайт организации OPC Foundation (Eng)]
* [http://www.opcfoundation.org/ Официальный сайт организации OPC Foundation (Eng)]
* [http://www.pcweek.ru/themes/detail.php?ID=59064&THEME_ID=13892 Стандарт OPC - путь к интеграции разнородных систем]
* [http://www.pcweek.ru/themes/detail.php?ID=59064&THEME_ID=13892 Стандарт OPC - путь к интеграции разнородных систем]
* [http://plc24.ru/ispolzovanie-opc-servera-dlya-podklyucheniya-kontrollerov-k-pk/ Использование OPC-сервера для подключения контроллеров к ПК]
* [http://www.youtube.com/watch?v=He9qiSNBDik/ Видеоурок: Подключение контроллера к ПК через OPC-сервер]
* [http://www.opcserver.ru/ Технология OPC и производство OPC-серверов]


[[Категория:Информационные технологии]]
[[Категория:Информационные технологии]]

Текущая версия от 04:58, 8 января 2025

OPC (аббр. от англ. Open Platform Communications[1], ранее англ. OLE for Process Control) — Семейство программных технологий, обеспечивающих единый интерфейс для управления объектами автоматизации и технологическими процессами. Многие OPC-протоколы основаны на Windows-технологиях: OLE, ActiveX, COM/DCOM. Такие OPC-протоколы, как OPC XML DA и OPC UA, являются независимыми от платформы.

Создание и поддержку спецификаций OPC координирует международная некоммерческая организация OPC Foundation, созданная в 1994 году ведущими производителями средств промышленной автоматизации.

Девиз OPC Foundation — «Открытые коммуникации по открытым протоколам».

OPC — набор спецификаций стандартов. Каждый стандарт описывает набор функций определенного назначения. Текущие стандарты[2]:

  • OPC DA (Data Access) — основной и наиболее востребованный стандарт. Описывает набор функций обмена данными в реальном времени с ПЛК, РСУ, ЧМИ, ЧПУ и другими устройствами.
  • OPC AE (Alarms & Events) — предоставляет функции уведомления по требованию о различных событиях: аварийные ситуации, действия оператора, информационные сообщения и другие.
  • OPC Batch — предоставляет функции шагового и рецептурного управления технологическим процессом (в соответствии с стандартом S88.01).
  • OPC DX (Data eXchange) — предоставляет функции организации обмена данными между OPC-серверами через сеть Ethernet. Основное назначение — создание шлюзов для обмена данными между устройствами и программами разных производителей.
  • OPC HDA (Historical Data Access) — в то время как OPC Data Access предоставляет доступ к данным, изменяющимся в реальном времени, OPC Historical Data Access предоставляет доступ к уже сохраненным данным.
  • OPC Security — определяет функции организации прав доступа клиентов к данным системы управления через OPC-сервер.
  • OPC XML-DA (XML-Data Access) — предоставляет гибкий, управляемый правилами формат обмена данными через SOAP и HTTP.
  • OPC UA (Unified Architecture) — последняя по времени выпуска спецификация, которая основана не на технологии Microsoft COM, что предоставляет кросс-платформенную совместимость.

Назначение

[править | править код]

Стандарт OPC был разработан с целью сокращения затрат на создание и поддержку приложений промышленной автоматизации.

В начале 1990-х годов разработчики промышленного программного обеспечения столкнулись с необходимостью создания универсального инструмента для обмена данными с устройствами разных производителей или в соответствии с различными протоколами обмена данными.

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

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

Последней версией спецификации OPC DA является версия 3.0. Стандарт OPC UA (Unified Architecture) унифицирует набор функций для обмена данными, регистрации событий, хранения данных, обеспечения безопасности данных.

OPC DA Version 2.05a

[править | править код]

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

OPC Unified Architecture

[править | править код]

Спецификация OPC UA совмещает все преимущества предыдущих спецификаций и открывает новые горизонты для применения OPC-технологий. В частности, благодаря тому, что произошел отказ от использования COM-интерфейса, обеспечивается кросс-платформенная совместимость. Новый стандарт уже изначально позволяет обеспечить более высокий уровень безопасности данных, чем OPC DA. Кроме того, новая спецификация дает возможность организации передачи информации через сеть интернет.

Инструментарий

[править | править код]

Чаще всего для создания приложений с поддержкой OPC используют языки программирования Delphi, C++, C# или Visual Basic. Возможно использования языка Python.

Уровни управления

[править | править код]

Исходя из области применения OPC-серверов в АСУ предприятия различают несколько уровней управления:

  • Нижний уровень — полевые шины (fieldbus) и отдельные контроллеры;
  • Средний уровень — цеховые сети;
  • Уровень АСУ ТП — уровень работы систем типа SCADA;
  • Уровень АСУП — уровень приложений управления ресурсами предприятия.

Каждый из этих уровней может обслуживаться OPC-сервером, поставляя данные OPC-клиенту на более высоком уровне или даже «соседу».

Возможные области применения OPC-серверов в АСУ предприятия

[править | править код]

Если в системе есть оборудование, например плата АЦП, управляемая через драйвер в операционной системе Windows или другой ОС, которая поддерживает COM/DCOM, то это наиболее подходящий кандидат для реализации OPC-сервера поверх драйвера.

Замена устройства не требует изменения остальных приложений: OPC-сервер модифицируется, но сам OPC-интерфейс поверх него остается прежним.

Если устройство управляется через какой-либо сетевой протокол, то вполне возможно реализовать OPC-сервер, получающий данные по этому протоколу. Единственное, что нужно предусмотреть - механизмы восстановления связи в случае сбоев.

Более сложная схема будет при работе управляющих приложений на компьютере, который не поддерживает COM/DCOM. В этом случае можно использовать двухкомпонентный OPC-сервер. На стороне ОС, не поддерживающей COM, устанавливается сетевой модуль, который связан с приложением (ями) с одной стороны и через сеть с OPC-сервером - с другой. Заметим, что сетевой модуль может быть стандартным, например, ISaNet в системе ISaGRAF. В этом случае нужно будет разработать только OPC-сервер. Иногда сетевой модуль создается специально для OPC-сервера. Возможна даже реализация, при которой этот модуль не ориентирован на конкретное приложение, а предоставляет API-интерфейс для любых приложений, желающих обслуживаться с помощью OPC. Так работает OPC-сервер для операционной системы OS-9.

Еще одна разновидность OPC-сервера - шлюз к сети полевой шины, такой как Profibus или LonWorks. Реализация этой схемы очень похожа на предыдущие случаи. Скорее всего, на компьютере с операционной системой Windows будет установлен адаптер полевой шины, а OPC-сервер будет взаимодействовать с этой сетью через драйвер адаптера. В интернете можно найти множество примеров подобных решений.

Идея подобной схемы достаточно очевидна. Сеть полевой шины работает в жестком реальном времени, а OPC предоставляет менее требовательный шлюз к этой сети из приложений более высокого уровня.

Можно назвать много других мест применения OPC: для работы с базами данных в качестве вспомогательных или промежуточных OPC-серверов и т.д. Технология DCOM не очень подходит для глобальных сетей. Поэтому для привлечения OPC-технологии к интернет-технологиям возможен такой путь: расширение веб-сервера является OPC-клиентом, собирающим данные от OPC-серверов. А на стороне клиентов запускается динамическая HTML- или XML-страница, получающая данные от этого веб-сервера. Она может быть даже OPC-сервером для других приложений.

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

Замена устройства не потребует изменения остальных приложений: OPC-сервер изменяется, но сам OPC-интерфейс поверх него остается прежним.

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

Несколько более сложной будет схема при работе управляющих приложений на компьютере, не поддерживающем COM/DCOM. В этом случае применим двухкомпонентный OPC-сервер. На стороне ОС, не поддерживающей COM, устанавливается сетевой модуль, который, с одной стороны, связан с приложением (ями), а с другой — через сеть с OPC-сервером. Заметим, что сетевой модуль может быть стандартным, как, например, ISaNet в системе ISaGRAF. В этом случае необходимо разработать только OPC-сервер. Иногда сетевой модуль создаётся специально для OPC-сервера. Возможна даже реализация, при которой этот модуль не ориентирован на конкретное приложение, а предоставляет некоторый API-интерфейс для любых приложений, желающих обслуживаться с помощью OPC. Так действует OPC-сервер для операционной системы OS-9.

Ещё одна разновидность OPC-сервера — шлюз к сети полевой шины, такой, как Profibus или LonWorks. Реализация этой схемы очень похожа на предыдущие случаи. Скорее всего, на компьютере с ОС Windows будет установлен адаптер fieldbus-сети, а OPC-сервер будет взаимодействовать с этой сетью через драйвер адаптера. В интернете можно найти немало таких примеров.

Идея подобной схемы достаточно очевидна. Сеть полевой шины работает в жестком реальном времени, а OPC предоставляет менее требовательный шлюз к этой сети из приложений более высокого уровня.

Можно назвать много других мест применения OPC: для работы с базами данных в качестве вспомогательных или промежуточных OPC-серверов и т. д. Технология DCOM не очень пригодна для глобальных сетей. Поэтому для привлечения к OPC-технологии интернет-технологий возможен такой путь: расширение Web-сервера является OPC-клиентом, собирающим данные от OPC-серверов. А на стороне клиентов запускается динамическая HTML- или XML-страница, получающая данные от этого Web-сервера. Её можно сделать даже OPC-сервером для других приложений.

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

Состояние дел

[править | править код]

В настоящее время общепризнанным стандартом является только спецификации OPC DA и OPC HDA, а остальные спецификации только начинают завоевывать популярность. Не все спецификации завершены, по крайней мере, с точки зрения интерфейса автоматизации (например, для ОРС-Batch уже существует версия 2.0 custom-интерфейса, и только 1.0 — для интерфейса автоматизации. Для некоторых других спецификаций тоже существует отставание интерфейсов автоматизации от custom-интерфейсов).

Соответственно широкое распространение получил лишь стандарт OPC DA. Можно сказать, что сейчас действительно очень многие производители снабжают свои продукты OPC DA серверами. В последние годы активно развивается стандарт OPC HDA. Чего нельзя сказать о других спецификациях.

Среди программ высокого уровня аналогичная картина. Спросом пользуется лишь OPC DA.

Из операционных систем технологию COM/DCOM поддерживают следующие:

  • ОС Windows, начиная с Windows 95 (с установленным компонентом DCOM) и до Windows 2000. Начиная с Windows XP модель DCOM поддерживается только для целей обеспечения совместимости;
  • Большинство Unix-подобных ОС, включая Linux; поддерживается фирмой GE Software;
  • ОС реального времени QNX; мост OPC реализуется при помощи решения OPC Data-Hub компании Cogent;
  • ОС реального времени VxWorks; обеспечивается фирмой-разработчиком WindRiver; имеется поддержка OPC, встроенная в систему разработки Tornado.

В других распространенных операционных системах поддержки COM/DCOM нет.

Перспективы

[править | править код]

Довольно много оборудования и ПО не охвачено OPC-технологиями. С другой стороны корпорация Microsoft больше не развивает COM/DCOM, который заменяется более современными технологиями, например .NET.

Организация OPC Foundation своей политикой сдерживает развитие стандарта. Документация с описанием интерфейсов доступна только членам данной организации. Членство стоит от нескольких тысяч долларов, что недоступно не только для разработчиков-одиночек, но даже для многих организаций. Этим и объясняется популярность OPC DA, документация по данному интерфейсу долгое время была доступна свободно. Как результат многие фирмы, не желающие связываться с довольно капризной технологией, имеющие в штате хороших программистов нижнего уровня и работающие с ограниченной номенклатурой контроллеров используют для своих SCADA-пакетов технологию CORBA.

Заключение

[править | править код]

Технология OPC предлагает стандарты для обмена технологическими данными, в которые заложены определенные возможности. Авторитет вовлеченных в данную деятельность фирм серьёзно сказывается на развитии OPC. Однако процесс становления еще далеко не завершён и есть много проблем, которые предстоит решить.

Примечания

[править | править код]
  1. What is OPC? (Eng). Дата обращения: 11 июля 2017. Архивировано 4 июля 2017 года.
  2. Memorandum, Wisner to Stevens, Consideration of OPC Responsibility in the Field of Escape and Evasion, October 24, 1950, Top Secret. Cold War Intelligence. Дата обращения: 5 апреля 2022.