Как зарегистрировать opc сервер в windows 10

Обновлено: 06.07.2024

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

Это вторая версия статьи. Первая версия писалась в спешке и не отражала полной настройки системы. В этом материале исправлены ошибки прошлого. В любом случае, пишите комментарии, задавайте вопросы 🙂

Общий план работ

Чтобы настройка не была головной болью, нужно соблюдать определенную последовательность действий.

Введение

У меня есть отдельные требования для настройки:

  • доступ к OPC-серверу будет осуществляться по логину и паролю
  • доступ будет осуществляться только к тому OPC-серверу, который мы укажем

Вариант где все для всех разрешено описывать не буду.

Проверка OPC локально

Для проверки я запустил OPC-клиент, подключился к предварительно настроенному OPC-серверу на сервере. После того как есть 100%-ая уверенность в работоспособности OPC-сервера локально можно приступать к настройке DCOM.

Отключение брандмауэра

Настройка пользователей

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

Внимание! Эти действия необходимо провести как на сервере, так и на клиенте.

Настройка DCOM

Настройка OpcEnum для работы через DCOM

Служба OpcEnum отвечает за отображение OPC-серверов. Если ее настроить некорректно, то при браузинге серверов, вы не увидите ничего, кроме ошибок. Эту службу нужно настроить на сервере.

Настройка целевого OPC-сервера для работы через DCOM

Итак, мы вплотную подобрались к настройке ПО, которое будет выдавать нам теги на клиенте. Настройка не сильно отличается от процедуры, описанной в предыдущем разделе.

Включение брандмауэра и создание правил

Конечно же, нельзя забывать об отключенной в самом начале защите. Но если включить фаервол без предварительно созданных правил, то клиент не сможет достучаться до сервера. Я рассматриваю брандмауэр Windows, т.к. он идет по умолчанию и есть у всех, кто настраивает DCOM. Опытный пользователь без труда настроит другое ПО по аналогии. Подробно текстом описывать не буду (скриншоты смотрите ниже), но вот необходимые правила:

  1. Разрешение на доступ извне для службы OpcEnum.
  2. Разрешение на доступ извне по 135-му TCP-порту.
  3. Разрешение на доступ извне для CoDeSysOCPDA.

Рекомендую следующую последовательность действий:

  1. Включить брандмауэр.
  2. Убедиться, что данные не проходят.
  3. Создать правила.
  4. Убедиться, что данные проходят.

Вот и все. Как видите, ничего сложного в пробросе OPC-тегов через DCOM нет. Самое главное, чтобы были необходимые права на выполнение всех манипуляций. Для настройки OPC-сервер в Windows XP воспользуйтесь этой статьей.

Настройка ПК с ОРС-сервером

Настройка DCOM на уровне компьютера

Dcomcnfg.jpg

"Свойства по умолчанию". Выставляем, как показано на рисунке

Свойства по умолчанию.jpg

Безопасность COM.jpg

В разделе "Разрешение на запуск и активацию" нажать "Изменить ограничения".

Сохранить ограничения.jpg

Добавить.jpg

Дополнительно.jpg

Поиск.jpg

Пользователи DCOM.jpg

Права Пользователей DCOM.jpg

Разрешение на запуск и активацию(Win10).jpg

Настройка пользователей Server и Scada.

Пользователь Server

1. Открываем "Управление компьютером", Открываем вкладку "Служебные программы - Локальные пользователи и группы - Пользователи". Добавляем пользователя Server.

2. Галочки расставляем, как на рисунке. Пароль - 0000 (или свой).

Sever.jpg

3. Добавляем пользователя "Server" в группу "Администраторы". Остальные группы у пользователя удаляем.

Server- Администратор.jpg

5. Открываем вкладку "Локальные политики - Назначение прав пользователя".

Локальная политика безопасности Server.jpg

