Files
nl-acs3.0/nl-web-app/OPC_DA_测试说明.md
2026-03-19 13:32:14 +08:00

2.8 KiB
Raw Permalink Blame History

OPC DA 测试说明

错误Class not registered [0x80040154]

这个错误表示指定的 CLSID 在目标机器上没有注册。需要获取正确的 OPC DA 服务器 CLSID。

如何获取正确的 CLSID

方法 1使用 Windows 注册表

在 OPC DA 服务器所在的机器192.168.81.251)上执行:

# 查找所有 OPC 相关的 CLSID
reg query "HKEY_CLASSES_ROOT\CLSID" /s /f "OPC"

# 或者查找特定的 OPC Server
reg query "HKEY_CLASSES_ROOT\CLSID" /s /f "Kepware"

方法 2使用 OPC 客户端工具

推荐使用以下工具之一:

  • Matrikon OPC Explorer(免费)
  • Kepware OPC Quick Client
  • OPC Foundation 的 OPC Test Client

步骤:

  1. 在工具中连接到 OPC 服务器
  2. 查看服务器属性,可以看到 CLSID
  3. 复制 CLSID不要包含花括号

方法 3查看 OPC 服务器文档

查看你使用的 OPC DA 服务器的安装文档或配置文件。

常见 OPC DA 服务器的 CLSID

OPC 服务器 CLSID不含花括号
Kepware OPC Server 7BC0CC8E-482C-47CA-ABDC-0FE7F9C6E729
Matrikon OPC Server F8582CF2-88FB-11D0-B850-00C0F0104305
RSLinx OPC Server A06B0CF6-4E1F-11D3-8F4D-00104B33C6E8
Siemens OPC Server 各版本不同,需查看文档

注意:实际的 CLSID 可能因版本不同而不同,请以实际安装的服务器为准。

修改测试代码

ApiTest.java 中找到以下代码:

properties.put("clsId", "7BC0CC8E-482C-47CA-ABDC-0FE7F9C6E729"); // 修改为实际的 CLSID

将 CLSID 替换为你从上述方法获取的实际值。

其他可能的问题

1. DCOM 配置

确保目标机器的 DCOM 配置正确:

  1. 运行 dcomcnfg
  2. 找到 OPC 服务器
  3. 配置安全设置和启动权限

2. 防火墙设置

确保防火墙允许 DCOM 通信:

  • 端口 135RPC
  • 动态端口范围(通常是 49152-65535

3. 用户权限

确保使用的用户名和密码具有访问 OPC 服务器的权限。

4. OPC Core Components

确保目标机器已安装 OPC Core Components

标签地址格式

OPC DA 标签地址格式通常为:

Channel1.Device1.Tag1

具体格式取决于你的 OPC 服务器配置。可以使用 OPC 客户端工具浏览可用的标签。

测试步骤

  1. 确认 OPC DA 服务器正在运行
  2. 获取正确的 CLSID
  3. 修改测试代码中的 CLSID
  4. 修改标签地址为实际存在的标签
  5. 运行测试

调试建议

如果仍然遇到问题,可以:

  1. 先使用 OPC 客户端工具(如 Matrikon OPC Explorer测试连接
  2. 确认可以成功连接和读取数据后,再运行 Java 测试代码
  3. 检查日志中的详细错误信息