JAVA实现OPC DA遇到的常见问题及解决方法

2020-11-28

JAVA实现OPC DA遇到的常见问题及解决方法

本文旨在为使用JAVA实现OPC DA(数据访问)过程中遇到的常见问题提供解决方案。OPC DA是一种用于工业自动化领域的通信协议,广泛应用于数据采集和控制系统中。通过本文,您将了解到在JAVA环境中实现OPC DA通信时可能遇到的各种问题及其解决方法。

常见问题及解决方法

1. 用户校验不通过(错误代码:0x00000005)

原因:用户名或密码错误,或者本地安全策略设置不当。 解决方法

  • 检查用户名和密码是否正确,确保用户名不要使用全名。
  • 如果用户名和密码无误,检查本地安全策略设置。可以通过以下步骤修改:
    1. 运行 secpol.msc
    2. 找到“本地策略” -> “安全选项” -> “网络访问:本地账户的共享和安全模型”。
    3. 修改属性为“经典:对本地账户进行身份验证,不改变其本来身份”。

2. DCOM配置错误(错误代码:0x8001FFFF)

原因:DCOM配置不正确或防火墙设置不当。 解决方法

  • 检查DCOM配置是否正确,按照相关文档重新配置。
  • 确保防火墙设置允许OPC通信。

3. 权限问题(错误代码:0x80070005)

原因:Utgard的默认权限设置可能与系统不兼容。 解决方法

  • 修改Utgard的 Server 类,开启会话安全项。在 connect() 方法中添加 this.session.useSessionSecurity(true)
  • 确保Utgard通过ProgId建立连接,如果无法获取连接,可以在此处进行修改。

4. ClsId不正确(错误代码:0x80040154)

原因:OPCServer的ClsId不正确。 解决方法

  • 检查OPCServer的ClsId,或者通过获取OPC Server列表的方式获取正确的ClsId。

5. 注册表问题(错误代码:0x80040153)

原因:系统中存在未清理干净的OPCServer注册表。 解决方法

  • 修改Utgard的 listServersWithDetails 方法,处理该异常。确保在获取OPC Server列表时,能够处理注册表未清理干净的情况。

6. 协议版本不匹配(错误代码:0x80010111)

原因:Utgard的协议版本与Windows 10 2004之后的协议版本不匹配。 解决方法

  • 使用 j-interop 3.0 版本,确保在Maven中添加正确的依赖。

总结

通过本文,您可以了解到在JAVA环境中实现OPC DA通信时可能遇到的各种问题及其解决方法。希望这些解决方案能够帮助您顺利完成OPC DA的开发工作。

下载链接

JAVA实现OPCDA遇到的常见问题及解决方法