Пользователь Scada

  1. Открываем "Локальные пользователи и группы"
  2. Добавляем пользователя Scada, галочки и пароль - аналогично,как пользователю Server.
  3. Добавляем его в группу "Пользователи DCOM", отальные группы удаляем.
  4. В локальной политике безопасности запрещаем этому пользователю локальный вход.

Права DCOM компонентам OpcEnum и Tekon OPC Server

Настройка OpcEnum

OpcEnum Проверка поддлинности.jpg

OpcEnum Безопасность.jpg

Настройка Tekon OPC Server

  1. Ищем в окне компонентов Tekon OPC Data Access Server (version 3.4)
  2. Наживаем правой кнопкой мыши - "Свойства"

Свойства по умолчаниюOPCTekon.jpg

Уровень проверки подлинностиTekonopc.jpg

Безопасность Tekonopc.jpg

Удостоверение OPC.jpg

Настройка брандмауэра Windows

Замечание относительно версий АСУД.SCADA до 2.8.0

При настройке АСУД Scada версии до версии 2.8.0, на ПК с OPC-сервером дополнительно к указанным действиям должен быть создан:

Обычно, на Пультах-ПК - это пользователи:

Настройка ПК со Scada

Настройка пользователей и предоставление прав

Sever.jpg

Запретить локальный вход Sever.jpg

Настройка Брандмауэра Windows

ASUD Scada и ОРС-сервер установлены на одном ПК

Если программа SCADA и орс-сервер уcтановлены на одном ПК, то можно не использвать дополнительные настройки DCOM.

Локалдьное подключение.jpg

Если конфигурация более сложная, например Scada и ОРС-сервер установлены на разных ПК, то рекомендуется настраивать ПК, как описано выше в пунктах 2 и 3.

При регистрации ОРС-сервера в SCADA следует использовать учетные данные пользователя scada, созданного на ПК с сервером:

Удалённое подключение.jpg

DCOM Access Assistant

Данный мастер создает необходимых для работы системы Пользователей, а так же настраивает:

Вы можете применять данную программу для конфигураций:

Утилита должна быть запущена последовательно на каждом из ПК. Перед запуском у вас уже должно быть установлено ПО АСУД.SCADA

После первого запуска утилита просканирует конфигурацию АСУД и оторазит текущую версию установленного программного обеспечения.

Dcom aa.jpg

Далее есть два варинта настройки:

  • Лайт вариант - упрощенный, для наших ПК с пользователями adminscada, dispather
  • Полноценный вариант - с выбор специального пользователя для подключения SCADA - ОРС.Сервер
    (как описано в инструкции выше)

Замечание!
При настройке версий до 2.8.0 см. замечание указанное в статье выше.

Dcom aa.jpg

Если вы хотите выполнить полноценную "безопасную" настройку подключения согласно инструкции (выше), следует выбирать пользователя server, scada c блокировкой локального входа для этих пользователей и отказом доступа по сети.

DCOM ошибки и их решения

В данном разделе описаны типовые ошибки, причины их возникновния и способы их решения.

На днях пришлось крепко повозиться с настройкой вызова удалённого сервера по протоколу OPC DA 2.05a, и эта информация бы очень пригодилась, знай я её заранее.

1. Что такое OPC DA и в частности OPC DA 2.05a

В общем случае OPC — это набор открытых протоколов, регламентирующих взаимодействие между собой различных объектов автоматизации, таких как SCADA-системы, к примеру. OPC DA (Data Access) — это один из таких протоколов, он обеспечивает обмен данными с устройствами или программными компонентами. В моем случае по этому протоколу нужно было периодически забирать данные со SCADA-системы. И самое важное — OPC DA работает на базе технологии COM, так что взаимодействие с OPC сервером по сути сводится к взаимодействию с COM сервером.

2. Какие есть библиотеки

Бинарники от Opc Foundation
Компоненты от Advasol

