Files
Feeding_control_system/README.md
2025-09-30 16:10:59 +08:00

154 lines
5.2 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.

## 系统架构
系统主要包含以下组件:
1. **硬件控制模块** - 控制继电器、变频器和重量变送器
2. **视觉识别模块** - 处理摄像头图像,识别溢料、角度和车辆对齐状态
3. **控制逻辑模块** - 实现下料流程控制和状态管理
4. **系统管理模块** - 协调各组件工作,管理线程和系统状态
## 核心功能模块
### 1. 下料流程控制 (FeedingProcess)
`FeedingProcess` 类负责核心的下料控制逻辑:
#### 主要方法:
- `start_feeding()`
- - 启动整个下料流程:
- 检查设备连接状态
- 重置计数器
- 执行上料斗向下料斗的物料转移
- 等待模具车对齐并开始下料
- `_check_device_connectivity()`
- - 检查关键设备连接状态:
- 测试网络继电器连接
- 测试变频器连接
- 测试下料斗变送器连接
- `transfer_material_from_upper_to_lower()`
- - 上料斗向下料斗下料:
- 读取上料斗初始重量
- 控制继电器打开上料斗出砼门
- 基于重量变化控制下料过程
- 关闭上料斗出砼门并验证下料结果
- 有两次下料可以设置下料次数在core/state.py的upper_feeding_max修改
- `wait_for_vehicle_alignment()`
- - 等待模具车对齐:
- 设置系统状态为等待对齐
- 轮询检查车辆对齐状态
- 对齐后启动第一阶段下料
- `feeding_stage_one()` / `feeding_stage_two()` / `feeding_stage_three()`
- - 三阶段下料控制:
- 分别控制变频器以低速、中速、高速运行
- 通过重量传感器监控下料过程
- 根据重量或时间判断阶段完成
### 2. 系统控制器 (FeedingController)
`FeedingController` 类负责系统的实时控制和监控:
#### 主要方法:
- `check_upper_material_request()`
- - 检查上料斗是否需要要料:
- 读取上料斗重量
- 根据重量判断是否需要要料
- 触发要料请求
- `check_arch_blocking()`
- - 检查是否需要破拱:
- 监控重量变化速率
- 如果重量变化过慢,判断为堵塞
- 控制破拱继电器进行破拱操作
- `visual_control()`
- - 视觉控制主逻辑:
- 使用视觉系统检测溢料和出砼门角度
- 根据检测结果和状态机控制出砼门开关
- 包含四种控制模式:
1. `normal` - 正常模式,保持开门
2. `reducing` - 角度减小模式,关闭门以减小开口角度
3. `maintaining` - 维持模式,使用脉冲控制保持角度
4. `recovery` - 恢复模式,逐步打开门
判断状态机状态执行相应的控制逻辑首先打开夹爪进入normal状态当夹角>=一个阈值并且开始堆料进入reducing状态
缩小过程中如果没有堆料了回到recovery状态如果缩小到设定角度依然堆料进入maintaining状态开关开关夹爪保持低速下料直到没有堆料进入recovery状态
在recovery过程中产生了堆料则进入到reducing状态
- `pulse_control_door_for_maintaining()`
- - 脉冲控制维持角度:
- 通过开关门的脉冲操作维持目标角度
- 通过读取传感器数据判断是否完成维持角度
### 3. 系统主控 (FeedingControlSystem)
`FeedingControlSystem` 是系统的主控制器:
#### 主要方法:
- `initialize()` - 初始化系统
- 配置和初始化摄像头
- 加载视觉识别模型
- 启动各监控线程
- `start_monitoring()` - 启动系统监控线程
- 监控上料请求
- 监控破拱需求
- `start_visual_control()` - 启动视觉控制线程
- 持续捕获图像并执行视觉控制逻辑
- `start_alignment_check()` - 启动对齐检查线程
- 检查模具车是否对齐
- `_monitor_loop()` / `_visual_control_loop()` / `_alignment_check_loop()` - 各线程的主循环
## 硬件接口
### 继电器控制器 (RelayController)
控制各种开关门操作:
- 上料斗滑动门 (DOOR_UPPER)
- 上料斗出砼门 (DOOR_LOWER_1)
- 下料斗出砼门 (DOOR_LOWER_2)
- 上料斗破拱 (BREAK_ARCH_UPPER)
- 下料斗破拱 (BREAK_ARCH_LOWER)
### 变频器控制器 (InverterController)
控制下料电机的转速,实现三阶段下料速度控制。
### 变送器控制器 (TransmitterController)
读取上料斗和下料斗的重量数据,用于控制下料过程。
## 视觉识别系统
系统使用计算机视觉技术进行智能控制:
1. **溢料检测** - 检测出砼门是否发生溢料
2. **角度检测** - 检测出砼门的开口角度
3. **车辆对齐检测** - 检测模具车是否对齐到位
## 运行流程
1. 系统初始化
2. 启动监控线程
3. 等待启动下料指令
4. 执行上料斗向下料斗的物料转移
5. 等待模具车对齐
6. 执行三阶段下料(低速→中速→高速)
7. 完成一轮下料后,再次上料
8. 执行第二轮三阶段下料
9. 完成整个下料过程
## 测试
项目包含针对各个模块的单元测试,位于 `tests/` 目录下:
- `hardware_test.py` - 硬件控制器测试,用debug的方式逐行运行测试各个硬件功能
参数修改:
继电器信息修改hardware/relay.py
变频器修改hardware/inverter.py
变送器修改hardware/transmitter.py
相机参数夹角阈值单次下料重量变频器频率等修改cofig/settings.py