106 lines
2.8 KiB
Markdown
106 lines
2.8 KiB
Markdown
# 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 通信:
|
||
- 端口 135(RPC)
|
||
- 动态端口范围(通常是 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. 检查日志中的详细错误信息
|