From e3b649791c7b3732e156225328da14bbae9f12ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B?= <1063331231@qq.com> Date: Wed, 11 Jun 2025 17:03:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=93=E5=89=8D=E7=94=B3=E8=AF=B7=E5=88=B0?= =?UTF-8?q?=E6=9C=BA=E6=A2=B0=E8=87=82=E7=9A=84=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sgs/app/model/bo/status/device/TrayState.java | 3 + .../sgs/app/service/crafts/CraftsStepService.java | 296 +-------------------- 2 files changed, 13 insertions(+), 286 deletions(-) diff --git a/src/main/java/com/iflytop/sgs/app/model/bo/status/device/TrayState.java b/src/main/java/com/iflytop/sgs/app/model/bo/status/device/TrayState.java index 995b205..42b2a2b 100644 --- a/src/main/java/com/iflytop/sgs/app/model/bo/status/device/TrayState.java +++ b/src/main/java/com/iflytop/sgs/app/model/bo/status/device/TrayState.java @@ -39,6 +39,9 @@ public class TrayState { @Schema(description = "当前托盘的工艺") private CraftsState crafts = null; + @Schema(description = "是否使用机械臂") + private boolean useArm; + @PostConstruct private void init() { for (int i = 0; i < tubes.length; i++) { 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 a653076..cd898b1 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 @@ -69,11 +69,9 @@ public class CraftsStepService { } return switch (method) { case "preHeat" -> preHeat(heatModuleCode, params, craftMonitor); - //case "addLiquid" -> addLiquid(heatModuleCode, params, craftMonitor); case "addThin" -> addThin(heatModuleCode, params, craftMonitor); case "addThick" -> addThick(heatModuleCode, params, craftMonitor); case "heat" -> heat(heatModuleCode, params, craftMonitor); - //case "reduceLiquid" -> reduceLiquid(heatModuleCode, params, craftMonitor); case "clean" -> clean(heatModuleCode, params, craftMonitor); case "dry" -> dry(heatModuleCode, params, craftMonitor); case "anneal" -> anneal(heatModuleCode, params, craftMonitor); @@ -95,169 +93,6 @@ public class CraftsStepService { } /* - * 加液 - * */ - public boolean addLiquid(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception { - try { - /*工艺监控*/ - log.info("工艺{},-------------------------------加液------------------------------", heatModuleCode); - JSONObject result = new JSONObject(); - List finishColumns = new ArrayList<>(); - result.set(ResultCode.SUCCESS.getCode(), finishColumns); - craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitorService.saveOrUpdate(craftMonitor); - /*工艺监控结束*/ - - /*获取配置信息*/ - log.info("工艺{},获取配置信息", heatModuleCode); - deviceStateService.getDeviceState().getSolutionModule().setPumping(true); - Double transferModuleXPickTrayMoveDistance = devicePositionService.getPosition(DevicePositionCode.transferModuleXPickTrayMoveDistance).getDistance();//获取转运模块X轴拿取托盘进出卡槽移动距离 - Point3D feedAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.feedAreaTrayPoint).getPoint3D();//获取上料区托盘夹爪位置点 - Point3D liquidAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D();//获取加液时托盘位置点 - Point3D heatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(heatModuleCode);//获取目标加热模块托盘夹取点 - Double drainDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.drain_distance);//排空距离 - Double preFillDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.pre_fill_distance);//预充距离 - Double preFillPosition = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownPreFillPositon).getPositon(); - Integer containerId = params.getInt("containerId");//容器id - Double volume = params.getDouble("volume");//量 - JSONArray jsonArray = params.getJSONArray("columns");//列数 - Container container = containerService.getById(containerId);//容器id - Solutions solutions = solutionsService.getById(container.getSolutionId());//获取溶液 - Integer channel = container.getChannel();//获取阀门通道 - Double trayTubeHorizontalSpacingDistance = devicePositionService.getPosition(DevicePositionCode.trayTubeHorizontalSpacingDistance).getDistance(); //托盘试管水平间距 - double scale = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.valueOf(solutions.getCode()));//获取转换比 - Double solutionModuleMotorDownInTubeAddPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeAddPositon).getPositon(); //加液模块电机下降进入试管加液位置 - double addLiquidDistance = volume * scale; - /*获取参数结束*/ - - log.info("工艺{},申请转运模组并等待", heatModuleCode); - transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 - - /*预充开始*/ - log.info("工艺{},预充开始", heatModuleCode); - log.info("工艺{},加液机械臂上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 - log.info("工艺{},电磁阀对应通道打开", heatModuleCode); - solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 - log.info("工艺{},加液机械臂下降至预充位置", heatModuleCode); - solutionModuleService.solutionMotorMove(preFillPosition);//加液机械臂下降至预充位置 - log.info("工艺{},排空", heatModuleCode); - solutionModuleService.liquidPumpMove(-drainDistance);//排空 - log.info("工艺{},电磁阀对应通道打开", heatModuleCode); - solutionModuleService.liquidValveSwitchByChannel(channel);//电磁阀对应通道打开 - log.info("工艺{},预充", heatModuleCode); - solutionModuleService.liquidPumpMove(preFillDistance);//预充 - log.info("工艺{},加液机械臂上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 - /*预充结束*/ - - /*移动至加液区开始*/ - log.info("工艺{},移动至加液区", heatModuleCode); - boolean heatTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//获取加热区试管架 - if (heatTrayExist) {//加热区存在试管架 - log.info("工艺{},加热区存在托盘", heatModuleCode); - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleCode.name())); - 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轴进入卡槽 - deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(false);//加热区托盘状态 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(false);//托盘状态 - - } else {//上料区存在托盘 - boolean feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST);//获取上料区传感器状态 - //Assert.isTrue(feedTrayExist, () -> new AppException(ResultCode.FEED_AREA_NO_TRAY)); - log.info("工艺{},上料区存在托盘", heatModuleCode); - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至上料区", feedAreaTrayPoint3D)); - log.info("工艺{},将X轴移动至上料区托盘夹取点 + 进出卡槽移动距离", heatModuleCode); - transferModuleService.transferXMove(feedAreaTrayPoint3D.getX() + transferModuleXPickTrayMoveDistance);//将X轴移动至上料区托盘夹取点 + 进出卡槽移动距离 - log.info("工艺{},Z轴下降至夹取点,使托盘落入石墨加热盘", heatModuleCode); - transferModuleService.transferZMove(feedAreaTrayPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 - log.info("工艺{},X轴进入卡槽", heatModuleCode); - transferModuleService.transferXMoveBy(-transferModuleXPickTrayMoveDistance);//X轴进入卡槽 - deviceStateService.getDeviceState().getSolutionModule().setFeedAreaTrayStatus(false);//加热区托盘状态 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInFeedArea(false);//托盘状态 - } - log.info("工艺{},Z轴抬升至最高", heatModuleCode); - transferModuleService.transferZMoveZero();//Z轴抬升至最高 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加液区", DevicePositionCode.liquidAreaTrayPoint.name())); - log.info("工艺{},移动至加液时托盘位置点", heatModuleCode); - transferModuleService.transferMove(liquidAreaTrayPoint3D);//移动至加液时托盘位置点 - deviceStateService.getDeviceState().getSolutionModule().setPumping(true);//正在加液 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(true);//托盘状态 - boolean clawTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.CLAW_TRAY_EXIST);//获取传感器状态 - //Assert.isTrue(clawTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_NO_TRAY));//加液区无托盘 - /*移动至加液区结束*/ - - - /*开始加液*/ - log.info("工艺{},开始加液", heatModuleCode); - List columns = new ArrayList<>(); - if (jsonArray != null) { - jsonArray.forEach(item -> { - columns.add(Integer.parseInt(item.toString())); - }); - } else { - TubeState[] tubes = deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).getTubes(); - for (TubeState tube : tubes) { - if (tube.isNeedAddSolution()) { - columns.add(tube.getColumnNum()); - } - - } - } - if (!columns.isEmpty()) { - for (int i = 0; i < columns.size(); i++) { - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "移动加液机械臂到指定试管", i)); - double distance = Math.abs(columns.get(i) - 5) * trayTubeHorizontalSpacingDistance;//机械臂右移距离 - log.info("工艺{},机械臂移动到试管位置{}", heatModuleCode, i); - transferModuleService.transferXMove(liquidAreaTrayPoint3D.getX() + distance);//机械臂移动到试管位置 - log.info("工艺{},加液机械臂下降", heatModuleCode); - solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeAddPositon);//加液机械臂下降 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "添加溶液", addLiquidDistance)); - log.info("工艺{},加液", heatModuleCode); - solutionModuleService.liquidPumpMove(addLiquidDistance);//加液 position - log.info("工艺{},加液机械臂上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 - /*工艺监控开始*/ - finishColumns.add(i); - result.set("columns", finishColumns);//添加到结果 - craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); - craftMonitorService.saveOrUpdate(craftMonitor); - /*工艺监控结束*/ - } - } - /*结束加液*/ - - /*移动至加热区*/ - log.info("工艺{},移动至加热区", heatModuleCode); - boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘 - //Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_OCCUPIED));//提示被占用 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleCode)); - log.info("工艺{},加液机械臂上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 - log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); - transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX());//将X轴移动至目标加热模块托盘夹取点 - log.info("工艺{},Z轴下降至夹取点", heatModuleCode); - transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 - log.info("工艺{},X轴移出卡槽", heatModuleCode); - transferModuleService.transferXMoveBy(transferModuleXPickTrayMoveDistance);//X轴移出卡槽 - transferModuleService.transferZMoveZero();//Z轴抬升至最高 - deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(true);//加热区托盘状态 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(true);//托盘状态 - deviceStateService.getDeviceState().getSolutionModule().setPumping(false);//正在加液 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(false);//托盘状态 - return true; - } finally { - deviceStateService.getDeviceState().getSolutionModule().setPumping(false); - transferModuleService.releaseTransferModule();//释放转运模组 - } - } - - /* * 加稀硝酸 * */ public boolean addThin(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception { @@ -297,6 +132,7 @@ public class CraftsStepService { log.info("工艺{},申请转运模组并等待", heatModuleCode); transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 + deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志 /*移动至加液区开始*/ @@ -405,6 +241,7 @@ public class CraftsStepService { } finally { deviceStateService.getDeviceState().getSolutionModule().setPumping(false); transferModuleService.releaseTransferModule();//释放转运模组 + deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(false);//使用机械臂标志 } } @@ -448,6 +285,7 @@ public class CraftsStepService { log.info("工艺{},申请转运模组并等待", heatModuleCode); transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 + deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志 /*移动至加液区*/ @@ -587,128 +425,10 @@ public class CraftsStepService { } finally { deviceStateService.getDeviceState().getSolutionModule().setPumping(false); transferModuleService.releaseTransferModule();//释放转运模组 + deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(false );//使用机械臂标志 } } - /* - * 抽液 - * */ - public boolean reduceLiquid(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception { - - try { - /*工艺监控开始*/ - JSONObject result = new JSONObject(); - List finishColumns = new ArrayList<>(); - craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitorService.saveOrUpdate(craftMonitor); - /*工艺监控结束*/ - - /*获取参数开始*/ - Double height = params.getDouble("height");//抽液试管头部到试管底部的高度 - JSONArray jsonArray = params.getJSONArray("columns");//列数 - if (height > 50) { - throw new AppException(ResultCode.CRAFT_PARAMS_MISTAKE); - } - Point3D heatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(heatModuleCode);//获取目标加热模块托盘夹取点 - Double transferModuleXPickTrayMoveDistance = devicePositionService.getPosition(DevicePositionCode.transferModuleXPickTrayMoveDistance).getDistance();//获取转运模块X轴拿取托盘进出卡槽移动距离 - Point3D liquidAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D();//获取加液时托盘位置点 - Double trayTubeHorizontalSpacingDistance = devicePositionService.getPosition(DevicePositionCode.trayTubeHorizontalSpacingDistance).getDistance();//获取托盘试管水平间距 - double solutionModuleMotorDownInTubeExtPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeExtPositon).getDistance();//加液模块电机下降进入试管抽取位置 - Double reduceDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.reduce_distance);//抽液距离 - /*获取参数结束*/ - - boolean heatTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//获取加热区传感器状态 - Assert.isTrue(heatTrayExist, () -> new AppException(ResultCode.CRAFT_TARGET_HEAT_NO_TRAY));//加热区无托盘 - log.info("工艺{},申请转运模组并等待", heatModuleCode); - transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 - log.info("工艺{},加液机械臂上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至", heatModuleCode.name())); - 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);//托盘状态 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加液位置", DevicePositionCode.liquidAreaTrayPoint.name())); - log.info("工艺{},机械臂移动至加液位置", heatModuleCode); - transferModuleService.transferMove(liquidAreaTrayPoint3D);//移动至加液时托盘位置点 - deviceStateService.getDeviceState().getSolutionModule().setPumping(true);//正在加液 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(true);//托盘状态 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "电磁阀打开", SolutionCode.waste.name())); - log.info("工艺{},电磁阀对应通道打开", heatModuleCode); - - /*抽液开始*/ - solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 - List columns = new ArrayList<>(); - if (jsonArray != null) { - jsonArray.forEach(item -> { - columns.add(Integer.parseInt(item.toString())); - }); - } else { - TubeState[] tubes = deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).getTubes(); - for (TubeState tube : tubes) { - if (tube.isNeedAddSolution()) { - columns.add(tube.getColumnNum()); - } - - } - } - for (int i = 0; i < columns.size(); i++) { - double distance = Math.abs(columns.get(i) - 5) * trayTubeHorizontalSpacingDistance; - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至试管位置", i)); - log.info("工艺{},机械臂移动至试管位置", heatModuleCode); - transferModuleService.transferXMove(liquidAreaTrayPoint3D.getX() + distance);//机械臂移动到试管位置 - log.info("工艺{},加液模块下降进入试管", heatModuleCode); - solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeExtPositon + height);//加液模块下降进入试管 - log.info("工艺{},开始抽液", heatModuleCode); - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "开始抽液", -10)); - solutionModuleService.liquidPumpMove(-reduceDistance);//开始抽液 - log.info("工艺{},加液模块上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液模块上升 - - /*工艺监控开始*/ - finishColumns.add(i); - result.set("columns", finishColumns);//添加到结果 - craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); - craftMonitorService.saveOrUpdate(craftMonitor);//保存到监控 - /*工艺监控结束*/ - } - log.info("工艺{},加液模块上升至最高,移出试管", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液模块上升至最高,移出试管 - /*抽液结束*/ - - /*移动至加热区开始*/ - log.info("工艺{},移动至托盘至加液位置点", heatModuleCode); - boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘 - //Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_OCCUPIED));//提示被占用 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleCode)); - log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); - transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX());//将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(true);//加热区托盘状态 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(true);//托盘状态 - deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(false);//托盘状态 - return true; - } finally { - deviceStateService.getDeviceState().getSolutionModule().setPumping(false); - transferModuleService.releaseTransferModule();//释放转运模组 - } - - } - /* * 加热 @@ -802,6 +522,7 @@ public class CraftsStepService { log.info("工艺{},申请转运模组并等待", heatModuleCode); transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 + deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志 log.info("工艺{},加液机械臂上升", heatModuleCode); solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 @@ -929,6 +650,7 @@ public class CraftsStepService { deviceStateService.getDeviceState().getSolutionModule().setPumping(false); log.info("工艺{},释放转运模组", heatModuleCode); transferModuleService.releaseTransferModule();//释放转运模组 + deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(false);//使用机械臂标志 } } @@ -1073,6 +795,7 @@ public class CraftsStepService { log.info("工艺{},加热完毕", heatModuleCode); log.info("工艺{},获取转运模组锁", heatModuleCode); transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_heat);//获取转运模组锁 + deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志 log.info("工艺{},Z轴抬升至最高", heatModuleCode); transferModuleService.transferZMoveZero();//Z轴抬升至最高 log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); @@ -1112,6 +835,7 @@ public class CraftsStepService { return true; } finally { transferModuleService.releaseTransferModule();//释放转运模组 + deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(false);//使用机械臂标志 } } @@ -1151,8 +875,8 @@ public class CraftsStepService { */ public void finish(HeatModuleCode heatModuleCode, CraftMonitor craftMonitor) throws Exception { craftMonitorService.removeById(craftMonitor.getId()); - List trayList = deviceStateService.getDeviceState().getTrays(); - trayList.removeIf((tray) -> tray.getHeatModuleCode().equals(heatModuleCode)); + /* List trayList = deviceStateService.getDeviceState().getTrays(); + trayList.removeIf((tray) -> tray.getHeatModuleCode().equals(heatModuleCode));*/ // moveToFeedModule(heatModuleCode); }