2016-08-08 89 views
2

我剛剛檢出了Eclipse Milo項目(https://projects.eclipse.org/proposals/milo),這對於「開放式」OPC UA客戶機/服務器(即使使用實施的OPC堆棧)來說似乎是一個很好的項目。 github上的項目(https://github.com/eclipse/milo)包含一個Hello World示例,其中啓動OPC服務器並從客戶端發送和接收示例節點。一切正常!配置OPC UA服務器(米洛)?

但在我的下一步中,我想檢查服務器配置是否正確。因此,我安裝了Matrikon Explorer,但資源管理器在啓動後立即聲明「沒有安裝在此機器上的OPC服務器」(當然,運行OPC Server的hello world示例正在運行)。

也查了,如果SAP工廠連接是認識的OPC服務器(這是我的項目的目標) - >「發現你的系統上/沒有OPC服務器localhost」

哪裏是我的問題,我什麼必須這樣做才能正確安裝和配置服務器?

這裏的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"); 
    } 
} 

回答

2

Matrikon的資源管理器是一個OPC-COM/DA客戶端,並可能詢問OPC枚舉服務,以便找到註冊的COM客戶端。

OPC-UA是一個完全不同的,獨立於平臺的技術。註冊的概念依然存在,但不是默認強制。

嘗試使用像UaExpert這樣的OPC-UA客戶端進行連接。鑑於你已經複製的配置,你需要將UaExpert指向端點URL opc.tcp:// localhost:12686/test-server

我猜你將會遇到一個問題,部分實現了「hello world」命名空間。我將確保本週提供一個完全可用的命名空間示例。

您還可以查看OpcUaClientIT集成測試類以瞭解各種客戶端功能以及設置服務器的另一個示例。

+0

感謝您的快速和有益的答案。您可能會注意到我是一種新手@ OPC體系結構。現在對OPC-COM/DA與OPC-UA進行了一些研究...... – Martin

+0

......我當前的問題:我已將OPC服務器配置爲SAP Plannt Connectivity中的源系統(它支持普通opc ua系統作爲源系統)。我已將服務器端點配置爲「opc.tcp:// localhost:12686/test-server」。通過測試連接,服務器似乎被識別,但它表明「服務器沒有返回與用於創建安全通道的EndpointDescription相匹配的端點描述」。這是我的Milo服務器配置問題還是SAP方面更可能出現的問題?你知道這種錯誤或有任何建議來解決它嗎? – Martin

+0

這樣的錯誤通常可以固定在任何一方。基本上,您已將示例設置爲綁定到本地主機,但SAP通過其他IP地址連接並注意到差異。有時候這是不可避免的,就像當你連接到一個遠程服務器那裏的外部IP不是你可以綁定的那個。在這種情況下,您可能只需更改Milo的配置以包含要綁定的其他地址。構建服務器配置時調用'setBindAddresses'。 –