Использование Azure IoT Edge и OPC UA без ускорителя решений Connected Factory - PullRequest
0 голосов
/ 14 февраля 2019

Прежде всего, я хочу задать свой вопрос и более подробно остановиться на этом посте:

Можно ли использовать пограничный шлюз IoT Azure для серверов OPC UA без ускорителя решения Connected Factory икак это делается?

Я знаю, это может звучать странно, но решение Connected Factory не удовлетворяет моим потребностям в большинстве аспектов моего проекта, за исключением возможности подключения серверов OPC UA.

Теперь, чтобы уточнить это дальше, мне нужно набросать свой проект.В моей локальной сети установлено несколько серверов OPC UA и компьютер под управлением Windows 10, работающий в качестве шлюза Azure.В Azure есть активированные ресурсы IoT-Hub и Time Series Insights.Кроме того, есть веб-приложение, которое извлекает данные из TSI и визуализирует их.При использовании OPC издателя на шлюзе это работает просто отлично.И OPC, и издатель, и прокси-сервер работают в Windows, а не в контейнере Docker.

Если я использую ускоритель решений Connected Factory, я могу добавить и просмотреть издателя.Однако я не могу подключиться к любому другому серверу OPC UA в сети, но это не проблема, так как я все равно не буду использовать Connected Factory.Настоящая проблема здесь заключается в том, как подключиться к прокси-серверу OPC без ускорителя решения Connected Factory.

В доступном учебном пособии используется ускоритель решения Connected Factory, и в док-контейнере работают как издатель, так и прокси-сервер.(https://docs.microsoft.com/de-de/azure/iot-accelerators/iot-accelerators-connected-factory-gateway-deployment и далее)

И хранилище прокси-сервера github OPC вообще не обсуждает это.(https://github.com/Azure/iot-edge-opc-proxy)

Даже вопросы по всем соответствующим проектам не обсуждают это. (https://github.com/Azure/iotedge, https://github.com/Azure/iot-edge-opc-proxy)

Я понятия не имею, как реализовать эту функцию.Обзор архитектуры ускорителя решения (https://docs.microsoft.com/de-de/azure/iot-accelerators/iot-accelerators-connected-factory-sample-walkthrough) кратко упоминает, как это работает в ускорителе решения, но не объясняет, как реализовать OPC Proxy и стек OPC UA в пользовательском веб-приложении.

I'mотчаянно нуждающийся в помощи и был бы признателен, если бы кто-нибудь дал мне подсказку о том, как решить эту проблему. Я с удовольствием предоставлю больше информации, если это необходимо. И, конечно, я опубликую решение, если я получу это на работу.

Заранее спасибо и хорошего дня

Даниил

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Чтобы ответить на ваш первый вопрос: Да, вы можете использовать OPC UA Publisher в Azure IoT Edge без использования решения Connected Factory!

См. Здесь, как настроить издателя: https://github.com/Azure/iot-edge-opc-publisher#using-it-as-a-module-in-azure-iot-edge

Модуль отправит ваши данные в формате OPC UA-JSON в IoT Hub.Оттуда вы можете делать с ней все что угодно.Отобразите его в Azure Time Series Insights, выполните его через некоторую потоковую обработку (например, Azure Stream Analytics), обработайте его с помощью функций Azure и т. Д. Стр.

0 голосов
/ 15 февраля 2019

Обратите внимание на следующие строки в файле OpcSessionHelper.cs, это приводит к переносу прокси-сервера в стек OPC UA, используемый в WebApp:

#if !DIRECT_TCP_CONNECT
    // initialize our custom transport via the proxy
    Socket.Provider = new DefaultProvider(ConfigurationProvider.GetConfigurationSettingValue("IotHubOwnerConnectionString"));
    WcfChannelBase.g_CustomTransportChannel = new ProxyTransportChannelFactory();
#endif

После этого поверхность API OPC использует прокси-транспортреализовано в пакетах nuget Microsoft.Azure.Devices.Proxy и Microsoft.Azure.Devices.Proxy.Opc.Ua

BrwoserController.cs - это основное место, где в веб-приложении используется API OPC UA.

Вы также можете посмотреть на этот , который заменит функциональность OPC Proxy.

...