У меня все очень просто, и я пытаюсь создать лучшую систему на Java. Однако я продолжаю получать исключение с сообщением status=Bad_ConnectionClosed
каждый раз, когда пытаюсь что-либо сделать с сервером. Существующий скрипт Python, используемый для установления соединения и получения значения, выглядит следующим образом:
Код: Выделить всё
from opcua import Client, ua
opcClient = Client("opc.tcp://localhost:54321")
opcClient.connect;
valueNode = opcClient.get_node("ns=1;s=measure.value")
Моя попытка подключение происходит следующим образом:
Код: Выделить всё
OpcUaClient opcUaClient = new OpcUaClient(OpcUaClientConfig.builder().setEndpointUrl("opc.tcp://localhost:54321").build()).connect().get();
После дальнейшего исследования я нашел пример клиента в цифровом формате. страница Petris на GitHub,
https://github.com/kevinherron/ua-clien ... dk/client/ OpcUaClientIT.java
После получения необходимых значений конфигурации с помощью сценария Python я смог воспроизвести часть, связанную с подключением клиента к серверу:
Код: Выделить всё
EndpointDescription[] endpoints = UaTcpStackClient.getEndpoints("opc.tcp://localhost:54321").get();
EndpointDescription endpoint = Arrays.stream(endpoints)
.filter(e -> e.getSecurityPolicyUri().equals(SecurityPolicy.None.getSecurityPolicyUri()))
.findFirst().orElseThrow(() -> new Exception("no desired endpoints returned"));
OpcUaClientConfig clientConfig = OpcUaClientConfig.builder()
.setApplicationName(LocalizedText.english("Pure Python Client"))
.setApplicationUri("urn:freeopcua:client")
.setEndpoint(endpoint)
.setRequestTimeout(uint(60000))
.build();
OpcUaClient client = new OpcUaClient(clientConfig);
Я пробовал добавить /discovery в конце URL-адреса (как рекомендуется).
Сертификат отсутствует система установлена и ожидается анонимный вход в систему.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ital-petri