|
|
@ -146,6 +146,8 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},将X轴移动至上料区托盘夹取点 + 进出卡槽移动距离", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(feedAreaTrayPoint3D.getX() + transferModuleXPickTrayMoveDistance);//将X轴移动至上料区托盘夹取点 + 进出卡槽移动距离 |
|
|
|
log.info("工艺{},Z轴下降至夹取点,使托盘落入石墨加热盘", heatModuleCode); |
|
|
|
feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST);//获取上料区传感器状态 |
|
|
|
Assert.isTrue(feedTrayExist, () -> new AppException(ResultCode.FEED_AREA_NO_TRAY)); |
|
|
|
transferModuleService.transferZMove(feedAreaTrayPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 |
|
|
|
log.info("工艺{},X轴进入卡槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(-transferModuleXPickTrayMoveDistance);//X轴进入卡槽 |
|
|
@ -159,16 +161,16 @@ public class CraftsStepService { |
|
|
|
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));//加液区无托盘 |
|
|
|
Assert.isTrue(clawTrayExist, () -> new AppException(ResultCode.CRAFT_SOLUTION_NO_TRAY));//加液区无托盘 |
|
|
|
/*移动至加液区结束*/ |
|
|
|
|
|
|
|
|
|
|
|
/*预充开始*/ |
|
|
|
feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST);//获取传感器状态 |
|
|
|
Assert.isTrue(!feedTrayExist, () -> new AppException(ResultCode.FEED_AREA_EXIST_TRAY));//上料区有托盘 |
|
|
|
log.info("工艺{},预充开始", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(heatArea1TrayClawPoint.getX());//转运模块移动至加热位1 |
|
|
|
log.info("工艺{},加液机械臂下降至预充位置", heatModuleCode); |
|
|
|
feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST);//获取传感器状态 |
|
|
|
Assert.isTrue(!feedTrayExist, () -> new AppException(ResultCode.FEED_AREA_EXIST_TRAY));//上料区存在托盘 |
|
|
|
solutionModuleService.solutionMotorMove(liquidAreaPreFillPoint);//加液机械臂下降至至预充点位 |
|
|
|
log.info("工艺{},电磁阀对应通道打开", heatModuleCode); |
|
|
|
solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 |
|
|
@ -224,12 +226,14 @@ public class CraftsStepService { |
|
|
|
|
|
|
|
/*移动至加热区*/ |
|
|
|
boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘 |
|
|
|
Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_OCCUPIED));//提示被占用 |
|
|
|
Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_EXIST_TRAY));//提示被占用 |
|
|
|
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleCode)); |
|
|
|
log.info("工艺{},加液机械臂上升", heatModuleCode); |
|
|
|
solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 |
|
|
|
log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX());//将X轴移动至目标加热模块托盘夹取点 |
|
|
|
heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘 |
|
|
|
Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_EXIST_TRAY));//提示被占用 |
|
|
|
log.info("工艺{},Z轴下降至夹取点", heatModuleCode); |
|
|
|
transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 |
|
|
|
log.info("工艺{},X轴移出卡槽", heatModuleCode); |
|
|
@ -303,13 +307,15 @@ public class CraftsStepService { |
|
|
|
|
|
|
|
/*移动至加液区*/ |
|
|
|
boolean heatTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//获取加热区试管架 |
|
|
|
Assert.isTrue(heatTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_NO_TRAY));//目标加热区无托盘 |
|
|
|
Assert.isTrue(heatTrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_NO_TRAY));//目标加热区无托盘 |
|
|
|
log.info("工艺{},加热区存在托盘", heatModuleCode); |
|
|
|
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); |
|
|
|
heatTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//获取加热区试管架 |
|
|
|
Assert.isTrue(heatTrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_NO_TRAY));//目标加热区无托盘 |
|
|
|
transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点 |
|
|
|
log.info("工艺{},X轴进入卡槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(-transferModuleXPickTrayMoveDistance);//X轴进入卡槽 |
|
|
@ -363,6 +369,8 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},加液机械臂上升", heatModuleCode); |
|
|
|
solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 |
|
|
|
transferModuleService.transferXMove(heatArea1TrayClawPoint.getX());//转运模块移动至加热位1 |
|
|
|
feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST);//获取传感器状态 |
|
|
|
Assert.isTrue(!feedTrayExist, () -> new AppException(ResultCode.FEED_AREA_EXIST_TRAY));//上料区有托盘 |
|
|
|
solutionModuleService.solutionMotorMove(liquidAreaPreFillPoint);//加液机械臂下降至至预充点位 |
|
|
|
log.info("工艺{},电磁阀对应通道打开", heatModuleCode); |
|
|
|
solutionModuleService.liquidValveSwitch(SolutionCode.waste);//电磁阀对应通道打开 |
|
|
@ -420,13 +428,15 @@ public class CraftsStepService { |
|
|
|
/*移动至加热区*/ |
|
|
|
log.info("工艺{},移动至加热区", heatModuleCode); |
|
|
|
boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘 |
|
|
|
Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.TARGET_HEAT_MODULE_OCCUPIED));//提示被占用 |
|
|
|
Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_EXIST_TRAY));//提示被占用 |
|
|
|
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); |
|
|
|
heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有托盘 |
|
|
|
Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_EXIST_TRAY));//提示被占用 |
|
|
|
transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 |
|
|
|
log.info("工艺{},X轴移出卡槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(transferModuleXPickTrayMoveDistance);//X轴移出卡槽 |
|
|
@ -511,7 +521,7 @@ public class CraftsStepService { |
|
|
|
|
|
|
|
/*获取参数开始*/ |
|
|
|
deviceStateService.getDeviceState().getSolutionModule().setPumping(true); |
|
|
|
Double volume = params.getDouble("volume") == null ? 2.0 : params.getDouble("volume");//加水量 |
|
|
|
Double volume = params.getDouble("volume");//加水量 |
|
|
|
Integer cycle = params.getInt("cycle");//次数 |
|
|
|
Double height = params.getDouble("height");//下降进入试管的高度 |
|
|
|
if (height > 55) { |
|
|
@ -546,6 +556,8 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},将X轴移动至目标加热模块托盘夹取点 + 进出卡槽移动距离", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX() + transferModuleXPickTrayMoveDistance);//将X轴移动至目标加热模块托盘夹取点 + 进出卡槽移动距离 |
|
|
|
log.info("工艺{},Z轴下降至夹取点", heatModuleCode); |
|
|
|
heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘 |
|
|
|
Assert.isTrue(heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_TARGET_HEAT_NO_TRAY));//提示工艺加热区无托盘 |
|
|
|
transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点 |
|
|
|
log.info("工艺{},X轴进入卡槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(-transferModuleXPickTrayMoveDistance);//X轴进入卡槽 |
|
|
@ -600,6 +612,8 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},清洗-预充开始", heatModuleCode); |
|
|
|
solutionModuleService.solutionMotorMoveZero();//加液机械臂上升 |
|
|
|
transferModuleService.transferXMove(heatArea1TrayClawPoint.getX());//转运模块移动至加热位1 |
|
|
|
feedTrayExist = deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST);//获取传感器状态 |
|
|
|
Assert.isTrue(!feedTrayExist, () -> new AppException(ResultCode.FEED_AREA_EXIST_TRAY));//上料区有托盘 |
|
|
|
solutionModuleService.solutionMotorMove(liquidAreaPreFillPoint);//加液机械臂下降至至预充点位 |
|
|
|
solutionModuleService.liquidPumpMove(-drainDistance);//排空 |
|
|
|
solutionModuleService.liquidValveSwitch(SolutionCode.water);//电磁阀对应通道打开 |
|
|
@ -654,6 +668,8 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX());//将X轴移动至目标加热模块托盘夹取点 |
|
|
|
log.info("工艺{},Z轴下降至夹取点,使托盘落入石墨加热盘", heatModuleCode); |
|
|
|
heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘 |
|
|
|
Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_EXIST_TRAY));//提示工艺加热区被占用 |
|
|
|
transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 |
|
|
|
log.info("工艺{},X轴移出卡槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(transferModuleXPickTrayMoveDistance);//X轴移出卡槽 |
|
|
@ -730,6 +746,9 @@ public class CraftsStepService { |
|
|
|
craftMonitor.setDeviceState(JSONUtil.toJsonStr(deviceStateService.getDeviceState())); |
|
|
|
craftMonitor.setCurrentStepResult(CraftsMonitorResultCode.heat_time.getDescription() + ":0"); |
|
|
|
craftMonitorService.saveMonitor(craftMonitor); |
|
|
|
Point3D annealTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(HeatModuleCode.heat_module_04);//获取退火区托盘夹取点 |
|
|
|
Point3D heatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(heatModuleCode);//获取目标加热模块托盘夹取点 |
|
|
|
Double transferModuleXPickTrayMoveDistance = devicePositionService.getPosition(DevicePositionCode.transferModuleXPickTrayMoveDistance).getDistance();//获取转运模块X轴拿取托盘进出卡槽移动距离 |
|
|
|
Double temperature = params.getDouble("temperature");//退火温度 |
|
|
|
Integer time = params.getInt("time");//秒 |
|
|
|
boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode); |
|
|
@ -737,9 +756,6 @@ public class CraftsStepService { |
|
|
|
while (deviceSensorService.getTrayStateByHeatModuleCode(HeatModuleCode.heat_module_04)) {//判断退火区是否被占用 |
|
|
|
delay(1);//等待1秒 |
|
|
|
} |
|
|
|
Point3D annealTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(HeatModuleCode.heat_module_04);//获取退火区托盘夹取点 |
|
|
|
Point3D heatModuleTrayClawPoint3D = heatModuleService.getHeatModuleTrayClawPoint3D(heatModuleCode);//获取目标加热模块托盘夹取点 |
|
|
|
Double transferModuleXPickTrayMoveDistance = devicePositionService.getPosition(DevicePositionCode.transferModuleXPickTrayMoveDistance).getDistance();//获取转运模块X轴拿取托盘进出卡槽移动距离 |
|
|
|
log.info("工艺{},机械臂移动至加热区", heatModuleCode); |
|
|
|
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleCode)); |
|
|
|
log.info("工艺{},申请使用转运模块", heatModuleCode); |
|
|
@ -749,6 +765,8 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX() + transferModuleXPickTrayMoveDistance);//将X轴移动至目标加热模块托盘夹取点 |
|
|
|
log.info("工艺{},Z轴下降至夹取点,使托盘落入石墨加热盘", heatModuleCode); |
|
|
|
heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode); |
|
|
|
Assert.isTrue(heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_TARGET_HEAT_NO_TRAY));//提示加热模块无托盘 |
|
|
|
transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 |
|
|
|
log.info("工艺{},X轴移出入槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(-transferModuleXPickTrayMoveDistance);//X轴移出入槽 |
|
|
@ -759,6 +777,8 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},将X轴移动至退火热模块托盘夹取点", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(annealTrayClawPoint3D.getX());//将X轴移动至退火热模块托盘夹取点 |
|
|
|
log.info("工艺{},Z轴下降至夹取点,使托盘落入石墨加热盘", heatModuleCode); |
|
|
|
boolean heatModule04TrayExist = deviceSensorService.getTrayStateByHeatModuleCode(HeatModuleCode.heat_module_04); |
|
|
|
Assert.isTrue(!heatModule04TrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_EXIST_TRAY));//提示退火模块存在托盘 |
|
|
|
transferModuleService.transferZMove(annealTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 |
|
|
|
log.info("工艺{},X轴移出卡槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(transferModuleXPickTrayMoveDistance);//X轴移出卡槽 |
|
|
@ -808,8 +828,10 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},Z轴抬升至最高", heatModuleCode); |
|
|
|
transferModuleService.transferZMoveZero();//Z轴抬升至最高 |
|
|
|
log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(annealTrayClawPoint3D.getX() + transferModuleXPickTrayMoveDistance);//将X轴移动至目标加热模块托盘夹取点 |
|
|
|
transferModuleService.transferXMove(annealTrayClawPoint3D.getX() + transferModuleXPickTrayMoveDistance);//将X轴移动至目标退火模块托盘夹取点 |
|
|
|
log.info("工艺{},Z轴下降至夹取点,使托盘落入石墨加热盘", heatModuleCode); |
|
|
|
heatModule04TrayExist = deviceSensorService.getTrayStateByHeatModuleCode(HeatModuleCode.heat_module_04); |
|
|
|
Assert.isTrue(heatModule04TrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_NO_TRAY));//提示退火区无托盘 |
|
|
|
transferModuleService.transferZMove(annealTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 |
|
|
|
log.info("工艺{},X移入卡槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(-transferModuleXPickTrayMoveDistance);//X移入卡槽 |
|
|
@ -819,6 +841,8 @@ public class CraftsStepService { |
|
|
|
log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode); |
|
|
|
transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX());//将X轴移动至目标加热模块托盘夹取点 |
|
|
|
log.info("工艺{},Z轴下降至夹取点,使托盘落入石墨加热盘", heatModuleCode); |
|
|
|
heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode); |
|
|
|
Assert.isTrue(!heatModuleTrayExist, () -> new AppException(ResultCode.CRAFT_HEAT_EXIST_TRAY));//提示加热模块存在托盘 |
|
|
|
transferModuleService.transferZMove(heatModuleTrayClawPoint3D.getZ());//Z轴下降至夹取点,使托盘落入石墨加热盘 |
|
|
|
log.info("工艺{},X轴移出卡槽", heatModuleCode); |
|
|
|
transferModuleService.transferXMoveBy(transferModuleXPickTrayMoveDistance);//X轴移出卡槽 |
|
|
|