Конфигурация сервера OPC UA (Milo)?

Я только что ознакомился с проектом Eclipse Milo (https://projects.eclipse.org/proposals/milo), который кажется отличным проектом для «открытого» клиента / сервера OPC UA даже с реализованным стеком OPC. Проект на github (https://github.com/eclipse/milo) содержит пример Hello World, где запускается OPC-сервер, а образец узла отправляется и принимается от клиента. Все отлично работает!

Но на следующем шаге я хотел проверить, правильно ли настроен сервер. Поэтому я установил Matrikon Explorer, но Explorer сообщает «На этом компьютере не установлены серверы OPC» сразу после запуска (в то время как пример hello world с работающим сервером OPC, конечно, работает).

Также проверено, распознает ли SAP Plant Connectivity сервер OPC (что является целью моего проекта) -> «Не обнаружен сервер OPC в вашей системе / локальном хосте»

В чем моя проблема, что мне нужно сделать, чтобы правильно установить и настроить Сервер?

Вот пример Hello World:

public static void main(String[] args) throws Exception {
    // Start server

    int port = 12686;
    String serverName = "test-server";
    OpcUaServerConfig serverConfig = OpcUaServerConfig.builder()
        .setBindPort(port)
        .setCertificateManager(new DefaultCertificateManager())
        .setCertificateValidator(new DefaultCertificateValidator(createTempDir()))
        .setServerName(serverName)
        .setUserTokenPolicies(singletonList(USER_TOKEN_POLICY_ANONYMOUS))
        .build();

    OpcUaServer server = new OpcUaServer(serverConfig);

    server.getNamespaceManager().registerAndAdd(
        "urn:eclipse:milo:opcua:test-namespace",
        idx -> new HelloNamespace());

    server.startup();

    while(true){
        System.out.println("server running");
    }
}

person Martin    schedule 08.08.2016    source источник


Ответы (1)


Matrikon Explorer является клиентом OPC-COM / DA и, вероятно, опрашивает службу OPC Enum, чтобы найти зарегистрированных клиентов COM.

OPC-UA - это совершенно другая технология, не зависящая от платформы. Концепция регистрации все еще существует, но по умолчанию она не является принудительной.

Попробуйте использовать для подключения клиент OPC-UA, например UaExpert. Учитывая скопированную вами конфигурацию, вам нужно указать UaExpert на URL-адрес конечной точки opc.tcp: // localhost: 12686 / test-server.

Я предполагаю, что возникнет проблема, когда вы подключитесь к частично реализованному пространству имен "hello world". Я позабочусь о том, чтобы на этой неделе мы получили полностью пригодный для использования пример пространства имен.

Вы также можете посмотреть класс интеграции OpcUaClientIT для различных клиентских функций и еще один пример настройки сервера.

person Kevin Herron    schedule 08.08.2016
comment
Спасибо за очень быстрый и полезный ответ. Как вы могли заметить, я в некотором роде новичок в архитектуре @OPC. Провел некоторое исследование относительно OPC-COM / DA по сравнению с OPC-UA сейчас .... - person Martin; 09.08.2016
comment
... Моя текущая проблема: я настроил OPC Server в качестве исходной системы в SAP Plannt Connectivity (он поддерживает общие системы opc ua в качестве исходных систем). Я настроил конечную точку сервера как opc.tcp: // localhost: 12686 / test-server. При тестировании соединения кажется, что сервер распознан, но он заявляет, что Сервер не вернул EndpointDescription, совпадающий с тем, который использовался для создания безопасного канала. Это проблема с моей конфигурацией сервера Milo или проблема, скорее, на стороне SAP? Знаете ли вы об этой ошибке или есть предложения по ее исправлению? - person Martin; 09.08.2016
comment
Подобные ошибки обычно можно исправить с обеих сторон. По сути, вы настроили свой пример для привязки к localhost, но SAP подключается через какой-то другой IP-адрес и замечает несоответствие. Иногда этого нельзя избежать, например, когда вы подключаетесь к удаленному серверу, где используемый внешний IP-адрес не является тем, к которому вы можете привязаться. В этом случае вы, вероятно, можете просто изменить конфигурацию Milo, включив дополнительные адреса для привязки. Вызов setBindAddresses при создании конфигурации сервера. - person Kevin Herron; 09.08.2016
comment
@Martin, примеры hello world были обновлены. Если у вас это работает сейчас, можете ли вы отметить этот вопрос как ответ? - person Kevin Herron; 09.08.2016