diff --git a/COM/COM_Robot.py b/COM/COM_Robot.py index fcad7d1..d5bc39b 100644 --- a/COM/COM_Robot.py +++ b/COM/COM_Robot.py @@ -35,6 +35,7 @@ class RobotClient(TCPClient): self.feed_speed = 10 self.reset_speed = 10 self.max_angle_interval = 0 + self.smooth = 0 def add_sendQuene(self,command): #后面 命令分等级,紧急命令直接执行 self.command_quene.put(command) log.log_message(logging.INFO, f'{Constant.str_sys_command}{command}') diff --git a/CU/Feeding.py b/CU/Feeding.py index 6c83a68..fbd61d6 100644 --- a/CU/Feeding.py +++ b/CU/Feeding.py @@ -680,7 +680,7 @@ class Feeding(QObject): position_instruction.m3 = real_position.U position_instruction.m4 = real_position.V position_instruction.m5 = real_position.W - position_instruction.smooth = 4 + position_instruction.smooth = self.robotClient.smooth position_instruction.action = move_type.value if position_instruction.action == 17: @@ -728,15 +728,15 @@ class Feeding(QObject): if start_pos.lineType == LineType.CureMid.value: start_pos1 = self.feedConfig.feedLine.get_next_start_position(reverse) self.feedStatus = FeedStatus(start_pos1.status) if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone - self.sendTargPosition(real_position=start_pos.get_position(),speed=self.robotClient.debug_speed, move_type=MoveType.Cure, real_position1=start_pos1.get_position()) + self.sendTargPosition(real_position=start_pos.get_position(),speed=self.robotClient.feed_speed, move_type=MoveType.Cure, real_position1=start_pos1.get_position()) elif start_pos.lineType == LineType.WORLD.value: if self.robotClient.status_model.getAnglePosition().is_error_angel_move(start_pos.get_position(),self.robotClient.max_angle_interval): self.feedStatus = None self.log_signal.emit(logging.ERROR, Constant.str_feed_angle_error) else: - self.sendTargPosition(real_position=start_pos.get_position(),speed=self.robotClient.debug_speed,move_type=MoveType.AXIS) + self.sendTargPosition(real_position=start_pos.get_position(),speed=self.robotClient.feed_speed,move_type=MoveType.AXIS) else: - self.sendTargPosition(real_position=start_pos.get_position(),speed=self.robotClient.debug_speed) + self.sendTargPosition(real_position=start_pos.get_position(),speed=self.robotClient.feed_speed) pass def next_take(self,reverse=False): @@ -746,9 +746,18 @@ class Feeding(QObject): if take_pos.lineType == LineType.CureMid.value: take_pos1 = self.feedConfig.feedLine.get_next_take_position(reverse) self.feedStatus = FeedStatus(take_pos1.status) if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone - self.sendTargPosition(real_position=take_pos.get_position(), move_type=MoveType.Cure, real_position1=take_pos1.get_position(),speed=self.robotClient.debug_speed) + self.sendTargPosition(real_position=take_pos.get_position(), move_type=MoveType.Cure, real_position1=take_pos1.get_position(),speed=self.robotClient.feed_speed) + elif take_pos.lineType == LineType.WORLD.value: + if self.robotClient.status_model.getAnglePosition().is_error_angel_move(take_pos.get_position(), + self.robotClient.max_angle_interval): + self.feedStatus = None + self.log_signal.emit(logging.ERROR, Constant.str_feed_angle_error) + else: + self.sendTargPosition(real_position=take_pos.get_position(), speed=self.robotClient.feed_speed, + move_type=MoveType.AXIS) + else: - self.sendTargPosition(real_position=take_pos.get_position(),speed=self.robotClient.debug_speed) + self.sendTargPosition(real_position=take_pos.get_position(),speed=self.robotClient.feed_speed) pass def next_Feed(self,reverse=False): @@ -757,9 +766,18 @@ class Feeding(QObject): if feed_pos.lineType == LineType.CureMid.value: feed_pos1 = self.feedConfig.feedLine.get_next_feed_position(reverse) self.feedStatus = FeedStatus(feed_pos1.status) if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone - self.sendTargPosition(real_position=feed_pos.get_position(), move_type=MoveType.Cure, real_position1=feed_pos1.get_position(),speed=self.robotClient.debug_speed) + self.sendTargPosition(real_position=feed_pos.get_position(), move_type=MoveType.Cure, real_position1=feed_pos1.get_position(),speed=self.robotClient.feed_speed) + elif feed_pos.lineType == LineType.WORLD.value: + if self.robotClient.status_model.getAnglePosition().is_error_angel_move(feed_pos.get_position(), + self.robotClient.max_angle_interval): + self.feedStatus = None + self.log_signal.emit(logging.ERROR, Constant.str_feed_angle_error) + else: + self.sendTargPosition(real_position=feed_pos.get_position(), speed=self.robotClient.feed_speed, + move_type=MoveType.AXIS) + else: - self.sendTargPosition(real_position=feed_pos.get_position(),speed=self.robotClient.debug_speed) + self.sendTargPosition(real_position=feed_pos.get_position(),speed=self.robotClient.feed_speed) def get_current_position(self,is_reverse=False): if self.feed_Mid_Status == FeedMidStatus.FMid_Start: diff --git a/main.py b/main.py index a95ab6e..e63bab2 100644 --- a/main.py +++ b/main.py @@ -633,6 +633,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): time_delay_put = float(self.configReader.get('Robot_Feed', 'putDelay')) time_delay_shake = float(self.configReader.get('Robot_Feed', 'shakeDelay')) max_angle_interval = float(self.configReader.get('Robot_Feed', 'max_angle_interval')) + smooth = float(self.configReader.get('Robot_Feed', 'smooth')) #TODO #dropDelay_time = int(self.configReader.get('Robot_Feed', 'dropDelay_time')) self.robotClient = RobotClient(ip, port, photo_locs, self.command_position_quene, self.status_address,[io_take_addr, io_zip_addr, io_shake_addr],time_delay_take,time_delay_put,time_delay_shake,origin_position) @@ -640,6 +641,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.robotClient.feed_speed = feed_speed self.robotClient.reset_speed = reset_speed self.robotClient.max_angle_interval = max_angle_interval + self.robotClient.smooth = smooth self.feeding = Feeding(self.robotClient) # 临时 self.feeding.need_origin_signal.connect(self.show_infomessage_box) self.feeding.take_no_photo_sigal.connect(self.show_no_photo_message_box) @@ -1029,6 +1031,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.robotClient.feed_speed = int(self.lineEdit_speed_run.text()) self.robotClient.debug_speed = int(self.lineEdit_speed_debug.text()) self.robotClient.reset_speed = int(self.lineEdit_speed_reset.text()) + self.robotClient.smooth = int(self.lineEdit_setting_smooth.text()) try: take_addr = int(self.lineEdit_take_addr.text()) press_addr = int(self.lineEdit_press_addr.text()) @@ -1053,6 +1056,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.configReader.set('Speed', 'feed_speed', str(self.robotClient.feed_speed)) self.configReader.set('Speed', 'debug_speed', str(self.robotClient.debug_speed)) self.configReader.set('Speed', 'reset_speed', str(self.robotClient.reset_speed)) + self.configReader.set('Robot_Feed', 'smooth', str(self.robotClient.smooth)) self.configReader.write(open(Constant.set_ini, 'w', encoding='utf-8')) except Exception as e: log.log_message(logging.ERROR, Constant.str_sys_set_error+e) @@ -1898,6 +1902,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.lineEdit_take_addr.setText(str(self.robotClient.con_ios[0])) self.lineEdit_press_addr.setText(str(self.robotClient.con_ios[1])) self.lineEdit_shake_addr.setText(str(self.robotClient.con_ios[2])) + self.lineEdit_setting_smooth.setText(str(self.robotClient.smooth)) self.lineEdit_timedelay_take.setText(str(self.robotClient.time_delay_take)) self.lineEdit_timedelay_put.setText(str(self.robotClient.time_delay_put)) self.lineEdit_timedelay_shake.setText(str(self.robotClient.time_delay_shake))