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

106 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OPC DA 测试说明
## 错误Class not registered [0x80040154]
这个错误表示指定的 CLSID 在目标机器上没有注册。需要获取正确的 OPC DA 服务器 CLSID。
## 如何获取正确的 CLSID
### 方法 1使用 Windows 注册表
在 OPC DA 服务器所在的机器192.168.81.251)上执行:
```cmd
# 查找所有 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` 中找到以下代码:
```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
- 下载地址https://opcfoundation.org/developer-tools/samples-and-tools-classic/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. 检查日志中的详细错误信息