Платные компоненты (причем весьма дорогие). Скачал я Evaluation версию — инсталлятор, который потребовал пароль (!), ну а пароль пришел по почте. Самое полезное в этом наборе компонент — тестовые клиенты для OPC — winforms приложения, позволяющие попробовать приконнектиться и посмотреть, что есть внутри OPC сервера. Сами библиотеки я не смотрел, они обфусцированы и в них заложено ограничение по времени — полчаса, потом программу надо перезапускать. Но с тестовым клиентом возился долго, так как система у меня была 64битная, а сборка тестового клиента, как оказалось, собрана под Target Platform = AnyCPU, и в 32битной винде запускалась как 32битное приложение (и все работало как надо), а в 64битной — как 64битное. Что приводило к ошибке в коде COM-интеропа вида «CLSID is not registered». А я думал, что у меня что-то неправильно настроено и 2 дня убил на копания в secpol.msc, dcomcnfg и compmgmt.msc. По счастливой случайности догадался запустить клиент с другой тачки и все стало ясно. С помощью ILDASM и Hex-редактора определил смещение флага TargetPlatform (от начала CLR Header), добавил туда второй бит 32BITREQUIRED и все заработало. Вывод — если у вас не работает COM Interop, первым делом проверьте соответствие платформы. К слову, клиент тоже был обфусцирован (с помощью SmartAssembly), и его CLR Header был расположен в конце.

Библиотека OPCDOTNET

3. Можно ли написать код без использования библиотек

В принципе, ничего сложного в этом нет, если вы имели опыт взаимодействия с COM/DCOM приложениями. А тем, кто как и я, не особо разбирается в этих технологиях, могу порекомендовать писать код, поглядывая на декомпилированные исходники библиотеки от OPC Foundation. По сути, для взаимодействия с OPC сервером достаточно всего лишь сделать интеропы на необходимые интерфейсы, получить их и дергать методы.

4. Проблемы

— Тестовый клиент не подключается с ошибкой RPC сервер недоступен — проверьте доступность портов, порта номер 135 как минимум (основной порт DCOM).

— Access Denied — придется повозиться с настройкой как сервера, так и клиента. См. ссылки внизу

— CLSID is not registered — проверьте, установлен ли у вас Core Components, возможно их не хватает. Либо проверьте Target Platform сборки, осуществляющей интероп. Может быть, там AnyCPU а должно быть x86.

— CoCreateInstanceEx возвращает валидный COM объект, но при касте его к COM интерфейсам вываливается Access Denied (0x80070001). С этой проблемой я возился полдня. Эта штука происходит, когда для доступа к серверу необходимо указать юзера и пароль. Вы вызываете CoCreateInstanceEx, заполнив перед этим SERVER_INFO, и вам приходит ссылка на объект. Однако следующие вызовы QueryInterface не сохраняют параметров доступа, которые вы указали при получении объекта, и это приводит к Access Denied. Решение — вызвать магическую функцию CoInitializeSecurity, которая установит дефолтные параметры безопасности для COM-вызовов. Код:

При вызове этой функции может случиться ошибка RPC_E_TOO_LATE. Эта ошибка возникает обычно из-за хост-процесса Visual Studio, который неявно вызывает CoInitializeSecurity при старте. Для решения проблемы достаточно отключить использование хост-процесса в настройках проекта.

5. Ссылки по теме

OPC Training Institute — сайт с множеством отлично оформленных статей, которые помогают в случае проблем. Например, как настроить DCOM, какие возможные причины ошибки RPC server is not available итд. Требует регистрации, регистрация бесплатна.

Туториалы по настройке DCOM — еще 1 хорошо оформленный туториал для настройки.

Для настройки прав доступа к DCOM-приложениям в операционных системах Windows XP, Windows Server 2003 и Windows Vista используется оснастка «Службы компонентов» (Component Services) консоли управления.

Оснастку можно вызвать:

  • из системного меню «Пуск/Выполнить» по команде dcomcnfg (рисунок 4.15)

Запуск утилиты

