Files
Feeding_control_system/README.md
2025-09-30 16:21:12 +08:00

5.4 KiB
Raw Permalink Blame History

系统架构

系统主要包含以下组件:

  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的方式逐行运行测试各个硬件功能
  • test_relay_controller.py - 继电器控制器测试
  • test_inverter_controller.py - 变频器控制器测试
  • test_transmitter_controller.py - 变送器控制器测试

参数修改: 继电器信息修改hardware/relay.py 变频器修改hardware/inverter.py 变送器修改hardware/transmitter.py 相机参数夹角阈值单次下料重量变频器频率等修改cofig/settings.py