TorqueWrench/SIMULATOR_README.md

2.8 KiB
Raw Permalink Blame History

模拟电动扳手服务器使用说明

概述

wrench_simulator.py 是一个模拟电动扳手服务器,用于测试和开发。它模拟真实扳手的行为,接收设定参数并返回正确的响应。

功能特性

  1. 接收参数设置功能码0x10:接收并解析扭矩参数设置,返回应答
  2. 接收启停控制功能码0x01:接收启动/停止命令,返回应答
  3. 自动返回成功结果功能码0x15启动后等待1秒自动发送成功结果
  4. 支持远程控制功能码0x11:支持启用/停止远程控制
  5. 多客户端支持:支持多个客户端同时连接

使用方法

1. 启动模拟扳手服务器

python wrench_simulator.py

服务器将监听 0.0.0.0:7888(默认配置),等待客户端连接。

2. 运行测试脚本

在另一个终端运行:

python test_simulator.py

或者直接使用 wrench_controller.py

python wrench_controller.py

工作流程

  1. 客户端连接:客户端连接到服务器
  2. 启用远程控制发送功能码0x11启用远程控制
  3. 设定参数发送功能码0x10设定扭矩参数
  4. 启动扳手发送功能码0x01启动扳手正转或反转
  5. 等待结果服务器等待1秒后自动发送成功结果功能码0x15

协议支持

已实现的功能码

  • 0x11: 启停远程控制
  • 0x01: 扳手启停控制
  • 0x06: 应答控制
  • 0x10: 参数设置
  • 0x15: 执行结果反馈
  • 0x17: 结果反馈确认

返回状态码

  • 0x00: 成功-OK
  • 0x01: 成功-扭矩到达(默认)
  • 0x02: 成功-位置到达

配置说明

可以在代码中修改以下参数:

simulator = WrenchSimulator(
    host="0.0.0.0",  # 监听地址
    port=7888,       # 监听端口
    address=0x01     # 设备地址码
)

注意事项

  1. 确保端口7888未被占用
  2. 模拟服务器会自动递增螺栓号
  3. 实际扭矩值会略高于目标扭矩值(+5 Nm以模拟成功
  4. 只有在启用远程控制后,启停命令才会生效

测试场景

场景1基本测试

  • 启用远程控制
  • 设定扭矩参数M1模式300Nm
  • 启动扳手
  • 接收成功结果

场景2角度模式测试

  • 启用远程控制
  • 设定扭矩参数M2模式目标角度90°
  • 启动扳手
  • 接收成功结果

调试信息

服务器会输出详细的调试信息:

  • 📥 接收到的数据(十六进制)
  • 📤 发送的响应(十六进制)
  • 📋 处理的功能码
  • 成功操作
  • 错误信息

故障排除

  1. 连接被拒绝:检查服务器是否已启动
  2. 端口被占用:修改端口号或关闭占用端口的程序
  3. 无响应:检查网络连接和防火墙设置