Рисунок 4.15 Запуск утилиты dcomcnfg

  • из системного меню «Пуск/Панель управления/Администрирование/Службы компонентов» (рисунок 4.16)

Системные инструментальные средства «Службы компонентов»

Рисунок 4.16 Системные инструментальные средства «Службы компонентов»

  • а также через консоль управления Microsoft – mmc.exe

После запуска появляется окно «Службы компонентов» (рисунок 4.17)

Оснастка «Службы компонентов»

Рисунок 4.17 Оснастка «Службы компонентов»

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

Настройка общих параметров DCOM

Для установления связи с удаленными OPC-серверами сначала следует настроить общие параметры DCOM. Для этого:

      На компьютере откройте оснастк у «Службы компонентов» и выберите раздел «Корень консоли/Службы компонентов/Компьютеры» («Console Root/Component Services/Computers»)
      Откройте контекстное меню элемента «Мой компьютер» («My Computer») и выберите пункт «Свойства» («Properties») – рисунок 4.18

Рисунок 4.18 - Контекстное меню «Мой компьютер»

Свойства компьютера, закладка «Безопасность COM»

Рисунок 4.19 - Свойства компьютера, закладка «Безопасность COM»

Кнопка «Изменить ограничения…» может быть не доступна, если была изменена политика «DCOM: Ограничения компьютера на доступ в синтаксисе SDDL (Security Descriptor Definition Language)». В этом случае пропустите текущий шаг.

Эти настройки необходимы для функционирования утилиты поиска OPC-серверов (OPCEnum.exe) и некоторых OPC-серверов, для которых «Уровень проверки подлинности» («Authentication Level») установлен «Нет» («None»).

Окно настройки «Разрешение на доступ»

Рисунок 4.20 - Окно настройки «Разрешение на доступ»

Этот шаг настройки необходимо выполнить как на компьютере, где установлен OPC-сервер, так и на компьютере, где установлен OPC-клиент. Остальные шаги выполняются на компьютере сервера.

  1. Нажмите на кнопку «Изменить ограничения…» на панели «Разрешения на запуск и активацию» (рисунок 4.19).. В открывшемся окне «Разрешение на запуск» нажмите кнопку «Добавить» и добавьте группу, «Users OPC» (описание в разделе 4.1 «Создание и настройка учетных записей Пользователей»). Для этой группы поставьте галочки «Разрешить» для всех вариантов запуска и активации (рисунок 4.21). Кнопка «Изменить ограничения…» может быть не доступна, если была изменена политика «DCOM: Ограничения компьютера на запуск в синтаксисе SDDL» («Security Descriptor Definition Language»). В этом случае пропустите текущий шаг. Если Пользователи группы должны получить только удаленный доступ к OPC-серверу, поставьте галочки «Разрешить» только для пунктов «Удаленный запуск» и «Удаленная активация».


Рисунок 4.21 - Окно настройки «Разрешение на запуск»

  1. Остальные общие параметры DCOM могут остаться по умолчанию. Если они были изменены, и это нарушило работу OPC-серверов, верните их в прежнее состояние. Список параметров по умолчанию приведен ниже:

Закладка «Свойства по умолчанию» (рисунок 4.22)

Значения по умолчанию:

    Установлена галочка «Разрешить использование DCOM на этом компьютере».
    § «Уровень проверки подлинности по умолчанию» – «Подключение».
    § «Уровень олицетворения по умолчанию» – «Идентификация».
    § Снята галочка «Повышенная безопасность для отслеживания ссылок».


Рисунок 4.22 — Свойства компьютера, закладка «Свойства по умолчанию»

