From 2aa4539d89a0367a98410dbc9aac00e13ab82fa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B?= <1063331231@qq.com> Date: Sat, 14 Jun 2025 17:12:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E6=B6=B2=E9=98=B2=E6=AD=A2=E4=BD=8E?= =?UTF-8?q?=E8=90=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sgs/app/service/crafts/CraftsStepService.java | 85 +++++----------------- 1 file changed, 19 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/iflytop/sgs/app/service/crafts/CraftsStepService.java b/src/main/java/com/iflytop/sgs/app/service/crafts/CraftsStepService.java index 7bcbc90..3352f26 100644 --- a/src/main/java/com/iflytop/sgs/app/service/crafts/CraftsStepService.java +++ b/src/main/java/com/iflytop/sgs/app/service/crafts/CraftsStepService.java @@ -7,7 +7,6 @@ import cn.hutool.json.JSONUtil; import com.iflytop.sgs.app.core.CraftsDebugGenerator; import com.iflytop.sgs.app.model.bo.CraftsStep; import com.iflytop.sgs.app.model.bo.Point3D; -import com.iflytop.sgs.app.model.bo.status.device.TrayState; import com.iflytop.sgs.app.model.bo.status.device.TubeState; import com.iflytop.sgs.app.model.entity.Container; import com.iflytop.sgs.app.model.entity.CraftMonitor; @@ -20,6 +19,7 @@ import com.iflytop.sgs.app.service.device.module.HeatModuleService; import com.iflytop.sgs.app.service.device.module.SolutionModuleService; import com.iflytop.sgs.app.service.device.module.TransferModuleService; import com.iflytop.sgs.app.ws.server.WebSocketSender; +import com.iflytop.sgs.common.constant.WebSocketMessageType; import com.iflytop.sgs.common.enums.*; import com.iflytop.sgs.common.enums.cmd.CmdBeepMode; import com.iflytop.sgs.common.enums.data.DevicePositionCode; @@ -32,7 +32,6 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.CompletableFuture; /** * 工艺步骤执行服务 @@ -128,11 +127,11 @@ public class CraftsStepService { double addLiquidDistance = volume * scale; Point3D heatArea1TrayClawPoint = devicePositionService.getPosition(DevicePositionCode.heatArea1TrayClawPoint).getPoint3D();//加热位1坐标 Double liquidAreaPreFillPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaPreFillPoint).getPositon(); //预充时加液臂下降位置 - Double backFlowDistance=systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离 + Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离 /*获取参数结束*/ log.info("工艺{},申请转运模组并等待", heatModuleCode); - transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 + transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_thin);//申请转运模组并等待 deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志 @@ -289,11 +288,19 @@ public class CraftsStepService { Double reduceDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.reduce_distance);//抽液距离 Point3D heatArea1TrayClawPoint = devicePositionService.getPosition(DevicePositionCode.heatArea1TrayClawPoint).getPoint3D(); Double liquidAreaPreFillPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaPreFillPoint).getPositon(); //预充时加液臂下降位置 - Double backFlowDistance=systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离 + Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离 /*获取参数结束*/ + while (deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST)) {//上料区存在托盘 + deviceLightSoundService.openBeep(CmdBeepMode.alarm); + delay(2); + deviceLightSoundService.closeBeep(); + webSocketService.push(WebSocketMessageType.ALARM, "请取出上料区托盘!"); + delay(10); + } + log.info("工艺{},申请转运模组并等待", heatModuleCode); - transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 + transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_thick);//申请转运模组并等待 deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志 @@ -430,7 +437,6 @@ public class CraftsStepService { transferModuleService.transferZMoveZero();//Z轴抬升至最高 deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(true);//加热区托盘状态 deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(true);//托盘状态 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setHeatModuleCode(heatModuleCode);//托盘所在加热区 deviceStateService.getDeviceState().getSolutionModule().setPumping(false);//正在加液 deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(false);//托盘状态 return true; @@ -534,12 +540,12 @@ public class CraftsStepService { Double preFillPosition = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownPreFillPositon).getPositon();//机械臂预充时下降距离 Point3D heatArea1TrayClawPoint = devicePositionService.getPosition(DevicePositionCode.heatArea1TrayClawPoint).getPoint3D(); Double liquidAreaPreFillPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaPreFillPoint).getPositon(); //预充时加液臂下降位置 - Double backFlowDistance=systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离 + Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleTrayClawPoint3D)); /*获取参数结束*/ log.info("工艺{},申请转运模组并等待", heatModuleCode); - transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 + transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_thick);//申请转运模组并等待 deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志 log.info("工艺{},加液机械臂上升", heatModuleCode); @@ -839,9 +845,6 @@ public class CraftsStepService { deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(true);//加热区托盘状态 deviceStateService.getDeviceState().getHeatModuleByCode(HeatModuleCode.heat_module_04).setTrayStatus(false); deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(true);//托盘状态 - deviceLightSoundService.openBeep(CmdBeepMode.info); - delay(2); - deviceLightSoundService.closeBeep(); return true; } finally { transferModuleService.releaseTransferModule();//释放转运模组 @@ -863,7 +866,7 @@ public class CraftsStepService { * */ public boolean coldIsSuitable(HeatModuleCode heatModuleCode, Double temperature) throws Exception { double currentTemperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature(); - log.info("工艺{},当前温度{}",heatModuleCode,currentTemperature); + log.info("工艺{},当前温度{}", heatModuleCode, currentTemperature); webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "加热区温度", currentTemperature)); return currentTemperature < (temperature + 3); } @@ -885,60 +888,10 @@ public class CraftsStepService { * 工艺执行完毕 */ public void finish(HeatModuleCode heatModuleCode, CraftMonitor craftMonitor) throws Exception { + deviceLightSoundService.openBeep(CmdBeepMode.info); + delay(2); + deviceLightSoundService.closeBeep(); craftMonitorService.removeById(craftMonitor.getId()); - /* List trayList = deviceStateService.getDeviceState().getTrays(); - trayList.removeIf((tray) -> tray.getHeatModuleCode().equals(heatModuleCode));*/ - // moveToFeedModule(heatModuleCode); - } - - /*结束后移动至上料区*/ - public void moveToFeedModule(HeatModuleCode heatModuleCode) throws Exception { - try { - boolean feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST);//上料区托盘状态 - while (feedTrayExist) { - deviceLightSoundService.openBeep(CmdBeepMode.info); - delay(2); - deviceLightSoundService.closeBeep(); - } - - Point3D heatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(heatModuleCode);//获取目标加热模块托盘夹取点 - Double transferModuleXPickTrayMoveDistance = devicePositionService.getPosition(DevicePositionCode.transferModuleXPickTrayMoveDistance).getDistance();//获取转运模块X轴拿取托盘进出卡槽移动距离 - Point3D feedAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.feedAreaTrayPoint).getPoint3D();//获取上料区托盘夹爪位置点 - - transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_feed);//获取转运模组锁 - log.info("工艺{},加液机械臂上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 - log.info("工艺{},Z轴抬升至最高", heatModuleCode); - transferModuleService.transferZMoveZero();//Z轴抬升至最高 - log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); - transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX() + transferModuleXPickTrayMoveDistance);//将X轴移动至目标加热模块托盘夹取点 - log.info("工艺{},Z轴下降至夹取点", heatModuleCode); - transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 - log.info("工艺{},X轴移出卡槽", heatModuleCode); - transferModuleService.transferXMoveBy(-transferModuleXPickTrayMoveDistance);//X轴移出卡槽 - log.info("工艺{},Z轴抬升至最高", heatModuleCode); - transferModuleService.transferZMoveZero();//Z轴抬升至最高 - deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(false);//加热区托盘状态 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(false);//托盘状态 - log.info("工艺{},将X轴移动至上料区托盘夹取点", heatModuleCode); - transferModuleService.transferXMove(feedAreaTrayPoint3D.getX());//将X轴移动至上料区托盘夹取点 + 进出卡槽移动距离 - log.info("工艺{},Z轴下降至夹取点", heatModuleCode); - transferModuleService.transferZMove(feedAreaTrayPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 - log.info("工艺{},X轴进入卡槽", heatModuleCode); - transferModuleService.transferXMoveBy(transferModuleXPickTrayMoveDistance);//X轴进入卡槽 - log.info("工艺{},Z轴抬升至最高", heatModuleCode); - transferModuleService.transferZMoveZero();//Z轴抬升至最高 - log.info("工艺{},转运模组释放", heatModuleCode); - transferModuleService.releaseTransferModule();//转运模组释放 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInFeedArea(true);//托盘状态 - deviceLightSoundService.openBeep(CmdBeepMode.info); - delay(2); - deviceLightSoundService.closeBeep(); - } finally { - transferModuleService.releaseTransferModule();//转运模组释放 - } - List trayList = deviceStateService.getDeviceState().getTrays(); - trayList.removeIf((tray) -> tray.getHeatModuleCode().equals(heatModuleCode)); }