This commit is contained in:
2026-01-16 15:21:54 +08:00
parent 69361c5d5b
commit 1fd14cf7d8
41 changed files with 1133 additions and 26131 deletions

View File

@ -86,7 +86,7 @@ class FeedPosition:
self.position = position
class FeedLine:
def __init__(self, id, name, feed_positions:list,remain_count:int):
def __init__(self, id, name, feed_positions:list,remain_count:int,drop_manage:DropPositionManager):
self.feed_positions = copy.deepcopy(feed_positions)
self.feeding2end_pos_index = 0
@ -94,7 +94,7 @@ class FeedLine:
self.start2take_pos_index = 0
self.name = name
self.id = id
self.drop_manager = DropPositionManager()
self.drop_manager = drop_manage
# 初始化各个阶段的位置列表
self.feeding_to_end = []
@ -285,16 +285,17 @@ class FeedLine:
_current_index=_current_index-1
if _current_index<0:
_current_index=0
loc_floor=(_current_index//5)+1
loc_bag=(_current_index%5)+1
if loc_floor in [1,3,5]:
if loc_floor in [1,3,5,7]:
if loc_bag in [1,2,3]:
point.X=round(point.X-offsetX, 3)
elif loc_bag==4:
point.Y=round(point.Y-offsetX, 3)
elif loc_bag==5:
point.Y=round(point.Y+offsetX, 3)
elif loc_floor in [2,4,6]:
elif loc_floor in [2,4,6,8]:
if loc_bag in [1,2,3]:
point.X=round(point.X+offsetX, 3)
elif loc_bag==4:
@ -546,6 +547,8 @@ class Feeding(QObject):
# TODO:逻辑需改变不能用while循环
if Constant.DebugPosition:
self.take_sensor_signal=True
self.log_signal.emit(logging.INFO, "进入传感器2检测料包阶段")
while True:
# sensors = self.relay_controller.get_all_device_status('sensors')
# sensor2_value = sensors.get(self.relay_controller.SENSOR2, False)
@ -555,7 +558,7 @@ class Feeding(QObject):
else:
if self.feedStatus == FeedStatus.FNone:
return
time.sleep(1) # 每秒检查一次
time.sleep(0.1) # 每秒检查一次
loc_offsetX=0
loc_is_next=False
@ -566,8 +569,14 @@ class Feeding(QObject):
if loc_model_result['success']:
#置信度
if loc_model_result['obj_conf']>0.5:
#35KG是80
_center_point=0
if self.relay_controller.is_drop_35:
print("检测到35KG料带")
_center_point=80
loc_offsetX=loc_model_result['dx_mm']
if abs(loc_model_result['dx_mm'])<200:
loc_offsetX=loc_offsetX-_center_point
if abs(loc_model_result['dx_mm'])<200+_center_point:
loc_is_next=True
print(f'{loc_image_path}:料带偏移{loc_offsetX}mm')
else:
@ -590,12 +599,12 @@ class Feeding(QObject):
self.log_signal.emit(logging.ERROR, f"视频模型异常:{e}")
finally:
if loc_is_next or Constant.DebugPosition:
self.feedConfig.feedLine.set_feeding_to_end(loc_offsetX)
self.next_position()
self.log_signal.emit(logging.INFO, Constant.str_sys_runing2)
self.feedConfig.feedLine.set_feeding_to_end(loc_offsetX)
self.next_position()
self.log_signal.emit(logging.INFO, Constant.str_sys_runing2)
elif self.feedStatus == FeedStatus.FTake:
self.log_signal.emit(logging.INFO, Constant.str_feed_take)
#self.log_signal.emit(logging.INFO, Constant.str_feed_take)
take_position = self.feedConfig.feedLine.get_take_position()
if not take_position or not take_position.get_position():
self.log_signal.emit(logging.ERROR, Constant.str_feed_takePhoto_fail)
@ -705,7 +714,7 @@ class Feeding(QObject):
self.next_position()
elif self.feedStatus == FeedStatus.FDropReset:
if real_position.compare(self.get_current_position().get_position()):
self.log_signal.emit(logging.INFO, Constant.str_feed_drop_reset)
self.log_signal.emit(logging.INFO, "码垛后点")
self.next_position()