OPC UA (коннект к Овен Клауду)

Просмотр 11 сообщений - с 1 по 11 (из 11 всего)
  • Автор
    Сообщения
  • #17318
    Michael
    Участник

    Добрый день. Пытаюсь выполнить подключение к облачному серверу двумя вариантами:
    1. Пытаюсь подключиться напрямую к OwenCloud: cоздаю КП 1 «owencloud», тип OPC UA.
    Указываю адрес opc.tcp://api.owencloud.ru:4843 или opc.tcp://opc.owencloud.ru:4843, в настройках безопасности выбираю Подпись и шифрование, Basic256Sha256, demo@owen.ru, demo123.
    При попытке установления связи появляется сообщение об ошибке: «Error establishing a connection: Could not send an Open Secure Channel request».
    Перебор типов шифрования, логинов-паролей ничего не дает.
    При сохранении и закрытии окна этих настроек, при повторном открытии — не сохраняется имя пользователя.

    2. Те же настройки успешно работают в Multi-protocol MasterOPC Server Demo (компания Insat), теги с овенклауда читаются.
    Создаю КП 3 «insat» типа OPC, выбираю из выпадающего списка этот OPC-сервер. Вижу все теги, добавляю их в список каналов. (один раз они добавились вообще без вопросов, в другой раз он говорит, что не может распознать тип тега и предлагает массив).
    Но в любом случае, после загрузки конфигурации получить данные удалось только один раз за два дня. В остальное время рапидскада пишет, что состояние — либо ошибка, либо не определено.

    Можно как-то наладить подключение, желательно первым способом?

    2020-09-30 12:00:13 Сеанс связи с КП 3 «insat», тип: KpOpc
    Ошибка при соединении с OPC-сервером: E_NETWORK_ERROR
    Could not connect to server.

    2020-09-30 12:00:49 Сеанс связи с КП 1 «owencloud», тип: KpOpcUa
    Ошибка при соединении с OPC-сервером: System.AggregateException: Произошла одна или несколько ошибок. —> Opc.Ua.ServiceResultException: Error establishing a connection: Could not send an Open Secure Channel request.
    в Opc.Ua.Bindings.ChannelAsyncOperation`1.End(Int32 timeout, Boolean throwOnError)
    в Opc.Ua.Bindings.UaSCUaBinaryClientChannel.EndSendRequest(IAsyncResult result)
    в Opc.Ua.DiscoveryClient.GetEndpoints(RequestHeader requestHeader, String endpointUrl, StringCollection localeIds, StringCollection profileUris, EndpointDescriptionCollection& endpoints)
    в Opc.Ua.DiscoveryClient.GetEndpoints(StringCollection profileUris)
    в Opc.Ua.Client.CoreClientUtils.SelectEndpoint(String discoveryUrl, Boolean useSecurity, Int32 operationTimeout)
    в Scada.Comm.Devices.OpcUa.OpcUaHelper.<ConnectAsync>d__24.MoveNext()
    — Конец трассировки внутреннего стека исключений —
    в System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
    в System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
    в Scada.Comm.Devices.KpOpcUaLogic.ConnectToOpcServer()
    —> (Внутреннее исключение #0) Opc.Ua.ServiceResultException: Error establishing a connection: Could not send an Open Secure Channel request.
    в Opc.Ua.Bindings.ChannelAsyncOperation`1.End(Int32 timeout, Boolean throwOnError)
    в Opc.Ua.Bindings.UaSCUaBinaryClientChannel.EndSendRequest(IAsyncResult result)
    в Opc.Ua.DiscoveryClient.GetEndpoints(RequestHeader requestHeader, String endpointUrl, StringCollection localeIds, StringCollection profileUris, EndpointDescriptionCollection& endpoints)
    в Opc.Ua.DiscoveryClient.GetEndpoints(StringCollection profileUris)
    в Opc.Ua.Client.CoreClientUtils.SelectEndpoint(String discoveryUrl, Boolean useSecurity, Int32 operationTimeout)
    в Scada.Comm.Devices.OpcUa.OpcUaHelper.<ConnectAsync>d__24.MoveNext()<—

    #17319
    Mikhail
    Модератор

    Добрый день!
    Давайте постараемся добиться работы через OPC UA — 1-й вариант.
    Чтобы не «грешить» на драйвер KpOpcUa, который использует сторонние библиотеки для работы с OPC UA и работает от пользователя system, я использовал Prosys OPC UA Client.

    С указанными параметрами подключения выдаётся ошибка (нужно подождать некоторое время до её появления). Думаю, что нужно задать вопрос поддержке ОВЕН по этому поводу.

    А какой практический смысл в использовании облака ОВЕН и его последующей интеграции через OPC?

    #17322
    Michael
    Участник

    Спасибо за ответ, Михаил!
    Просис тоже не коннектится.
    Честно говоря, на другой машине (вин7 х86) даже инсатовский ОПС тоже не хочет коннектиться к ОвенКлауду (не находит вариант нужного шифрования)…
    А на этой — без проблем. И инсатовская Мастерскада тоже подключается напрямую (у нее есть встроенный OPC UA, как и у Рапидскады).

    Возможно, стоит искать по этому пути: https://github.com/OPCFoundation/UA-.NETStandard/issues/665

    Практический смысл следующий:
    есть необходимость мониторить объекты по стране. Самый простой способ собрать с них данные — недорогой эзернет-шлюз OwenCloud (нет проблем с IP-адресом, vpn и тд). Просто выставить в интернет.
    В скаде единственный источник данных — OwenCloud. В Мастерскаде это подключение не вызывает проблем. Там проблема с веб-клиентом, очень убогое решение. У Вашей скады все гораздо интереснее. Но к сожалению, проблемы с подключением…

    #17326
    Mikhail
    Модератор

    Думаю что причина может быть следующая на примере Prosys (источник):
    Our Client uses Discovery Services, for example Get Endpoints Service, when it’s connecting to an OPC UA Server. These Services belong to the OPC UA Core Server Facet and should be implemented by any OPC UA Server.

    То есть если OPC сервер не реализовал Discovery Services, то клиент, который их использует, не сможет подключиться к такому серверу. Для отечественных OPC серверов характерна частичная реализация стандартов. Задайте вопрос ОВЕНу на эту тему. Интересно, что они ответят.

    #17328
    Mikhail
    Модератор

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

    #17330
    Mikhail
    Модератор

    Хотя нет, эта утилита также выдаёт Could not send an Open Secure Channel request. Чтобы решить проблему, нужно производить отладку вместе с OPC-сервером.

    #17331
    Michael
    Участник

    Попробую, спасибо!

    Из описания одной скады:

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

    Возможно, что-то с обменом сертификатами и доступом к ним (в том числе по ссылке выше, права доступа к сертификатам), надо поизучать.

    • Этот ответ был изменен 3 года, 5 месяцев назад от Mikhail.
    #17334
    Mikhail
    Модератор

    Вероятно, сервер ОВЕН должен автоматически помещать сертификаты в список доверенных, иначе бы пришлось каждому пользователю к ним индивидуально обращаться.

    Рассмотрите варианты построения системы, которые не будут полностью зависеть от одного поставщика услуг, в данном случае ОВЕН. Например, многие производители промышленного сетевого оборудования предлагают шлюзы MQTT. При этом MQTT брокер легко разворачивается либо самостоятельно, либо подключается у основных облачных провайдеров, таких как Google, Amazon, Microsoft и Яндекс. Затем с помощью MQTT драйвера Rapid SCADA можно получить данные от брокера.

    P.S. Упоминание сторонних скада-систем я убрал из Вашего сообщения.

    #17337
    Michael
    Участник

    Спасибо, Михаил, за попытку помочь!
    Насчет MQTT обязательно посмотрю, как это работает, и самому пригодится (не только по работе).
    А по данной задаче есть техзадание, в котором некоторые условия жестко заданы, приходится их придерживаться и искать варианты решения с их использованием…

    #17338
    a80808
    Участник

    MQTT вполне работоспоспособен, в том числе и на Rapid SCADA. Только в отличие от того же OPC или ModBus все преобразования придется делать самому как и разбирать json (в этом формате в MQTT «лежат» данные). Если будете поднимать локальный брокер рекомендую Mosquitto — для относительно небольших (что значит численно «относительно небольших» сказать не могу — несколько десятков датчиков он прожевал влегкую), прос в установке и не требует вмешательств. Есть доступ по паролю.
    Ну и «смотреть» MQTT советую через MQTT.fx — бесплатная и удобная утилитка.
    ИМХО, никакой рекламы 🙂

    #17339
    manjey73
    Участник

    Michael посмотрите модемы и роутеры от Телеофиса с поддержкой м2м

    у них тоже нет проблем с IP адресом и т.д. развораичиваете у себе их сервер для связи в одной точке и все.

    А Овен клауд это такая ненавязчивая игла, которая кроме Modbus нихрена не умеет, да еще и через одно место это все делает…

Просмотр 11 сообщений - с 1 по 11 (из 11 всего)
  • Вы должны авторизироваться для ответа в этой теме.