Добавлены следующие протоколы DCOM:

      § «TCP/IP c ориентацией на подключения»
      § «SPX c ориентацией на подключения».


    Рисунок 4.23 - Свойства компьютера, закладка «Протоколы по умолчанию»

    Значения по умолчанию:

        § Установлена галочка «Проверять локальное хранилище при выборе раздела».
        § «Время ожидания транзакции (с)»: 60.

      При работе в компьютерной сети в случае возникновения обрывов, переполнения и других критических ситуациях при попытках восстановления связи DCOM-приложения используют время ожидания транзакции (Transaction timeout). Это время, в течение которого DCOM-приложение посылает запрос к источнику данных и ожидает восстановления связи. DCOM-приложение совершает до 6 таких попыток, прежде чем подаст сигнал об ошибке в сети.

      По умолчанию этот интервал равен 60 секундам. Соответственно, максимальное время, за которое DCOM-приложение определит, что сеть неисправна – 60*6 = 360 секунд или 6 минут.

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


      Рисунок 4.24 - Свойства компьютера, закладка «Параметры»

      GВнимание .

      Времени ожидания транзакции настраивается на компьютере сервера.

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

      4.1.2 Настройка параметров DCOM для OPC-сервера

      Настройки, описанные в этом пункте, производятся на компьютере, где установлен OPC-сервер.

      Для того чтобы настроить параметры DCOM для конкретного OPC-сервера, следует:

          1) В оснастке «Службы компонентов» выберите раздел «Корень консоли/Службы компонентов/Компьютеры/Мой компьютер/Настройка DCOM» («Console Root/Component Services/Computers/My Computer/DCOM Config»)
            2) Откройте контекстное меню нужного OPC-сервера (рисунок 4.25) и выберите пункт «Свойства» («Properties»)


          Рисунок 4.25 - Выбор свойств OPC-сервера

              3) В открывшемся окне «Свойства:…» перейдите на закладку «Безопасность» («Security»)
                4) На панели «Разрешения на запуск и активацию» выберите «Настроить» и нажмите на кнопку «Изменить …». В открывшемся окне «Разрешение на запуск» (рисунок 4.26) нажмите кнопку «Добавить» и добавьте группу «Users OPC» (описание в разделе 4.1 «Создание и настройка учетных записей Пользователей»)


              Рисунок 4.26 - Окно настройки «Разрешение на запуск» для OPC-сервера

              Для группы «Users OPC»поставьте галочки «Разрешить» для всех пунктов. Если Пользователи группы должны получить только удаленный доступ к OPC-серверу, поставьте галочки «Разрешить» только для пунктов «Удаленный запуск» и «Удаленная активация»

                  5) На панели «Права доступа» (закладка «Безопасность») выберите «Настроить» и нажмите на кнопку «Изменить …». В открывшемся окне «Разрешение на доступ» (рисунок 4.27) нажмите кнопку «Добавить» и добавьте группу «Users OPC» (описание в разделе 4.1 «Создание и настройка учетных записей Пользователей»)


                Рисунок 4.27 - Окно настройки «Разрешение на доступ» для OPC-сервера

                Для этой группы («Users OPC») поставьте галочки «Разрешить» для всех вариантов доступа.

                Если Пользователи группы должны получить только удаленный доступ к OPC-серверу, поставьте галочку «Разрешить» только для пункта «Удаленный доступ».

                    6) Для того, чтобы указать, под какой учетной записью будет запускаться OPC-сервер, перейдите на закладку «Удостоверение» (рисунок 4.28).


                  Рисунок 4.28 - Свойства OPC-сервера, закладка «Удостоверение»

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

                  Общие рекомендации по выбору Пользователя для запуска OPC-сервера приведены в таблице 4.1.

                  Таблица 4.1 Рекомендации по выбору Пользователя для запуска OPC-сервера

                  «Текущий Пользователь»

                  (The Interactive User)

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

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

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

                  «Запускающий Пользователь»

                  (The Launching User)

                  OPC-сервер будет запускаться под учетной записью запускающего Пользователя (обычно удаленного).

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

                  OPC-сервер не сможет напрямую взаимодействовать с интерактивным Пользователем. Т.е. Пользователь НЕ увидит открываемые OPC-сервером окна.

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

                  Рекомендуем использовать только в том случае, когда OPC-сервер требует для взаимодействия именно этот тип Пользователя (внимательно ознакомьтесь с документацией на ОРС-сервер).

                  «Указанный Пользователь»

                  OPC-сервер будет запускаться под учетной записью, указанной в поле «Пользователь» (User), которое становится доступно после активизации данного варианта загрузки.

                  OPC-сервер не сможет напрямую взаимодействовать с интерактивным Пользователем. Т.е. Пользователь НЕ увидит открываемые OPC-сервером окна.

                  Рекомендуется использовать данный тип Пользователя, если запускаемый OPC-сервер должен обладать специфическими правами доступа. Например, если требуется запустить OPC-сервер с правами Администратора, а ни текущий Пользователь, ни запускающий не принадлежат к группе «Администраторы».

                  Системная учетная запись

                  (The System Account)

                  Рекомендуется использовать данный тип Пользователя, если OPC-сервер является сервисом.

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

                  Если компьютеры в рабочей группе, и должен использоваться асинхронный опрос, то нужно создать на клиенте такую же учетную запись (описание в разделе 4.1.2 «Настройка компьютеров, находящихся в рабочей группе», шаг 3).

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

                      7) После выбора Пользователя для запуска OPC-сервера необходимо проверить, есть ли у него доступ к исполняемому файлу OPC-сервера.

                    Чтобы проверить разрешения на доступ к исполняемому файлу OPC-сервера, выполните следующую последовательность действий:

                    • Откройте контекстное меню для папки, в которой находится exe-файл OPC-сервера, и выберите пункт «Свойства» («Properties»).
                    • В открывшемся окне «Свойства:…» перейдите на закладку «Безопасность» (рисунок 4.29).


                    Рисунок 4.29 - Свойства папки, закладка «Безопасность»

                    • В списке «Группы или Пользователи» должен быть Пользователь, который используется для запуска OPC-сервера, или группа, в которую он включен.

                    Если Пользователь отсутствует, нажмите кнопку «Добавить» и добавьте требуемого Пользователя

                    Чтобы изменения были применены к OPC-серверу, его необходимо перезапустить (если он был запущен ранее).

                    Без перезапуска OPC-сервера измененные настройки не будут применены к нему.

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

                    • откройте Диспетчер задач Windows и перейдите на вкладку «Процессы»
                    • выберите процесс настраиваемого OPC-сервера и нажмите кнопку «Завершить процесс».

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

                    4.1.3 Настройка параметров DCOM для утилиты поиска OPC-серверов

                    Настройки парметров DCOM для утилиты OPCEnum.exe производятся только на компьютере, где установлены удаленные OPC-серверы.

                    При доступе к данным удаленного OPC-сервера используется стандартная OPC-утилита OPCEnum.exe, которая формирует список доступных ОРС–серверов.

                    Для использования этой утилиты необходимо настроить параметры DCOM.

                    Настройка разрешений осуществляется аналогично настройке OPC-серверов, описанной выше (раздел 4.4.2). Отличие заключается в том, что в списке приложений (компонент) необходимо выбирать OpcEnum (рисунок 4.30).


                    Рисунок 4.30 - Выбор свойств утилиты OPCEnum

                    4.2 Ограничение прав добавленных Пользователей

                    Рекомендуем проводить ограничение прав Пользователей после завершения настройки параметров DCOM для OPC-серверов.

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

                    Для ограничения прав Пользователей следует выполнить следующее:

                        1) Настройте права добавленного Пользователя (в нашем примере Пользователь «Mike»). В большинстве случаев они могут быть ограничены до минимума или вообще отсутствовать. Для ограничения прав можно удалить Пользователя из всех групп (кроме Пользователей OPC – «Users OPC») или добавить в группу с более низкими правами (рисунок 4.31).


                      Рисунок 4.31 - Удаление учетной записи Пользователя из группы «Пользователи»

                      Для нормального функционирования некоторых OPC-серверов требуются права администратора. В этом случае, а также в некоторых других, новую учётную запись Пользователя нужно добавить в группу «Администраторы» (

                      Просто о стандартах OPC DA и OPC UA

                      OPC (аббр. от англ. Open Platform Communications, ранее англ. OLE for Process Control) – это набор программных технологий, которые предоставляют единый интерфейс для управления различными устройствами и обмена данными. Спецификации OPC были разработаны международной некоммерческой организацией OPC Foundation, которую создали в 1994 году ведущие производители средств промышленной автоматизации. Целью создания OPC было предоставить инженерам универсальный интерфейс для управления различными устройствами.

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

                      Технология OPC включает несколько стандартов, которые описывают набор функций определенного назначения. Текущие стандарты:

                      Самое широкое распространение получил стандарт OPC DA, но у него есть существенный недостаток. Во времена его разработки он был построен на современных Windows-технологиях: OLE, ActiveX, COM/DCOM, но с тех пор в отрасли прошли изменения и большое распространение получили другие ОС и технологии. Поэтому технологию OPC сделали платформонезависимой и разработали стандарт OPC UA (Unified Architecture) на открытых кроссплатформенных технологиях.

                      Применение OPC

                      Обычно технологию OPC применяют для обмена данными между контроллерами и SCADA системой, но также возможна организация сложных систем на разных уровнях АСУ ТП.

                      OPC состоит из двух частей: OPC клиента и OPC сервера. ПО OPC сервера через драйверы устройств по полевым шинам опрашивает различные устройства. ПО OPC клиента обычно встроено в SCADA систему и предназначено для получения данных с OPC сервера.

                      На предприятии можно выделить несколько уровней АСУ:

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


                      Работа OPC DA сервера

                      OPC DA сервер обеспечивает обмен данными (запись и чтение) между клиентской программой (обычно SCADA системой) и конечными устройствами. Данные в OPC представляют собой переменную Тег с некоторыми свойствами. Переменная может быть любого типа, допустимого в OLE: различные целые и вещественные типы, логический тип, строковый, дата, массивом и т. д. Свойства могут быть обязательными, рекомендуемыми и пользовательскими.

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

                      Для чтения данных из ОРС сервера можно использовать различные режимы:

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

                      Примеры OPC DA сервера

                      Для примера возьмём SCADA систему Trace Mode 6, в которой реализована функция OPC DA сервера. Trace Mode 6 можно поставить на ПК, либо сразу на контроллер.

                      SCADA Trace Mode 6 может опрашивать различные модули ввода-вывода и управлять контроллерами по стандартным промышленным протоколам типа: Modbus, МЭК 60870-5-104, HART и другим. Но промышленные протоколы не предназначены для обмена данными между SCADA и ERP, MES системами. Тут придет на помощь стандарт OPC DA, который позволит собрать различные данные с исполнительных модулей SCADA. OPC DA сервер для получения данных с Trace Mode доступен как отдельный модуль, так и в составе модулей OPC МРВ+ или OPC ДокМРВ+.

                      Также Trace Mode 6 может выступать в качестве OPC клиента и получать данные с OPC DA серверов различных производителей. Например, есть видео урок подключения Trace Mode 6 к NAPOPC DA Server – это OPC DA сервер от компании ICP DAS.

                      NAPOPC DA Server – это бесплатный OPC DA сервер для опроса модулей ввода-вывода ICP DAS. Его можно установить на ПК, либо прямо контроллеры ICP DAS с ОС:

                      NAPOPC DA Server позволяет опрашивать модули: I-7000, M-7000, ET-7000, I-8K, I-87K и корзины RU-87Pn.

                      Стандарт OPC UA

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

                      Сильными сторонами OPC UA является объектно-ориентированная информационная модель, которая позволяет «просматривать» данные (в стиле web-браузера), и сервис ориентированная архитектура (SOA). Если раньше приходилось использовать несколько OPC серверов: OPC DA для данных в реальном времени, OPC HDA для истории и OPC AE для событий, то теперь все это и многое другое доступно в одном стандарте OPC UA. Вместо дерева тегов, теперь вводится понятие узлов или объектов. Каждый узел включает в себя переменные, методы и другие структуры данных реального объекта.



                      Реализована обратная совместимость с OPC DA через специальную оболочку (wrapper) и proxy-модуль. Для передачи данных через маршрутизаторы и межсетевые экраны OPC DA требовал использовать промежуточное ПО, OPC UA же работает без прослойки. Спецификация OPC UA включает в себя несколько частей, которые описывают логику работы серверов и клиентов. Детальная версия спецификации доступна в стандарте IEC 62541.

                      Пример OPC UA сервера

                      Примером OPC UA сервера может стать набор ПО MX-AOPC UA Suite от компании MOXA. В MX-AOPC UA Suite входит 3 программы:

                      В первую очередь MX-AOPC UA Server ориентирован на модули ввода-вывода MOXA, т.к. там реализована функция Active Tag, но также поддерживается подключение сторонних устройств по протоколам Modbus RTU и Modbus TCP. ФункцияActive Tagпозволяет обновлять состояние каналов сразу после их изменения, не дожидаясь команды со стороны сервера.

                      MX-AOPC UA Logger позволяет отправлять данные в Облако Microsoft Azure и базы данных Microsoft SQL Server, MySQL, Oracle, Microsoft Office 2003 Access или Excel через ODBC.

                      В MX-AOPC UA реализована защита данных через шифрование ключом Basic128Rsa15 и подтверждение сертификатом X509.

                      Минусы применения OPC

                      Конечно у любой хорошей технологии есть свои минусы. Например, разработчики SCADA Trace Mode 6 из компании АдАстра Рисерч Груп, выделяют типовые ошибки в проектировании АСУ ТП.

                      К ошибкам можно отнести:

                      Например, вы узнали о хорошей технологии OPC и стремитесь заменить все протоколы нижнего уровня только на OPC. Но конвертация промышленных протоколов Modbus, Profibus и любых других на ПК будет занимать дополнительное время и тратить ресурсы компьютера. Тесты показали, что SCADA система работает в 2 раза быстрее напрямую с промышленными протоколами, чем через промежуточный OPC сервер. Конечно, есть системы где процесс не нужно контролировать в реальном времени, но это нужно учитывать при проектировании АСУ ТП.

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

                      Если система отправляет данные через Интернет в Облако, то наличие слабого шифрования может стать потенциальной уязвимостью и целью для атак хакеров, что ставит под сомнение безопасность всей АСУ ТП.

                      OPC UA для работы в реальном времени


                      Технология Ethernet с TSN дополняет существующие средства Ethernet в том, что касается обеспечения качества обслуживания трафика (QoS), включая выделение полосы пропускания, синхронизацию, гарантию низких значений задержки и обеспечения резервирования. Данные, которые передают различные устройства по Ethernet сети, представляют собой потоки. Ethernet коммутаторы с TSN позволяют выделить для каждого потока свою полосу пропускания и обеспечить его передачу в реальном времени. Несколько потоков можно объединить (это называется сетевой конвергенцией) и организовать их передачу по одной сети в режиме реального времени. Получается без технологии TSN по одной Ethernet сети можно передавать только один протокол реального времени, а с TSN несколько.

                      Объединение технологий OPC UA over TSN позволяет организовать коммуникацию между оборудованием от разных производителей и гарантировать непрерывное получение данных в режиме реального времени.

                      OPC Foundation планирует использовать OPC UA не только для передачи данных между контроллерами и SCADA системой, но и на полевом уровне от датчиков и IoT устройств к контроллерам, а также от локальных систем в Облако. Для этого планируют разбить стандарт OPC UA на 4 части в зависимости от производительности устройства и необходимых ему возможностей.

                      Читайте также: