# Mettler Toledo XPR/XSR Balance Driver
## 概述
本驱动程序为梅特勒托利多XPR/XSR系列天平提供标准接口,支持去皮、清零和重量读取等操作。
## ⚠️ 重要说明 - WSDL文件配置
### 问题说明
本驱动程序需要使用梅特勒托利多官方提供的WSDL文件来与天平通信。由于该WSDL文件包含专有信息,不能随开源项目一起分发。
### 配置步骤
1. **获取WSDL文件**
- 联系梅特勒托利多技术支持
- 或从您的天平设备Web界面下载
- 或从梅特勒托利多官方SDK获取
2. **安装WSDL文件**
```bash
# 将获取的WSDL文件复制到驱动目录
cp /path/to/your/MT.Laboratory.Balance.XprXsr.V03.wsdl \
unilabos/devices/balance/mettler_toledo_xpr/
```
3. **验证安装**
- 确保文件名为:`MT.Laboratory.Balance.XprXsr.V03.wsdl`
- 确保文件包含Jinja2模板变量:`{{host}}`、`{{port}}`、`{{api_path}}`
### WSDL文件要求
- 文件必须是有效的WSDL格式
- 必须包含SessionService和WeighingService的定义
- 端点地址应使用模板变量以支持动态IP配置:
```xml
```
### 文件结构
```
mettler_toledo_xpr/
├── MT.Laboratory.Balance.XprXsr.V03.wsdl # 实际WSDL文件(用户提供)
├── MT.Laboratory.Balance.XprXsr.V03.wsdl.template # 模板文件(仅供参考)
├── mettler_toledo_xpr.py # 驱动程序
├── balance.yaml # 设备配置
├── SendCmd_Usage_Guide.md # 使用指南
└── README.md # 本文件
```
## 使用方法
### 基本配置
```python
from unilabos.devices.balance.mettler_toledo_xpr import MettlerToledoXPR
# 创建天平实例
balance = MettlerToledoXPR(
ip="192.168.1.10", # 天平IP地址
port=81, # 天平端口
password="123456", # 天平密码
timeout=10 # 连接超时时间
)
# 执行操作
balance.tare() # 去皮
balance.zero() # 清零
weight = balance.get_weight() # 读取重量
```
### ROS2 SendCmd Action
详细的ROS2使用方法请参考 [SendCmd_Usage_Guide.md](SendCmd_Usage_Guide.md)
## 故障排除
### 常见错误
1. **FileNotFoundError: WSDL template not found**
- 确保WSDL文件已正确放置在驱动目录中
- 检查文件名是否正确
2. **连接失败**
- 检查天平IP地址和端口配置
- 确保天平Web服务已启用
- 验证网络连接
3. **认证失败**
- 检查天平密码是否正确
- 确保天平允许Web服务访问
### 调试模式
```python
import logging
logging.basicConfig(level=logging.DEBUG)
# 创建天平实例,将显示详细日志
balance = MettlerToledoXPR(ip="192.168.1.10")
```
## 支持的操作
- **去皮 (Tare)**: 将当前重量设为零点
- **清零 (Zero)**: 重新校准零点
- **读取重量 (Get Weight)**: 获取当前重量值
- **带去皮读取**: 先去皮再读取重量
- **连接管理**: 自动连接和断开
## 技术支持
如果您在配置WSDL文件时遇到问题,请:
1. 查看梅特勒托利多官方文档
2. 联系梅特勒托利多技术支持
3. 在项目GitHub页面提交Issue
## 许可证
本驱动程序遵循项目主许可证。WSDL文件的使用需遵循梅特勒托利多的许可条款。