Java utgard连接OPC问题记录

1- 0x00000005

user access deny,用户校验不通过: 这个问题检查了一天,首先确认用户名密码没错,检查了一遍DCOM配置,也没有问题, 接下来陷入了困境, 后来查了些资料,顺着用户校验不通过这条线索, 查看Windows系统日志,如下:

安全日志中记录用户登录行为, OPC通信需要使用Windows系统用户进行登录, 如果用户名密码错误这里会有相关记录.

而我这里是"审核成功"的, 排除用户名密码问题;

又陷入了困境, 后来考虑既然有登录日志,会不会有别的日志呢, 按照这个想法我查看了"Windows日志"模块下的其他日志,于是抱着试试看的态度发现了"系统"日志下有一条记录:

 “服务器端身份验证级别策略不允许用户 %1\%2 SID (%3) 地址 %4 激活 DCOM 服务器。 请至少将激活身份验证级别提高到客户端应用程序中的RPC_C_AUTHN_LEVEL_PKT_INTEGRITY。”

日志编码: 10036

这条日志出现在我每次OPC客户端运行之后, 有很强关联性, 于是顺着这条线索重新百度.下面是针对这个问题比较好的一个资料(虽然最终没有解决)

https://social.technet.microsoft.com/Forums/appvirtualization/zh-CN/d0b6e085-5541-4817-aed6-6d8b82d6ad4b/-dcom-?forum=WinServerPreviewZHCN

文章中提到的注册表我设置了依然无效, 陷入困境,直到......

抱着试试看的态度,卸载了Windows上的安全更新,就是这里点红框打开:

 奇迹发生了,0x00000005解决. 注: 我的安全补丁编码跟网上查到的并不一样, 所以最初没有删,后来全都删了就好了,这个编码规则咱也不知道.

2- 0x80010111

看到这个错误代码就准备重装系统吧, 这个百度的资料比较多,都是: utgard的协议5.6,但windows 10 2004之后的协议都是5.7 ,下面附上Win10各个小版本, 以便核对:

 我的是20H2, 后来换成了Win10 1909 专业版, 问题解决;

3- 0x80070005

需要开启回话安全项:

this.session.useSessionSecurity(true);

怎么开启是个问题, 是在引入openscada的jar包里的Sever类中修改,这就犯难了, 其实没必要, 只要在自己项目下创建与openscada中Server类相同的路径,并复制Server过去改就行了, 项目会优先使用本地类,像下面这样

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
opc-utgard 是一个开源项目,它是 OPC(OLE for Process Control)的 Java 实现。OPC 是一种广泛使用的工业自动化通信标准,用于在不同设备之间实现数据交换和通信。 opc-utgard 的源码可以通过 GitHub 平台进行获取和查看。该项目提供了 OPC 客户端库的 Java 实现,使得开发者可以使用 Java 语言轻松地与 OPC 服务器进行通信。 在 opc-utgard 的源码中,我们可以找到一些核心的类和接口,例如:Server、Group、Item 等。通过 Server 类,我们可以连接OPC 服务器,并进行连接管理。Group 类用于创建 OPC 组,用于管理与 OPC 服务器的数据交换。Item 类则用于定义与 OPC 数据项相关的信息,例如数据类型、读取和写入数据等。 opc-utgard 的源码实现了 OPC Data Access v2.0(DA 2.0)规范,这是一种常见的 OPC 规范,用于获取实时数据。它还支持异步读取和写入数据,以提高通信效率。除了 DA 2.0,opc-utgard 还支持 OPC Alarm and Events(AE)规范,用于处理与报警和事件相关的功能。 通过研究 opc-utgard 的源码,我们可以深入了解 OPC 通信协议的实现细节,学习如何使用 Java 语言与 OPC 服务器进行通信和数据交换。此外,我们还可以根据实际需要对源码进行调整和定制,以满足特定的应用场景。 总之,opc-utgard 的源码是一个极具价值的资源,可以为开发者提供学习和开发 OPC 相关应用程序的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值