中交三航控制系统
This commit is contained in:
67
Fedding.py
67
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)
|
||||
|
||||
Reference in New Issue
Block a user