首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OPC-UA BadSecureChannelClosed

OPC-UA BadSecureChannelClosed
EN

Stack Overflow用户
提问于 2017-02-22 00:21:06
回答 1查看 2.2K关注 0票数 1

我有两个windows服务,一个服务(service1)连接到两个OPC-UA服务器,这很好用。另一个windows服务(service2)使用来自OPC-UA基金会的.NET参考堆栈的相同连接代码连接到相同的两个OPC-UA服务器。

Service1可以同时连接到两个OPC-UA服务器,并成功轮询数据。在部署Service2的过程中,Service2还可以连接到两个OPC-UA服务器并从其中读取值。在这一点上,一切正常。

然而,现在过了一段时间,没有对任何代码做任何更改。Service2无法再连接到OPC-UA服务器之一,当执行Session.Create时,它只是简单地回复ServiceResultException BadSecureChannelClosed(2156265472)。

开始故障排除:在我们的客户站点上,我们还有一个测试服务器,它在生产环境中运行相同的设置,这意味着Service1和Service2也在测试服务器上运行,并以相同的方式与这两个OPC-UA服务器通信。

我注意到,当我关闭测试服务器上的服务时,Service2的BadSecureChannelClosed错误消失了(但是Service2仍然可以与两个OPC-UA服务器中的另一个通信)。使生产服务器上的所有内容都按预期工作。

这让我想知道OPC-UA服务器上的会话和连接有什么限制。OPC-UA服务器的类型为SINUMERIK 840d。我问过西门子是否可以激活ServerDiagnostics对象来解决会话数量等问题,但他们回答说这是不可能的。我以为这个对象是强制的才能启用呢?

谁能给我一些提示,可能导致这种情况的原因,以及我在建立连接时应该考虑的限制和事情,例如,什么需要是唯一的?ApplicationName?SessionName?等等。什么可能导致这个看似“随机”的BadSecureChannelClosed错误。请注意,我在Create Session调用中使用了updateBeforeConnect=true。我使用带有硬编码用户名和密码的UserIdentity。

另一个奇怪的症状是,对于这个用BadSecureChannelClosed回复的OPC-UA服务器,当使用UaExpert连接到它时,它会给出发现错误(几周前不存在的错误):

16:58:41.806 |自动更新|检索当前版本信息时出错:主机updates.Unified-未找到Automation.com

16:58:35.404 | DiscoveryWidget | opc.tcp://192.168.0.200:4840发现GetEndpoints失败(BadCommunicationError)

16:58:35.401 | DiscoveryWidget | opc.tcp://192.168.0.200:4840发现FindServers失败(BadCommunicationError)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-22 04:27:56

当前的Sinumerik OPC UA服务器存在错误,无法提供正确编码的ExtensionObjects。一旦服务器可用,您将需要从西门子请求服务器更新。

请注意,您可以使用UaExpert访问它而不会出现问题,它可以解码编码错误的ExtesionObjects。这使得他们一开始就发布了这样一个有buggy的版本。

编辑:关于ExtensionObjects的注意事项:如果您试图将ServerStatus作为一个完整的结构读取,那么它将作为一个ExtensionObject进行传输。此外,PublishResponse (用于提供订阅数据)还包括编码为ExtensionObjects的数据更改。因此,如果您仅通过ServerState监视状态,它可能会起作用。但无论如何,订阅都不会起作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42372627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档