From 1d1812cb3aba2b6d64e0b6416f055fc68c9d0467 Mon Sep 17 00:00:00 2001 From: cdeyw <827523911@qq.com> Date: Fri, 19 Sep 2025 20:30:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E4=BA=A4=E4=B8=89=E8=88=AA=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Fedding.py | 67 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/Fedding.py b/Fedding.py index 0e12105..ebcc302 100644 --- a/Fedding.py +++ b/Fedding.py @@ -86,6 +86,7 @@ class FeedingControlSystem: self.min_required_weight = 500 # 模具车最小需要重量(kg) self.upper_door_position = 'default' # default(在搅拌楼下接料), over_lower(在下料斗上方), returning(返回中) self.lower_feeding_stage = 0 # 0:未下料, 1:第一阶段, 2:第二阶段, 3:等待上料, 4:等待模具车对齐 + self.lower_feeding_cycle = 0 # 下料斗下料循环次数 (1, 2, 3) self.upper_feeding_count = 0 # 上料斗已下料次数 (0, 1, 2) self.last_upper_weight = 0 self.last_lower_weight = 0 @@ -454,8 +455,10 @@ class FeedingControlSystem: if not self._check_device_connectivity(): print("关键设备连接失败,无法开始下料") return + # 先进行上料斗向下料斗下料 print("开始分步下料过程") + self.transfer_material_from_upper_to_lower() self.lower_feeding_stage = 4 # 从等待模具车对齐开始 self.upper_feeding_count = 0 self.wait_for_vehicle_alignment() @@ -497,6 +500,25 @@ class FeedingControlSystem: print(f"设备连接检查失败: {e}") return False + def transfer_material_from_upper_to_lower(self): + """上料斗向下料斗下料""" + print(f"上料斗向下料斗下料 (第 {self.upper_feeding_count + 1} 次)") + + # 确保下料斗出砼门关闭 + self.control_relay(self.DOOR_LOWER_2, 'close') + # 打开上料斗出砼门 + self.control_relay(self.DOOR_LOWER_1, 'open') + + # 等待物料流入下料斗(根据实际情况调整时间) + time.sleep(3) + + # 关闭上料斗出砼门 + self.control_relay(self.DOOR_LOWER_1, 'close') + + # 增加上料计数 + self.upper_feeding_count += 1 + print("上料斗下料完成") + def wait_for_vehicle_alignment(self): """等待模具车对齐""" print("等待模具车对齐...") @@ -510,14 +532,17 @@ class FeedingControlSystem: break time.sleep(self.alignment_check_interval) + def feeding_stage_one(self): - """第一阶段下料(2.5吨)""" - print("开始第一阶段下料 (1/2)") - self.upper_feeding_count = 1 + """第一阶段下料:下料斗向模具车下料(低速)""" + print("开始第一阶段下料:下料斗低速下料") + self.lower_feeding_cycle = 1 self.set_inverter_frequency_via_relay(self.frequencies[0]) self.control_inverter_via_relay('start') - self.control_relay(self.DOOR_LOWER_1, 'open') + # 确保上料斗出砼门关闭 + self.control_relay(self.DOOR_LOWER_1, 'close') + # 打开下料斗出砼门 self.control_relay(self.DOOR_LOWER_2, 'open') start_time = time.time() @@ -547,10 +572,15 @@ class FeedingControlSystem: time.sleep(2) def feeding_stage_two(self): - """第二阶段下料(剩余2.5吨)""" - print("开始第二阶段下料 (2/2)") - self.upper_feeding_count = 2 - self.set_inverter_frequency_via_relay(self.lower_feeding_frequencies[1]) + """第二阶段下料:下料斗向模具车下料(中速)""" + print("开始第二阶段下料:下料斗中速下料") + self.lower_feeding_cycle = 2 + self.set_inverter_frequency_via_relay(self.frequencies[1]) + + # 保持下料斗出砼门打开 + self.control_relay(self.DOOR_LOWER_2, 'open') + # 确保上料斗出砼门关闭 + self.control_relay(self.DOOR_LOWER_1, 'close') start_time = time.time() initial_weight = self.read_transmitter_data_via_relay(2) @@ -573,16 +603,21 @@ class FeedingControlSystem: self.lower_weight_error_count = 0 if (current_weight is not None and current_weight >= target_weight) or (time.time() - start_time) > 30: - self.lower_feeding_stage = 3 # 改为跳转到第三阶段 - self.feeding_stage_three() # 调用第三阶段 + self.lower_feeding_stage = 3 + self.feeding_stage_three() break time.sleep(2) def feeding_stage_three(self): - """第三阶段下料""" - print("开始第三阶段下料 (3/3)") - self.upper_feeding_count = 3 - self.set_inverter_frequency_via_relay(self.lower_feeding_frequencies[2]) # 使用第三个频率 + """第三阶段下料:下料斗向模具车下料(高速)""" + print("开始第三阶段下料:下料斗高速下料") + self.lower_feeding_cycle = 3 + self.set_inverter_frequency_via_relay(self.frequencies[2]) + + # 保持下料斗出砼门打开 + self.control_relay(self.DOOR_LOWER_2, 'open') + # 确保上料斗出砼门关闭 + self.control_relay(self.DOOR_LOWER_1, 'close') start_time = time.time() initial_weight = self.read_transmitter_data_via_relay(2) @@ -1033,6 +1068,10 @@ if __name__ == "__main__": # 启动对齐检查 system.start_alignment_check() + print("系统准备就绪,5秒后开始下料...") + time.sleep(5) + system.start_lower_feeding() # 启动下料流程 + try: while True: time.sleep(1)