【问题标题】:Connection configuration loops - Prosys OPC UA Client连接配置循环 - Prosys OPC UA 客户端
【发布时间】:2018-09-01 07:18:35
【问题描述】:

我正在使用文档中的示例代码,并且正在尝试使用 Prosys OPC UA 客户端连接到服务器。我已经尝试过 opcua-commander 和集成对象 opc ua 客户端,看起来服务器工作得很好。

这是发生了什么:

  1. 进入endpointUrl后,客户端添加到url-- urn:NodeOPCUA-Server-default
  2. 客户端要求指定安全设置。
  3. 客户端要求选择服务器 - 只有 1 个选项,它是 urn:NodeOPCUA-Server-default。

然后一遍又一遍地回到第 2 步和第 3 步。

如果我只是在一段时间后最小化 prosys 客户端而不关闭配置,我会在终端中获得以下信息: Server: closing SESSION new ProsysOpcUaClient Session15 because of timeout = 300000 has expired without a keep alive \x1B[46mchannel = \x1B[49m ::ffff:10.10.13.2 port = 51824

我已经尝试过这个项目并且它有效 -> node-opcua-htmlpanel。那么示例代码中缺少什么?

打开调试器后,我注意到每次选择安全设置并点击确定时,server_publish_engine 都会报告:

server_publish_engine:179 Cencelling pending PublishRequest with statusCode BadSecureChannelClosed (0x80860000) length = 0

【问题讨论】:

    标签: node.js opc node-opcua


    【解决方案1】:

    这是由于 node-opcua@0.2.2 中引入的特定互操作性问题造成的。这将在下一版本的 node-opcua 中修复。分辨率可以在这里追踪https://github.com/node-opcua/node-opcua/issues/464

    【讨论】:

      【解决方案2】:

      问题已在Prosys OPC Forum处理:

      发生错误是因为服务器发送了不同的 GetEndpointsResponse 中的 EndpointDescriptions 和 创建会话响应。

      在 GetEndpoints 中,返回的 EndpointDescriptions 包含 TransportProfileUri=http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary。 在 CreateSessionResponse 中,对应的 TransportProfileUri 是 空。

      原则上,服务器应用程序不按照 规格。 OPC UA 规范的第 4 部分指出“The 服务器应返回一组可用的 EndpointDescriptions 请求中指定的 serverUri。 … 客户应核实这一点 如果使用了 DiscoveryEndpoint 中的列表,则列出 DiscoveryEndpoint 以获取 EndpointDescriptions。推荐 服务器仅包含 server.applicationUri、endpointUrl、 securityMode、securityPolicyUri、userIdentityTokens、 transportProfileUri 和 securityLevel 以及所有其他参数设置为 空值。只有推荐的参数应由 客户。”

      【讨论】:

        猜你喜欢
        • 2020-07-24
        • 2022-08-17
        • 2020-08-28
        • 1970-01-01
        • 2021-04-06
        • 2020-05-26
        • 2022-11-07
        • 1970-01-01
        • 2016-05-10
        相关资源
        最近更新 更多