diff --git a/db/app.db b/db/app.db deleted file mode 100644 index 81fe841..0000000 Binary files a/db/app.db and /dev/null differ diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/OutTrayCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/OutTrayCommand.java index 3be7bec..90fed59 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/control/OutTrayCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/OutTrayCommand.java @@ -6,6 +6,7 @@ import com.iflytop.sgs.app.model.bo.Point3D; import com.iflytop.sgs.app.model.bo.status.device.TrayState; import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.service.api.DevicePositionService; +import com.iflytop.sgs.app.service.device.DeviceLightSoundService; import com.iflytop.sgs.app.service.device.DeviceSensorService; import com.iflytop.sgs.app.service.device.DeviceStateService; import com.iflytop.sgs.app.service.device.module.HeatModuleService; @@ -14,6 +15,7 @@ import com.iflytop.sgs.app.service.device.module.TransferModuleService; import com.iflytop.sgs.common.annotation.CommandMapping; import com.iflytop.sgs.common.enums.DeviceSensorCode; import com.iflytop.sgs.common.enums.HeatModuleCode; +import com.iflytop.sgs.common.enums.cmd.CmdBeepMode; import com.iflytop.sgs.common.enums.data.DevicePositionCode; import com.iflytop.sgs.common.exception.AppException; import com.iflytop.sgs.common.result.ResultCode; @@ -73,9 +75,6 @@ public class OutTrayCommand extends BaseCommandHandler { deviceStateService.getDeviceState().getTransferModule().setTrayStatus(false);//设定托盘夹爪为FALSE deviceStateService.getDeviceState().getHeatModuleByCode(targetHeatModuleCode).setTrayStatus(false);//设定目标加热模块托盘状态 deviceStateService.getDeviceState().getSolutionModule().setFeedAreaTrayStatus(true);//设定上料区托盘状态 - List trayList = deviceStateService.getDeviceState().getTrays(); - trayList.removeIf(TrayState::isInFeedArea); - deviceStateService.getDeviceState().getSolutionModule().setFeedAreaTrayStatus(false); } finally { deviceStateService.getCommandMutexState().get().setTransferCommandExecuting(false); } 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 413b69b..1189bc5 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,6 +7,7 @@ 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; @@ -78,16 +79,15 @@ public class CraftsStepService { } /* - * - * 预热 + * 退火区预热 * */ public boolean preHeat(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception { -// Double temperature = params.getDouble("temperature"); -// log.info("工艺{},预热", heatModuleCode); -// heatModuleService.heatRodOpen(heatModuleCode, temperature); -// deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTargetTemperature(temperature);//设置加热温度 -// deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.heating);//加热中 -// webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "开始预热", temperature)); + Double temperature = params.getDouble("temperature"); + log.info("工艺{},预热", HeatModuleCode.heat_module_04); + heatModuleService.heatRodOpen(HeatModuleCode.heat_module_04, temperature); + deviceStateService.getDeviceState().getHeatModuleByCode(HeatModuleCode.heat_module_04).setTargetTemperature(temperature);//设置加热温度 + deviceStateService.getDeviceState().getHeatModuleByCode(HeatModuleCode.heat_module_04).setHeatingType(HeatingType.heating);//加热中 + webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(HeatModuleCode.heat_module_04.toString(), "退火区开始预热", temperature)); return true; } @@ -96,22 +96,53 @@ public class CraftsStepService { * */ public boolean addLiquid(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception { try { + /*工艺监控*/ JSONObject result = new JSONObject(); List finishColumns = new ArrayList<>(); result.set(ResultCode.SUCCESS.getCode(), finishColumns); craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitorService.saveOrUpdate(craftMonitor);//保存监控 + craftMonitorService.saveOrUpdate(craftMonitor); + /*工艺监控结束*/ + + /*获取配置信息*/ 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");//列数 + //Assert.isTrue(containerId != null && volume != null, () -> new AppException(ResultCode.CRAFT_PARAMS_MISTAKE));//参数错误 + 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 = solutions.getDoubleScale();//根据溶液获取转换比 + Double solutionModuleMotorDownInTubeAddPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeAddPositon).getPositon(); //加液模块电机下降进入试管加液位置 + double addLiquidDistance = volume * scale; + /*获取参数结束*/ + log.info("工艺{},申请转运模组并等待", heatModuleCode); transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 + + /*预充开始*/ log.info("工艺{},加液机械臂上升", heatModuleCode); solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 - boolean heatTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//获取加热区传感器状态 - if (heatTrayExist) {//加热区存在托盘 + solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 + solutionModuleService.solutionMotorMove(preFillPosition);//加液机械臂下降至预充位置 + solutionModuleService.liquidPumpMove(-drainDistance);//排空 + solutionModuleService.liquidValveSwitchByChannel(channel);//电磁阀对应通道打开 + solutionModuleService.liquidPumpMove(preFillDistance);//预充 + solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 + /*预充结束*/ + + /*移动至加液区开始*/ + boolean heatTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//获取加热区试管架 + if (heatTrayExist) {//加热区存在试管架 log.info("工艺{},加热区存在托盘", heatModuleCode); log.info("工艺{},机械臂移动至加热区", heatModuleCode); webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleCode.name())); @@ -148,81 +179,49 @@ public class CraftsStepService { 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));//加液区无托盘 - Integer containerId = params.getInt("containerId");//容器id - Double volume = params.getDouble("volume");//量 - JSONArray jsonArray = params.getJSONArray("columns");//列数 - //Assert.isTrue(containerId != null && volume != null, () -> new AppException(ResultCode.CRAFT_PARAMS_MISTAKE));//参数错误 - Container container = containerService.getById(containerId);//容器id - Solutions solutions = solutionsService.getById(container.getSolutionId());//获取溶液 - Integer channel = container.getChannel();//获取阀门通道 - Integer currentChannel = deviceSensorService.readLiquidValvePosition();//获取当前阀门的状态 - Double trayTubeHorizontalSpacingDistance = devicePositionService.getPosition(DevicePositionCode.trayTubeHorizontalSpacingDistance).getDistance(); //托盘试管水平间距 - //double preFillDistance = solutions.getDoublePreDistance();//获取预充距离 - Double drainDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.drain_distance);//排空距离 - Double preFillDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.pre_fill_distance);//预充距离 - Point3D liquidAreaTrayPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D(); //获取加液区上方托盘点位 - if (!channel.equals(currentChannel)) {//判断是否与当前加酸的通道一致 不一致排空 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "电磁阀废液通道打开", SolutionCode.waste)); - log.info("工艺{},电磁阀废液通道打开", heatModuleCode); - solutionModuleService.liquidValveSwitch(SolutionCode.waste);//废液通道打开 - log.info("工艺{},排空", heatModuleCode); - solutionModuleService.liquidPumpMove(-drainDistance);//排空 - } - double scale = solutions.getDoubleScale();//根据溶液获取转换比 - solutionModuleService.liquidPumpMove(preFillDistance);//预充 - double position = volume * scale; - Double solutionModuleMotorDownInTubeAddPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeAddPositon).getPositon(); //加液模块电机下降进入试管加液位置 - log.info("工艺{},电磁阀对应通道打开", heatModuleCode); - solutionModuleService.liquidValveSwitchByChannel(channel);//电磁阀对应通道打开 - if (jsonArray != null) {//断电恢复 - for (int i = 0; i < jsonArray.size(); i++) { - int column = jsonArray.getInt(i);//列号 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "移动加液机械臂到指定试管", column)); - double distance = Math.abs(column - 5) * trayTubeHorizontalSpacingDistance;//机械臂右移距离 - log.info("工艺{},机械臂移动到试管位置{}", heatModuleCode, column); - transferModuleService.transferXMove(liquidAreaTrayPoint.getX() + distance);//机械臂移动到试管位置 - log.info("工艺{},加液机械臂下降", heatModuleCode); - solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeAddPositon);//加液机械臂下降 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "添加溶液", position)); - log.info("工艺{},加液", heatModuleCode); - solutionModuleService.liquidPumpMove(position);//加液 position - log.info("工艺{},加液机械臂上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 - finishColumns.add(column); - result.set("columns", finishColumns);//添加到结果 - craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); - craftMonitorService.saveOrUpdate(craftMonitor);//保存到监控 - } + /*移动至加液区结束*/ + + + /*开始加液*/ + List columns = new ArrayList<>(); + if (jsonArray != null) { + jsonArray.forEach(item -> { + columns.add(Integer.parseInt(item.toString())); + }); } else { - List columns = new ArrayList<>(); TubeState[] tubes = deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).getTubes(); - for (int i = 0; i < tubes.length; i++) { - if (tubes[i].isNeedAddSolution()) { - columns.add(tubes[i].getColumnNum()); + 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(liquidAreaTrayPoint.getX() + distance);//机械臂移动到试管位置 + transferModuleService.transferXMove(liquidAreaTrayPoint3D.getX() + distance);//机械臂移动到试管位置 log.info("工艺{},加液机械臂下降", heatModuleCode); solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeAddPositon);//加液机械臂下降 - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "添加溶液", position)); + webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "添加溶液", addLiquidDistance)); log.info("工艺{},加液", heatModuleCode); - solutionModuleService.liquidPumpMove(position);//加液 position + 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);//保存到监控 + craftMonitorService.saveOrUpdate(craftMonitor); + /*工艺监控结束*/ } } - //移动至加热区 + /*结束加液*/ + + /*移动至加热区*/ boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘 Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_OCCUPIED));//提示被占用 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleCode)); @@ -252,13 +251,16 @@ public class CraftsStepService { 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);//保存到监控 + craftMonitorService.saveOrUpdate(craftMonitor); + /*工艺监控结束*/ - deviceStateService.getDeviceState().getSolutionModule().setPumping(true); + /*获取参数开始*/ Double height = params.getDouble("height");//抽液试管头部到试管底部的高度 + JSONArray jsonArray = params.getJSONArray("columns");//列数 if (height > 50) { throw new AppException(ResultCode.CRAFT_PARAMS_MISTAKE); } @@ -266,6 +268,11 @@ public class CraftsStepService { 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); @@ -290,68 +297,53 @@ public class CraftsStepService { deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(true);//托盘状态 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "电磁阀打开", SolutionCode.waste.name())); log.info("工艺{},电磁阀对应通道打开", heatModuleCode); + + /*抽液开始*/ solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 - Double trayTubeHorizontalSpacingDistance = devicePositionService.getPosition(DevicePositionCode.trayTubeHorizontalSpacingDistance).getDistance();//获取托盘试管水平间距 - double solutionModuleMotorDownInTubeExtPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeExtPositon).getDistance() + height;//加液模块电机下降进入试管抽取位置 - Double drainDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.drain_distance);//排空距离 - JSONArray jsonArray = params.getJSONArray("columns");//列数 + List columns = new ArrayList<>(); if (jsonArray != null) { - for (int i = 0; i < jsonArray.size(); i++) { - int column = jsonArray.getInt(i);//列号 - double distance = Math.abs(column - 5) * trayTubeHorizontalSpacingDistance; - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至试管位置", column)); - log.info("工艺{},机械臂移动到试管位置", heatModuleCode); - transferModuleService.transferXMove(liquidAreaTrayPoint3D.getX() + distance);//机械臂移动到试管位置 - log.info("工艺{},加液模块下降进入试管", heatModuleCode); - solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeExtPositon);//加液模块下降进入试管 - log.info("工艺{},开始抽液", heatModuleCode); - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "开始抽液", -10)); - solutionModuleService.liquidPumpMove(-drainDistance);//排空 - log.info("工艺{},加液模块上升", heatModuleCode); - solutionModuleService.solutionMotorMoveZero();//加液模块上升 - finishColumns.add(column); - result.set("columns", finishColumns);//添加到结果 - craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); - craftMonitorService.saveOrUpdate(craftMonitor);//保存到监控 - } + jsonArray.forEach(item -> { + columns.add(Integer.parseInt(item.toString())); + }); } else { - List columns = new ArrayList<>(); TubeState[] tubes = deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).getTubes(); - for (int i = 0; i < tubes.length; i++) { - if (tubes[i].isNeedAddSolution()) { - columns.add(tubes[i].getColumnNum()); + 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);//加液模块下降进入试管 - log.info("工艺{},开始抽液", heatModuleCode); - webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "开始抽液", -10)); - solutionModuleService.liquidPumpMove(-10);//抽液 reduceNumber0.1 - 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);//保存到监控 - } + } + 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); - transferModuleService.transferMove(liquidAreaTrayPoint3D);//移动至托盘至加液位置点 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); @@ -360,9 +352,10 @@ public class CraftsStepService { 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().getSolutionModule().setPumping(false);//正在加液 deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(false);//托盘状态 return true; } finally { @@ -377,9 +370,12 @@ public class CraftsStepService { * 加热 * */ public boolean heat(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception { + /*工艺监控清理上步的记录*/ JSONObject result = new JSONObject(); craftMonitor.setCurrentStepResult(String.valueOf(result)); craftMonitorService.saveOrUpdate(craftMonitor); + /*工艺监控清理上步的记录*/ + Double temperature = params.getDouble("temperature");//温度 Integer time = params.getInt("time");//秒 //Assert.isTrue(temperature != null && time != null, () -> new AppException(ResultCode.CRAFT_PARAMS_MISTAKE));//参数错误 @@ -400,14 +396,17 @@ public class CraftsStepService { delay(60); cycle--; clock = clock + 60; + /*保存到工艺监控*/ result.set("time", clock);//添加到结果 craftMonitor.setCurrentStepResult(String.valueOf(result)); craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); craftMonitorService.saveOrUpdate(craftMonitor);//保存到监控 + /*保存到工艺监控*/ } delay(seconds); log.info("工艺{},加热结束", heatModuleCode); craftMonitor.setCurrentStepResult(String.valueOf(result)); + craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); craftMonitorService.saveOrUpdate(craftMonitor);//保存到监控 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "加热结束,持续时间", time)); return true; @@ -418,11 +417,13 @@ public class CraftsStepService { * */ public boolean clean(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);//保存到监控 + /*保存到监控结束*/ + /*获取参数开始*/ deviceStateService.getDeviceState().getSolutionModule().setPumping(true); Double volume = params.getDouble("volume") == null ? 2.0 : params.getDouble("volume");//加水量 Integer cycle = params.getInt("cycle");//次数 @@ -435,13 +436,19 @@ public class CraftsStepService { Point3D liquidAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D();//获取加液时托盘位置点 Double trayTubeHorizontalSpacingDistance = devicePositionService.getPosition(DevicePositionCode.trayTubeHorizontalSpacingDistance).getDistance();//获取托盘试管水平间距 Double solutionModuleMotorDownInTubeExtPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeExtPositon).getPositon();//加液模块电机下降进入试管抽取位置 - Solutions solutions = solutionsService.getByCode(SolutionCode.water.name());//获取酸 - double cleanWaterVolume = volume * solutions.getDoubleScale();//清洁时加水的量 - double pumpPosition = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.number_reduce);//抽液时蠕动泵移动 + Double solutionModuleMotorDownInTubeAddPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeAddPositon).getPositon();//加液模块电机下降进入试管加液位置 + Double waterScale = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.water);//蒸馏水的系数 + double cleanWaterDistance = volume * waterScale;//清洁时泵的移动距离 + Double reduceDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.reduce_distance);//抽液距离 + Double drainDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.drain_distance);//排空距离 + Double preFillDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.pre_fill_distance);//过量预充距离 + Double preFillPosition = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownPreFillPositon).getPositon();//机械臂预充时下降距离 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleTrayClawPoint3D)); + /*获取参数结束*/ log.info("工艺{},申请转运模组并等待", heatModuleCode); transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待 + log.info("工艺{},加液机械臂上升", heatModuleCode); solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 log.info("工艺{},将X轴移动至目标加热模块托盘夹取点 + 进出卡槽移动距离", heatModuleCode); @@ -456,58 +463,70 @@ public class CraftsStepService { webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加液区", liquidAreaTrayPoint3D)); deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(false);//加热区托盘状态 deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(false);//托盘状态 - deviceStateService.getDeviceState().getSolutionModule().setPumping(true);//正在加液 deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(true);//托盘状态 deviceStateService.getDeviceState().getSolutionModule().setPumping(true); transferModuleService.transferMove(liquidAreaTrayPoint3D);//移动至加液时托盘位置点 - //排空 - Double drainDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.drain_distance);//排空距离 + /*列号开始*/ + List columns = new ArrayList<>(); + TubeState[] tubes = deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).getTubes(); + for (TubeState tube : tubes) { + if (tube.isNeedAddSolution()) { + columns.add(tube.getColumnNum()); + } + } + /*列号结束*/ + + + /*抽液开始*/ solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 - solutionModuleService.liquidPumpMove(-drainDistance);//蠕动泵排空 - //预充 - Double preFillDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.pre_fill_distance);//预充距离 - JSONArray jsonArray = params.getJSONArray("columns");//列数 - if (jsonArray != null) { - for (int j = 0; j < jsonArray.size(); j++) { - int column = jsonArray.getInt(j); - double distance = Math.abs(column - 5) * trayTubeHorizontalSpacingDistance;//x轴移动距离 + for (int j = 0; j < columns.size(); j++) { + double distance = Math.abs(columns.get(j) - 5) * trayTubeHorizontalSpacingDistance;//x轴移动距离 + webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动到试管位置", j)); + log.info("工艺{},机械臂移动到试管位置", heatModuleCode); + transferModuleService.transferXMove(liquidAreaTrayPoint3D.getX() + distance);//机械臂移动到试管位置 + log.info("工艺{},加液模块下降进入试管抽取位置", heatModuleCode); + solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeExtPositon + height);//加液模块下降进入试管抽取位置 + log.info("工艺{},电磁阀对应通道打开", heatModuleCode); + + log.info("工艺{},蠕动泵抽水", heatModuleCode); + solutionModuleService.liquidPumpMove(-reduceDistance);//蠕动泵抽水 + log.info("工艺{},加液模块上升至最高,移出试管", heatModuleCode); + solutionModuleService.solutionMotorMoveZero();//加液模块上升至最高,移出试管 + } + /*抽液结束*/ + + + /*预充开始*/ + log.info("工艺{},清洗-预充开始", heatModuleCode); + solutionModuleService.liquidPumpMove(-drainDistance);//排空 + solutionModuleService.solutionMotorMove(preFillPosition);//加液机械臂下降至预充位置 + solutionModuleService.liquidValveSwitch(SolutionCode.water);//电磁阀对应通道打开 + solutionModuleService.liquidPumpMove(preFillDistance);//预充 + solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 + /*预充结束*/ + + + /*清洗开始*/ + for (int i = 0; i < cycle; i++) { + /*加*/ + log.info("工艺{},电磁阀蒸馏水通道打开", heatModuleCode); + solutionModuleService.liquidValveSwitch(SolutionCode.water);//电磁阀对应通道打开 + for (int j = 0; j < columns.size(); j++) { + double distance = Math.abs(columns.get(j) - 5) * trayTubeHorizontalSpacingDistance;//x轴移动距离 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动到试管位置", j)); log.info("工艺{},机械臂移动到试管位置", heatModuleCode); transferModuleService.transferXMove(liquidAreaTrayPoint3D.getX() + distance);//机械臂移动到试管位置 log.info("工艺{},加液模块下降进入试管抽取位置", heatModuleCode); - solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeExtPositon + height);//加液模块下降进入试管抽取位置 - for (int i = 0; i < cycle; i++) { - log.info("工艺{},电磁阀对应通道打开", heatModuleCode); - solutionModuleService.liquidValveSwitch(SolutionCode.water);//电磁阀对应通道打开 - solutionModuleService.liquidPumpMove(preFillDistance);//预充 - Thread.sleep(500); - log.info("工艺{},蠕动泵加水", heatModuleCode); - solutionModuleService.liquidPumpMove(cleanWaterVolume);//蠕动泵加水 - - log.info("工艺{},电磁阀对应通道打开", heatModuleCode); - solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 - Thread.sleep(500); - log.info("工艺{},蠕动泵抽水", heatModuleCode); - solutionModuleService.liquidPumpMove(-pumpPosition);//蠕动泵抽水 - solutionModuleService.liquidPumpMove(-drainDistance);//蠕动泵排空 - } - finishColumns.add(column); - result.set("columns", finishColumns);//添加到结果 - craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); - craftMonitorService.saveOrUpdate(craftMonitor);//保存到监控 + solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeAddPositon);//加液模块下降进入试管加液位置 + log.info("工艺{},蠕动泵加水", heatModuleCode); + solutionModuleService.liquidPumpMove(cleanWaterDistance);//蠕动泵加水 log.info("工艺{},加液模块上升至最高,移出试管", heatModuleCode); solutionModuleService.solutionMotorMoveZero();//加液模块上升至最高,移出试管 } - } else { - List columns = new ArrayList<>(); - TubeState[] tubes = deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).getTubes(); - for (int i = 0; i < tubes.length; i++) { - if (tubes[i].isNeedAddSolution()) { - columns.add(tubes[i].getColumnNum()); - } - - } + log.info("工艺{},电磁阀废液通道打开", heatModuleCode); + Thread.sleep(1000); + /*抽*/ + solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 for (int j = 0; j < columns.size(); j++) { double distance = Math.abs(columns.get(j) - 5) * trayTubeHorizontalSpacingDistance;//x轴移动距离 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动到试管位置", j)); @@ -515,30 +534,22 @@ public class CraftsStepService { transferModuleService.transferXMove(liquidAreaTrayPoint3D.getX() + distance);//机械臂移动到试管位置 log.info("工艺{},加液模块下降进入试管抽取位置", heatModuleCode); solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeExtPositon + height);//加液模块下降进入试管抽取位置 - for (int i = 0; i < cycle; i++) { - log.info("工艺{},电磁阀对应通道打开", heatModuleCode); - solutionModuleService.liquidValveSwitch(SolutionCode.water);//电磁阀对应通道打开 - solutionModuleService.liquidPumpMove(preFillDistance);//预充 - Thread.sleep(500); - log.info("工艺{},蠕动泵加水", heatModuleCode); - solutionModuleService.liquidPumpMove(cleanWaterVolume);//蠕动泵加水 - - log.info("工艺{},电磁阀对应通道打开", heatModuleCode); - solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 - Thread.sleep(500); - log.info("工艺{},蠕动泵抽水", heatModuleCode); - solutionModuleService.liquidPumpMove(-pumpPosition);//蠕动泵抽水 - solutionModuleService.liquidPumpMove(-drainDistance);//蠕动泵排空 - } - finishColumns.add(j); - result.set("columns", finishColumns);//添加到结果 - craftMonitor.setCurrentStepResult(String.valueOf(result)); - craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); - craftMonitorService.saveOrUpdate(craftMonitor);//保存到监控 + log.info("工艺{},电磁阀对应通道打开", heatModuleCode); + + log.info("工艺{},蠕动泵抽水", heatModuleCode); + solutionModuleService.liquidPumpMove(-reduceDistance);//抽水 log.info("工艺{},加液模块上升至最高,移出试管", heatModuleCode); solutionModuleService.solutionMotorMoveZero();//加液模块上升至最高,移出试管 } + result.set("cycle", i+1);//添加到结果 + craftMonitor.setCurrentStepResult(String.valueOf(result)); + craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); + craftMonitorService.saveOrUpdate(craftMonitor);//保存到监控 + } + /*清洗结束*/ + + log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX());//将X轴移动至目标加热模块托盘夹取点 log.info("工艺{},Z轴下降至夹取点,使托盘落入石墨加热盘", heatModuleCode); @@ -563,9 +574,13 @@ public class CraftsStepService { * 烘干 * */ public boolean dry(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception { + /*工艺监控清理上步的记录*/ JSONObject result = new JSONObject(); craftMonitor.setCurrentStepResult(String.valueOf(result)); craftMonitorService.saveOrUpdate(craftMonitor); + /*工艺监控清理上步的记录*/ + + Double temperature = params.getDouble("temperature");//秒 Integer time = params.getInt("time");//秒 //Assert.isTrue(temperature != null && time != null, () -> new AppException(ResultCode.CRAFT_PARAMS_MISTAKE));//参数错误 @@ -616,10 +631,10 @@ public class CraftsStepService { Double feedTemperature = params.getDouble("feedTemperature");//下料温度 Integer time = params.getInt("time");//秒 //Assert.isTrue(temperature != null && time != null, () -> new AppException(ResultCode.CRAFT_PARAMS_MISTAKE));//参数错误 - boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//加热模块有无托盘 - Assert.isTrue(heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_TARGET_HEAT_NO_TRAY));//提示无托盘 + boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode); + Assert.isTrue(heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_TARGET_HEAT_NO_TRAY));//提示加热模块无托盘 while (deviceSensorService.getTrayStateByHeatModuleCode(HeatModuleCode.heat_module_04)) {//判断退火区是否被占用 - delay(10);//等待30秒 + delay(10);//等待10秒 } Point3D annealTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(HeatModuleCode.heat_module_04);//获取退火区托盘夹取点 Point3D heatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(heatModuleCode);//获取目标加热模块托盘夹取点 @@ -715,7 +730,7 @@ public class CraftsStepService { heatModuleService.fanStart(heatModuleCode);//散热打开 deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setFanOpen(true); //设置加热区风扇打开 while (!codeIsSuitable(heatModuleCode, 100.0)) { - delay(3); + delay(5); } log.info("工艺{},散热关闭", heatModuleCode); heatModuleService.fanClose(heatModuleCode);//散热关闭 @@ -766,54 +781,8 @@ public class CraftsStepService { */ public void finish(HeatModuleCode heatModuleCode, CraftMonitor craftMonitor) throws Exception { craftMonitorService.removeById(craftMonitor.getId()); - //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)); } diff --git a/src/main/java/com/iflytop/sgs/common/enums/SystemConfigCode.java b/src/main/java/com/iflytop/sgs/common/enums/SystemConfigCode.java index 70652ad..20cac91 100644 --- a/src/main/java/com/iflytop/sgs/common/enums/SystemConfigCode.java +++ b/src/main/java/com/iflytop/sgs/common/enums/SystemConfigCode.java @@ -7,11 +7,15 @@ import lombok.Getter; */ @Getter public enum SystemConfigCode { + water("水加液系数"), + thick("浓硝酸加液系数"), + thin("稀硝酸加液系数"), + back_flow_distance("稀硝酸加液系数"), pre_fill_distance("预充距离"), drain_distance("排空距离"), - number_reduce("抽液时机蠕动泵的转数"), - cycle_clean_max("清洁最大次数"), - liquid_max_speed("蠕动泵最大转速"), + reduce_distance("过量抽液距离"), + cycle_clean_max("允许的最大清洁次数"), + liquid_max_speed("蠕动泵最大转速限制"), ignore_door_self_test("忽略门自检"), ignore_dual_robot_self_test("忽略加液升降自检"), diff --git a/src/main/java/com/iflytop/sgs/common/enums/data/DevicePositionCode.java b/src/main/java/com/iflytop/sgs/common/enums/data/DevicePositionCode.java index 544a1b4..636e89e 100644 --- a/src/main/java/com/iflytop/sgs/common/enums/data/DevicePositionCode.java +++ b/src/main/java/com/iflytop/sgs/common/enums/data/DevicePositionCode.java @@ -18,7 +18,10 @@ public enum DevicePositionCode { transferModuleXPickTrayMoveDistance(DevicePositionType.DISTANCE, "转运模块X轴拿取托盘进出卡槽移动距离"), ////////////////位置 - + /** + * 加液模块电机下降进入试管加液位置 + */ + solutionModuleMotorDownPreFillPositon(DevicePositionType.POSITION, "加液模块电机下降进入预充位置"), /** * 加液模块电机下降进入试管加液位置 */