系统架构
系统主要包含以下组件:
- 硬件控制模块 - 控制继电器、变频器和重量变送器
- 视觉识别模块 - 处理摄像头图像,识别溢料、角度和车辆对齐状态
- 控制逻辑模块 - 实现下料流程控制和状态管理
- 系统管理模块 - 协调各组件工作,管理线程和系统状态
核心功能模块
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() -
- 视觉控制主逻辑:
- 使用视觉系统检测溢料和出砼门角度
- 根据检测结果和状态机控制出砼门开关
- 包含四种控制模式:
normal- 正常模式,保持开门reducing- 角度减小模式,关闭门以减小开口角度maintaining- 维持模式,使用脉冲控制保持角度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)
读取上料斗和下料斗的重量数据,用于控制下料过程。
视觉识别系统
系统使用计算机视觉技术进行智能控制:
- 溢料检测 - 检测出砼门是否发生溢料
- 角度检测 - 检测出砼门的开口角度
- 车辆对齐检测 - 检测模具车是否对齐到位
运行流程
- 系统初始化
- 启动监控线程
- 等待启动下料指令
- 执行上料斗向下料斗的物料转移
- 等待模具车对齐
- 执行三阶段下料(低速→中速→高速)
- 完成一轮下料后,再次上料
- 执行第二轮三阶段下料
- 完成整个下料过程
测试
项目包含针对各个模块的单元测试,位于 tests/ 目录下:
hardware_controller_test.py- 硬件控制器测试,用debug的方式逐行运行,测试各个硬件功能
参数修改: 继电器信息修改hardware/relay.py 变频器修改hardware/inverter.py 变送器修改hardware/transmitter.py 相机参数,夹角阈值,单次下料重量,变频器频率等修改cofig/settings.py