OPCGate - Открытый и бесплатный OPC сервер


OPCGate - открытое (open source) программное обеспечение, представляющее собой OPC-шлюз, позволяющий простейшим путем добавить функциональность OPC DA сервера к разработанной Вами программе, например, для передачи данных в SCADA систему. При этом, в качестве бонуса, Вы получаете возможность передачи информации по сети с использованием защищенного SSL протокола, что позволяет "подтащить" OPC сервер непосредственно на машину, где будет выполняться клиентское программное обеспечение, избежав при этом использования капризного в настройках и небезопасного DCOM.


Новости сайта


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

22.06.2014 New!
В библиотеке OPCClient переработана обработка ошибок (огромная благодарность Леониду Павловичу Лебедеву). Соответственно, обновились и зависящие от нее компоненты проекта. На странице Загрузки выложена различная документация по OPC.


Оглавление



Как это работает


Принцип работы понятен из рисунка ниже. Вы подключаете к своему приложению (на рисунке Application) библиотеку OPCGate.lib и наследуете абстрактный класс TOPCGate, реализуя при этом три метода, являющиеся в базовом классе чистыми виртуальными функциями. Кроме того, при изменении данных, обеспечиваете вызов соответствующего метода базового класса. Все остальные задачи по организации связи и взаимодействию с OPC клиентами берут на себя библиотека OPCGate.lib и приложение OPCGate.exe, включающее в себя OPC DA сервер.

Как это работает

В начало страницы

Преимущества и недостатки предлагаемого решения


Преимущества предлагаемого подхода

  • Предельная простота использования. Вам нужно написать всего 3 функции, манипулирующие строковыми объектами.
  • Вместо капризного в настройке и небезопасного DCOM используется только COM, а все сетевые взаимодействия перекладываются на SSL.
  • Открытая Open Source реализация позволяет, в случае необходимости, расширить функциональность в нужном Вам направлении.
  • Все компоненты, входящие в проект, распространяются бесплатно под открытыми лицензиями.
  • Вы сохраняете полный контроль над запуском и остановкой своего приложения. Через механизмы COM и DCOM будет запускаться только OPCGate.exe. Это может быть особенно актуально, если Ваше приложение, помимо предоставления данных по OPC, должно выполнять и другие задачи, например архивирование в базу данных. Так же полностью исключен самопроизвольный одновременный запуск нескольких экземпляров приложения, что может быть крайне нежелательно при использовании неразделяемых ресурсов операционной системы, таких, как COM порты и слушающие сокеты.
  • Разнесение компонентов на отдельное приложение OPCGate.exe и библиотеку OPCGate.lib позволило выпустить библиотеку под более либеральной лицензией MIT, распространив действие более строгой лицензии LGPL только на приложение. Подробней см. условия распространения и использования.

Естественно, помимо преимуществ, предлагаемый подход обладает и рядом недостатков.

  • Как и любая промежуточная прослойка, использование промежеточного приложения-шлюза снижает быстродействие.
  • В текущей версии реализованы OPC тэги только на чтение. Это не является принципиальным ограничением решения, а определялось моими потребностями на момент создания проекта.
  • Поскольку все писалось на Borland C++ Builder 6, то и использование ориентировано в первую очередь на работу с данной среды разработки. При переносе на другие компиляторы, часть проекта, являющуюся библиотекой, линкуемой с пользовательским приложением, придется кардинально переделывать.
В начало страницы

Совместимость с различными версиями Microsoft Windows


Программа OPCGate.exe совместима со следующими версиями Microsoft Windows:

  • Microsoft Windows 2000 SP4 1
  • Microsoft Windows XP
  • Microsoft Windows Server 2003
  • Microsoft Windows Wista 2
  • Microsoft Windows 7 2

1 - это если Вы умудритесь туда поставить OPC Core Redistributable Components
2 - для регистрации OPC сервера необходим запуск от имени администратора

В начало страницы

Совместимость с OPC клиентами


OPC сервер, входящий в состав OPCGate.exe соответствует спецификации OPC DA 2.05. Так как референсный тестовый OPC клиент доступен на сайте opcfoundation.org только членам данной массонской ложи, то совместимость проверялась с наиболее популярными OPC клиентами (популярность определялась простотой поиска в сети). При этом оценивалась работоспособность подключения как на локальной машине (COM), так и при работе по сети (DCOM). Перечень протестированных клиентов:

  • Matricon OPC Explorer
  • Integration Objects OPC Data Access Explorer
  • Iconics OPC DataSpy
  • OPC Training Institute OPC Expert
  • Prosys OPC Test Client
  • Kepware OPC Quick Client
  • Terravic Corporation Visual OPCTest Client 1
  • SIMATIC OPC Scout (v2.3) 1,2

1 - данному клиенту не удалось подключиться по DCOM без настроек параметров безопасности и прочих танцев с бубном. Впрочем, предлагаемое решение всегда позволяет "подтащить" сервер непосредственно не машину, где будет выполняться клиентское программное обеспечение, а настройки DCOM и прочие высокохудожественные извращения оставить для истинных поклонников данного жанра искуства.
2 - где-то в недрах сайта Siemens мне попадались рекомендации по настройке DCOM, причем в виде трех различных документов для разных версий Windows, однако, хочу предостеречь - когда-то давно воспользовался рекомендациями данной фирмы для подключения ProTool по OPC через DCOM - в результате на нескольких рабочих серверах пропал доступ к настройкам сетевых подключений. Восстановить удалось, но как - уже не помню.

В начало страницы

Условия распространения и использования


Приложение OPCGate.exe распространяется под лицензией LGPL v.2, так как этого требует статическая линковка с библиотекой LightOPC, распространяющейся под данной лицензией. Текст лицензии (англ.) (русский перевод ANSI UTF-8)

Библиотека OPCGate.lib распространяется под лицензией MIT, что позволяет использовать ее как в открытом программном обеспечении, так и в коммерческом, без необходимости раскрытия исходных кодов последнего. Текст лицензии (англ.) (русский перевод ANSI UTF-8)

Остальные компоненты проекта распространяются под различными открытыми лицензиями. Более подробно смотрите в комментариях к исходным кодам.

В начало страницы

История


В данный раздел будут перемещаться записи из раздела «Новости сайта», когда они перестанут быть новостями.

июль - август 2013
Проект OPCGate появился на свет. Создан сайт проекта.

19.05.2014
Как сам проект, так и сайт основательно переделаны.

В начало страницы