2.8 KiB
2.8 KiB
模拟电动扳手服务器使用说明
概述
wrench_simulator.py 是一个模拟电动扳手服务器,用于测试和开发。它模拟真实扳手的行为,接收设定参数并返回正确的响应。
功能特性
- 接收参数设置(功能码0x10):接收并解析扭矩参数设置,返回应答
- 接收启停控制(功能码0x01):接收启动/停止命令,返回应答
- 自动返回成功结果(功能码0x15):启动后等待1秒,自动发送成功结果
- 支持远程控制(功能码0x11):支持启用/停止远程控制
- 多客户端支持:支持多个客户端同时连接
使用方法
1. 启动模拟扳手服务器
python wrench_simulator.py
服务器将监听 0.0.0.0:7888(默认配置),等待客户端连接。
2. 运行测试脚本
在另一个终端运行:
python test_simulator.py
或者直接使用 wrench_controller.py:
python wrench_controller.py
工作流程
- 客户端连接:客户端连接到服务器
- 启用远程控制:发送功能码0x11启用远程控制
- 设定参数:发送功能码0x10设定扭矩参数
- 启动扳手:发送功能码0x01启动扳手(正转或反转)
- 等待结果:服务器等待1秒后自动发送成功结果(功能码0x15)
协议支持
已实现的功能码
- 0x11: 启停远程控制
- 0x01: 扳手启停控制
- 0x06: 应答控制
- 0x10: 参数设置
- 0x15: 执行结果反馈
- 0x17: 结果反馈确认
返回状态码
- 0x00: 成功-OK
- 0x01: 成功-扭矩到达(默认)
- 0x02: 成功-位置到达
配置说明
可以在代码中修改以下参数:
simulator = WrenchSimulator(
host="0.0.0.0", # 监听地址
port=7888, # 监听端口
address=0x01 # 设备地址码
)
注意事项
- 确保端口7888未被占用
- 模拟服务器会自动递增螺栓号
- 实际扭矩值会略高于目标扭矩值(+5 Nm)以模拟成功
- 只有在启用远程控制后,启停命令才会生效
测试场景
场景1:基本测试
- 启用远程控制
- 设定扭矩参数(M1模式,300Nm)
- 启动扳手
- 接收成功结果
场景2:角度模式测试
- 启用远程控制
- 设定扭矩参数(M2模式,目标角度90°)
- 启动扳手
- 接收成功结果
调试信息
服务器会输出详细的调试信息:
- 📥 接收到的数据(十六进制)
- 📤 发送的响应(十六进制)
- 📋 处理的功能码
- ✅ 成功操作
- ❌ 错误信息
故障排除
- 连接被拒绝:检查服务器是否已启动
- 端口被占用:修改端口号或关闭占用端口的程序
- 无响应:检查网络连接和防火墙设置