У нас есть более старый фрагмент кода VB .NET (Visual Studio 2013 Community Edition), который в настоящее время взаимодействует с ПЛК через UDP для очень элементарной передачи данных.
Сейчас нам нужна более тесная связь между ПЛК и ПК (ПК должен иметь возможность устанавливать множество параметров, а программа Labview может захотеть получить доступ к ПЛК напрямую), поэтому наш поставщик ПЛК (B&R) сказал, что OPC UA был путь идти.
Это похоже на вопрос, поставленный здесь:
клиентский SDK OPC-UA для разработки приложений C # .NET
На вводном семинаре по OPC UA мы получили скомпилированные версии клиента OPC UA, и если я запускаю симулятор ПЛК, клиент может подключиться к симулятору ПЛК. Конечно, он запрашивает имя и пароль, но появляется всплывающее окно, в котором говорится, что я пытаюсь подключиться, я получаю всплывающее окно для образца клиента UA, в котором говорится: «Сертификат не может быть проверен: BadCertificateUntrusted»
Хорошо, у меня нет сертификата. Вы щелкаете, и клиент продолжает движение вперед и показывает дерево всех элементов, которые были представлены OPC UA с помощью кода ПЛК. Все хорошо.
Теперь, если я загружу полный код с сайта opcfoundation.org, я могу скомпилировать код, но при прохождении той же тестовой последовательности, после подтверждения того, что у меня нет действующего сертификата, всплывает еще одно окно, в котором говорится:
ИСКЛЮЧЕНИЕ (ServiceResultException) BadCertificateHostNameInvalid РЕЗУЛЬТАТ СЛУЖБЫ (BadCertificateHostNameInvalid)
Это оба OPC UA 1.02, BTW.
Нужно ли что-то настраивать в другом месте? Я заметил, что есть несколько файлов XML (Opc.Ua.SampleClient.Config.xml и Opc.Ua.SampleClient.Endpoints.xml), и мне интересно, нужно ли их модифицировать, чтобы избавиться от этой остановки.
Я действительно помню, как читал, что что-то не будет совместимо с OPC UA, если вы автоматически разрешите этому быть в порядке (конечно), поэтому вы не можете просто сделать это автоматически, но это нормально для меня.
Недостатки использования кода OPC UA заключаются в том, что он немного глубокий (как отметил пользователь Брино в исходном сообщении StackOverflow) и требует, чтобы ваш собственный код был выпущен под GPL, поэтому Unified-Automation выглядит довольно заманчиво, поскольку мы можем не захотеть выпускать наш исходный код.
Есть мысли по поводу этой конкретной проблемы?