|
@ -2,12 +2,15 @@ package com.iflytop.gd.app.service.crafts; |
|
|
|
|
|
|
|
|
import cn.hutool.json.JSONArray; |
|
|
import cn.hutool.json.JSONArray; |
|
|
import cn.hutool.json.JSONObject; |
|
|
import cn.hutool.json.JSONObject; |
|
|
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
|
|
|
import com.iflytop.gd.app.core.CraftsContext; |
|
|
import com.iflytop.gd.app.core.CraftsDebugGenerator; |
|
|
import com.iflytop.gd.app.core.CraftsDebugGenerator; |
|
|
import com.iflytop.gd.app.model.bo.CraftsStep; |
|
|
import com.iflytop.gd.app.model.bo.CraftsStep; |
|
|
import com.iflytop.gd.app.model.bo.Point3D; |
|
|
import com.iflytop.gd.app.model.bo.Point3D; |
|
|
import com.iflytop.gd.app.model.bo.status.device.TrayState; |
|
|
import com.iflytop.gd.app.model.bo.status.device.TrayState; |
|
|
import com.iflytop.gd.app.model.bo.status.device.TubeState; |
|
|
import com.iflytop.gd.app.model.bo.status.device.TubeState; |
|
|
import com.iflytop.gd.app.model.entity.Container; |
|
|
import com.iflytop.gd.app.model.entity.Container; |
|
|
|
|
|
import com.iflytop.gd.app.model.entity.Crafts; |
|
|
import com.iflytop.gd.app.service.api.ContainerService; |
|
|
import com.iflytop.gd.app.service.api.ContainerService; |
|
|
import com.iflytop.gd.app.service.api.DevicePositionService; |
|
|
import com.iflytop.gd.app.service.api.DevicePositionService; |
|
|
import com.iflytop.gd.app.service.device.DeviceCommandTempUtilService; |
|
|
import com.iflytop.gd.app.service.device.DeviceCommandTempUtilService; |
|
@ -68,14 +71,47 @@ public class CraftsStepService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|
|
|
* 工艺开始执行前 |
|
|
|
|
|
*/ |
|
|
|
|
|
public void start(CraftsContext craftsContext) throws Exception { |
|
|
|
|
|
HeatModuleCode heatModuleCode = craftsContext.getHeatModuleCode(); |
|
|
|
|
|
Crafts craft = craftsContext.getCraft(); |
|
|
|
|
|
List<CraftsStep> craftsStepList = JSONUtil.parseArray(craft.getSteps()).toList(CraftsStep.class); |
|
|
|
|
|
Double targetTemperature = null; |
|
|
|
|
|
for (CraftsStep craftsStep : craftsStepList) { |
|
|
|
|
|
if ("startHeating".equals(craftsStep.getMethod())) { |
|
|
|
|
|
targetTemperature = craftsStep.getParams().getDouble("temperature"); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (targetTemperature != null) {//工艺执行前动态调节温度 |
|
|
|
|
|
Double temperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature(); |
|
|
|
|
|
if (temperature > targetTemperature) { |
|
|
|
|
|
heatModuleService.fanStart(heatModuleCode); |
|
|
|
|
|
} else { |
|
|
|
|
|
heatModuleService.heatRodOpen(heatModuleCode, targetTemperature); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 工艺执行完毕 |
|
|
|
|
|
*/ |
|
|
|
|
|
public void finish(CraftsContext craftsContext) throws Exception { |
|
|
|
|
|
moveToSolutionModule(craftsContext.getHeatModuleCode()); |
|
|
|
|
|
//蜂鸣器提示 |
|
|
|
|
|
// otherModuleService.craftsFinishBeepRemind(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
* 将托盘从加热区移动至加液区并且添加溶液 |
|
|
* 将托盘从加热区移动至加液区并且添加溶液 |
|
|
*/ |
|
|
*/ |
|
|
private boolean addLiquid(HeatModuleCode heatModuleCode, JSONObject params) throws Exception { |
|
|
private boolean addLiquid(HeatModuleCode heatModuleCode, JSONObject params) throws Exception { |
|
|
if((deviceStateService.getDeviceState().getSolutionModule().getTrayStatus() == 0 ) |
|
|
|
|
|
|
|
|
if ((deviceStateService.getDeviceState().getSolutionModule().getTrayStatus() == 0) |
|
|
&& deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTrayStatus() == 0) { |
|
|
&& deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTrayStatus() == 0) { |
|
|
throw new AppException(ResultCode.CRAFT_NO_TRAY); |
|
|
throw new AppException(ResultCode.CRAFT_NO_TRAY); |
|
|
} |
|
|
} |
|
|
if((deviceStateService.getDeviceState().getSolutionModule().getTrayStatus() == 0 ) |
|
|
|
|
|
|
|
|
if ((deviceStateService.getDeviceState().getSolutionModule().getTrayStatus() == 0) |
|
|
&& deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTrayStatus() == 1) { |
|
|
&& deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTrayStatus() == 1) { |
|
|
moveToSolutionModule(heatModuleCode); |
|
|
moveToSolutionModule(heatModuleCode); |
|
|
} |
|
|
} |
|
@ -84,8 +120,8 @@ public class CraftsStepService { |
|
|
TubeState[] tubeArray = trayState.getTubes(); |
|
|
TubeState[] tubeArray = trayState.getTubes(); |
|
|
for (TubeState tubeState : tubeArray) { |
|
|
for (TubeState tubeState : tubeArray) { |
|
|
int tubeNum = tubeState.getTubeNum(); |
|
|
int tubeNum = tubeState.getTubeNum(); |
|
|
if(tubeNum > 0){ |
|
|
|
|
|
log.info("工艺{},移动加液机械臂到指定试管",heatModuleCode); |
|
|
|
|
|
|
|
|
if (tubeNum > 0) { |
|
|
|
|
|
log.info("工艺{},移动加液机械臂到指定试管", heatModuleCode); |
|
|
solutionModuleService.dualRobotMovePoint(tubeNum);//移动加液机械臂到指定试管 |
|
|
solutionModuleService.dualRobotMovePoint(tubeNum);//移动加液机械臂到指定试管 |
|
|
List<CommandFuture> futuresList = new ArrayList<>(); |
|
|
List<CommandFuture> futuresList = new ArrayList<>(); |
|
|
for (int i = 0; i < addLiquidList.size(); i++) { |
|
|
for (int i = 0; i < addLiquidList.size(); i++) { |
|
@ -98,8 +134,8 @@ public class CraftsStepService { |
|
|
} |
|
|
} |
|
|
AcidPumpDeviceCode acidPumpDevice = AcidPumpDeviceCode.valueOf(container.getPumpId());//泵 |
|
|
AcidPumpDeviceCode acidPumpDevice = AcidPumpDeviceCode.valueOf(container.getPumpId());//泵 |
|
|
int scale = container.getScale() == null ? 120 : container.getScale();//系数 |
|
|
int scale = container.getScale() == null ? 120 : container.getScale();//系数 |
|
|
log.info("工艺{},添加溶液",heatModuleCode); |
|
|
|
|
|
CommandFuture deviceCommandFuture = solutionModuleService.acidPumpMoveBy(acidPumpDevice, volume * ((double) scale /100));//添加溶液 |
|
|
|
|
|
|
|
|
log.info("工艺{},添加溶液", heatModuleCode); |
|
|
|
|
|
CommandFuture deviceCommandFuture = solutionModuleService.acidPumpMoveBy(acidPumpDevice, volume * ((double) scale / 100));//添加溶液 |
|
|
futuresList.add(deviceCommandFuture); |
|
|
futuresList.add(deviceCommandFuture); |
|
|
} |
|
|
} |
|
|
CommandUtil.wait(futuresList.toArray(new CommandFuture[0])); |
|
|
CommandUtil.wait(futuresList.toArray(new CommandFuture[0])); |
|
@ -117,10 +153,10 @@ public class CraftsStepService { |
|
|
moveToSolutionModule(heatModuleCode); |
|
|
moveToSolutionModule(heatModuleCode); |
|
|
} |
|
|
} |
|
|
Integer second = params.getInt("second"); |
|
|
Integer second = params.getInt("second"); |
|
|
log.info("工艺{},开始摇匀",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},开始摇匀", heatModuleCode); |
|
|
solutionModuleService.shakeStart();//开始摇匀 |
|
|
solutionModuleService.shakeStart();//开始摇匀 |
|
|
delay(second); |
|
|
delay(second); |
|
|
log.info("工艺{},停止摇匀",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},停止摇匀", heatModuleCode); |
|
|
solutionModuleService.shakeStop();//停止摇匀 |
|
|
solutionModuleService.shakeStop();//停止摇匀 |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
@ -132,25 +168,41 @@ public class CraftsStepService { |
|
|
double trayLift = devicePositionService.getPosition(DevicePositionCode.trayLift).getDistance(); //获取加热位抬升托盘位置 |
|
|
double trayLift = devicePositionService.getPosition(DevicePositionCode.trayLift).getDistance(); //获取加热位抬升托盘位置 |
|
|
double trayLower = devicePositionService.getPosition(DevicePositionCode.trayLower).getDistance(); //获取托盘升降下降距离位置 |
|
|
double trayLower = devicePositionService.getPosition(DevicePositionCode.trayLower).getDistance(); //获取托盘升降下降距离位置 |
|
|
moveToHeatModule(heatModuleCode); |
|
|
moveToHeatModule(heatModuleCode); |
|
|
Double temperature = params.getDouble("temperature"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Double targetTemperature = params.getDouble("temperature"); |
|
|
Integer second = params.getInt("second"); |
|
|
Integer second = params.getInt("second"); |
|
|
log.info("工艺{},加热中",heatModuleCode); |
|
|
|
|
|
heatModuleService.heatRodOpen(heatModuleCode, temperature);//开始加热 |
|
|
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.thermostatic); |
|
|
|
|
|
//达到目标温度后才算开始加热 |
|
|
|
|
|
log.info("工艺{},等待升温",heatModuleCode); |
|
|
|
|
|
while (deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature() + 1 < temperature) { |
|
|
|
|
|
delay(1); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Double temperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature(); |
|
|
|
|
|
if (temperature > targetTemperature) { |
|
|
|
|
|
log.info("工艺{},开启风扇降温中", heatModuleCode); |
|
|
|
|
|
heatModuleService.fanStart(heatModuleCode); |
|
|
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.cooling); |
|
|
|
|
|
log.info("工艺{},等待降温", heatModuleCode); |
|
|
|
|
|
while (deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature() - 1 > targetTemperature) { |
|
|
|
|
|
delay(1); |
|
|
|
|
|
} |
|
|
|
|
|
heatModuleService.fanClose(heatModuleCode); |
|
|
|
|
|
heatModuleService.heatRodOpen(heatModuleCode, targetTemperature); |
|
|
|
|
|
} else { |
|
|
|
|
|
log.info("工艺{},开启加热棒", heatModuleCode); |
|
|
|
|
|
heatModuleService.heatRodOpen(heatModuleCode, targetTemperature); |
|
|
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.warm_up); |
|
|
|
|
|
log.info("工艺{},等待升温", heatModuleCode); |
|
|
|
|
|
while (deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature() + 1 < targetTemperature) { |
|
|
|
|
|
delay(1); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
log.info("工艺{},恒温中",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},恒温中", heatModuleCode); |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.constant); |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.constant); |
|
|
log.info("工艺{},降下托盘",heatModuleCode); |
|
|
|
|
|
heatModuleService.heaterMotorMove(heatModuleCode, trayLower);//降下托盘 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log.info("工艺{},温度合适,下降加热模块托盘", heatModuleCode); |
|
|
|
|
|
heatModuleService.heaterMotorMove(heatModuleCode, trayLower);//下降加热模块托盘 |
|
|
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayUp(0);//加热模块托盘升降状态 |
|
|
delay(second); |
|
|
delay(second); |
|
|
log.info("工艺{},停止加热",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},加热完成", heatModuleCode); |
|
|
heatModuleService.heatRodClose(heatModuleCode);//停止加热 |
|
|
heatModuleService.heatRodClose(heatModuleCode);//停止加热 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.finish); |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.finish); |
|
|
log.info("工艺{},抬升加热位托盘",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},抬升加热位托盘", heatModuleCode); |
|
|
heatModuleService.heaterMotorMove(heatModuleCode, trayLift);//抬升加热位托盘 |
|
|
heatModuleService.heaterMotorMove(heatModuleCode, trayLift);//抬升加热位托盘 |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
@ -184,15 +236,6 @@ public class CraftsStepService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 工艺执行完毕 |
|
|
|
|
|
*/ |
|
|
|
|
|
public void finish(HeatModuleCode heatModuleCode) throws Exception { |
|
|
|
|
|
moveToSolutionModule(heatModuleCode); |
|
|
|
|
|
//蜂鸣器提示 |
|
|
|
|
|
// otherModuleService.craftsFinishBeepRemind(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 将托盘移至加热 |
|
|
* 将托盘移至加热 |
|
|
*/ |
|
|
*/ |
|
|
private void moveToHeatModule(HeatModuleCode heatModuleCode) throws Exception { |
|
|
private void moveToHeatModule(HeatModuleCode heatModuleCode) throws Exception { |
|
@ -213,66 +256,66 @@ public class CraftsStepService { |
|
|
Point3D heatAreaCapClawPointPoint3D = heatModuleService.getHeatAreaCapClawPointPoint3D(heatModuleCode);//获取指定加热模块拍子上方点位 |
|
|
Point3D heatAreaCapClawPointPoint3D = heatModuleService.getHeatAreaCapClawPointPoint3D(heatModuleCode);//获取指定加热模块拍子上方点位 |
|
|
Point3D capStorageCapClawPoint3D = devicePositionService.getPosition(DevicePositionCode.capStorageCapClawPoint).getPoint3D();//获取拍子存放区上方点位; |
|
|
Point3D capStorageCapClawPoint3D = devicePositionService.getPosition(DevicePositionCode.capStorageCapClawPoint).getPoint3D();//获取拍子存放区上方点位; |
|
|
|
|
|
|
|
|
log.info("工艺{},提升拍子存放区至拍子夹取的高度",heatModuleCode); |
|
|
|
|
|
|
|
|
TrayState trayState = deviceStateService.getDeviceState().getTrayInSolutionModule(); |
|
|
|
|
|
log.info("工艺{},提升拍子存放区至拍子夹取的高度", heatModuleCode); |
|
|
capModuleService.capUpBalanceNoWait();//提升拍子存放区至拍子夹取的高度 |
|
|
capModuleService.capUpBalanceNoWait();//提升拍子存放区至拍子夹取的高度 |
|
|
log.info("工艺{},将机械臂移动至加液模块上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将机械臂移动至加液模块上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(liquidAreaTrayPoint3D); //将机械臂移动至加液模块上方 |
|
|
gantryModuleService.gantryMove(liquidAreaTrayPoint3D); //将机械臂移动至加液模块上方 |
|
|
log.info("工艺{},将夹爪打开,准备夹取托盘",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪打开,准备夹取托盘", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawTrayPick);//将夹爪打开,准备夹取托盘 |
|
|
gantryModuleService.clawMove(clawTrayPick);//将夹爪打开,准备夹取托盘 |
|
|
log.info("工艺{},下降z轴,使夹爪落入托盘孔位",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},下降z轴,使夹爪落入托盘孔位", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(solutionModuleTrayMoveHeight);//下降z轴,使夹爪落入托盘孔位 |
|
|
gantryModuleService.gantryZMove(solutionModuleTrayMoveHeight);//下降z轴,使夹爪落入托盘孔位 |
|
|
log.info("工艺{},将夹爪收紧,夹住托盘",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪收紧,夹住托盘", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawTrayGrip);//将夹爪收紧,夹住托盘 |
|
|
gantryModuleService.clawMove(clawTrayGrip);//将夹爪收紧,夹住托盘 |
|
|
log.info("工艺{},抬升z轴",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},抬升z轴", heatModuleCode); |
|
|
|
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidDownNoWait(null);//TODO 结构有问题临时避让 开始,移动托盘之前先降下所有加热模块 |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
deviceStateService.getDeviceState().getSolutionModule().setTrayStatus(0);//加液模块是否有托盘 |
|
|
deviceStateService.getDeviceState().getSolutionModule().setTrayStatus(0);//加液模块是否有托盘 |
|
|
deviceStateService.getDeviceState().getTrayStateByHeatModuleCode(heatModuleCode).setInSolutionModule(false); |
|
|
deviceStateService.getDeviceState().getTrayStateByHeatModuleCode(heatModuleCode).setInSolutionModule(false); |
|
|
// deviceCommandTempUtilService.moveTrayHeatModuleAvoidDown(null);//TODO 结构有问题临时避让 开始,移动托盘之前先降下所有加热模块 |
|
|
|
|
|
log.info("工艺{},将携带托盘的机械臂移动至4号加热模块上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将携带托盘的机械臂移动至4号加热模块上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(heatArea4TrayClawPoint3D);//将携带托盘的机械臂移动至4号加热模块上方 |
|
|
gantryModuleService.gantryMove(heatArea4TrayClawPoint3D);//将携带托盘的机械臂移动至4号加热模块上方 |
|
|
log.info("工艺{},将携带托盘的机械臂移动至加热模块上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将携带托盘的机械臂移动至加热模块上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(heatAreaTrayClawPoint3D);//将携带托盘的机械臂移动至加热模块上方 |
|
|
gantryModuleService.gantryMove(heatAreaTrayClawPoint3D);//将携带托盘的机械臂移动至加热模块上方 |
|
|
// deviceCommandUtilService.heaterMotorMove( heatModuleId, trayLift);//抬升加热位托盘 TODO 结构有问题临时避让 屏蔽 |
|
|
|
|
|
log.info("工艺{},临时避让完毕,升起",heatModuleCode); |
|
|
|
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidUpNoWait(heatModuleCode);Thread.sleep(3200);//TODO 结构有问题临时避让 完毕,可以升起了,顺带提升目标加热模块 |
|
|
|
|
|
log.info("工艺{},下降z轴,使托盘落入加热模块",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},临时避让完毕,升起", heatModuleCode); |
|
|
|
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidUpNoWait(heatModuleCode); |
|
|
|
|
|
Thread.sleep(3200);//TODO 结构有问题临时避让 完毕,可以升起了,顺带提升目标加热模块 |
|
|
|
|
|
log.info("工艺{},下降z轴,使托盘落入加热模块", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(heatModuleTrayMoveHeight);//下降z轴,使托盘落入加热模块 |
|
|
gantryModuleService.gantryZMove(heatModuleTrayMoveHeight);//下降z轴,使托盘落入加热模块 |
|
|
log.info("工艺{},将夹爪打开,释放托盘",heatModuleCode); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪打开,释放托盘", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawTrayPick);//将夹爪打开,释放托盘 |
|
|
gantryModuleService.clawMove(clawTrayPick);//将夹爪打开,释放托盘 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(1);//加热模块是否存在托盘 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(1);//加热模块是否存在托盘 |
|
|
deviceStateService.getDeviceState().getTrayStateByHeatModuleCode(heatModuleCode).setInHeatModule(true); |
|
|
deviceStateService.getDeviceState().getTrayStateByHeatModuleCode(heatModuleCode).setInHeatModule(true); |
|
|
log.info("工艺{},抬升z轴",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},抬升z轴", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
|
|
|
|
|
|
log.info("工艺{},移动机械臂至拍子存放区上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},移动机械臂至拍子存放区上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(capStorageCapClawPoint3D);//移动机械臂至拍子存放区上方 |
|
|
gantryModuleService.gantryMove(capStorageCapClawPoint3D);//移动机械臂至拍子存放区上方 |
|
|
log.info("工艺{},将夹爪打开,准备夹取拍子",heatModuleCode); |
|
|
|
|
|
|
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidDownNoWait(null);//TODO 结构有问题临时避让 开始,移动托盘之前先降下所有加热模块 |
|
|
|
|
|
log.info("工艺{},将夹爪打开,准备夹取拍子", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawCapPick);//将夹爪打开,准备夹取拍子 |
|
|
gantryModuleService.clawMove(clawCapPick);//将夹爪打开,准备夹取拍子 |
|
|
log.info("工艺{},下降z轴,使夹爪落入拍子升降模块拍子孔位",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},下降z轴,使夹爪落入拍子升降模块拍子孔位", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(capModuleCapMoveHeight);//下降z轴,使夹爪落入拍子升降模块拍子孔位 |
|
|
gantryModuleService.gantryZMove(capModuleCapMoveHeight);//下降z轴,使夹爪落入拍子升降模块拍子孔位 |
|
|
log.info("工艺{},将夹爪收紧,夹住拍子",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪收紧,夹住拍子", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawCapGrip);//将夹爪收紧,夹住拍子 |
|
|
gantryModuleService.clawMove(clawCapGrip);//将夹爪收紧,夹住拍子 |
|
|
log.info("工艺{},抬升z轴",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},抬升z轴", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
log.info("工艺{},将携带拍子的机械臂移动至加热模块拍子上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将携带拍子的机械臂移动至加热模块拍子上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(heatAreaCapClawPointPoint3D);//将携带拍子的机械臂移动至加热模块拍子上方 |
|
|
gantryModuleService.gantryMove(heatAreaCapClawPointPoint3D);//将携带拍子的机械臂移动至加热模块拍子上方 |
|
|
log.info("工艺{},提升拍子存放区",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},提升拍子存放区", heatModuleCode); |
|
|
capModuleService.capUpBalanceNoWait(); //提升拍子存放区 |
|
|
capModuleService.capUpBalanceNoWait(); //提升拍子存放区 |
|
|
log.info("工艺{},下降z轴,使夹拍子落入加热模块",heatModuleCode); |
|
|
|
|
|
|
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidUpNoWait(heatModuleCode); |
|
|
|
|
|
Thread.sleep(4000);//TODO 结构有问题临时避让 完毕,可以升起了,顺带提升目标加热模块 |
|
|
|
|
|
log.info("工艺{},下降z轴,使夹拍子落入加热模块", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(heatModuleCapMoveHeight);//下降z轴,使夹拍子落入加热模块 |
|
|
gantryModuleService.gantryZMove(heatModuleCapMoveHeight);//下降z轴,使夹拍子落入加热模块 |
|
|
log.info("工艺{},将夹爪打开,释放拍子",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪打开,释放拍子", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawCapPick);//将夹爪打开,释放拍子 |
|
|
gantryModuleService.clawMove(clawCapPick);//将夹爪打开,释放拍子 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setCapExist(true);//加热模块是否存在拍子 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setCapExist(true);//加热模块是否存在拍子 |
|
|
log.info("工艺{},抬升z轴",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},抬升z轴", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
// trayState.setHeatModuleId(heatModuleId); |
|
|
|
|
|
// trayState.setInHeatModule(true); |
|
|
|
|
|
log.info("工艺{},下降加热模块托盘",heatModuleCode); |
|
|
|
|
|
heatModuleService.heaterMotorMove(heatModuleCode, trayLower);//下降加热模块托盘 |
|
|
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayUp(0);//加热模块托盘升降状态 |
|
|
|
|
|
log.info("工艺{},移动机械臂至拍子存放区上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},移动机械臂至拍子存放区上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(capStorageCapClawPoint3D);//移动机械臂至拍子存放区上方 |
|
|
gantryModuleService.gantryMove(capStorageCapClawPoint3D);//移动机械臂至拍子存放区上方 |
|
|
log.info("工艺{},释放加液区",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},释放加液区", heatModuleCode); |
|
|
solutionModuleService.releaseSolutionModule();//释放加液区 |
|
|
solutionModuleService.releaseSolutionModule();//释放加液区 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -298,70 +341,69 @@ public class CraftsStepService { |
|
|
Point3D capStorageCapClawPoint3D = devicePositionService.getPosition(DevicePositionCode.capStorageCapClawPoint).getPoint3D();//获取拍子存放区上方点位; |
|
|
Point3D capStorageCapClawPoint3D = devicePositionService.getPosition(DevicePositionCode.capStorageCapClawPoint).getPoint3D();//获取拍子存放区上方点位; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TrayState trayState = deviceStateService.getTrayInSolutionModule(); |
|
|
|
|
|
log.info("工艺{},申请使用加液区并等待",heatModuleCode); |
|
|
|
|
|
|
|
|
TrayState trayState = deviceStateService.getDeviceState().getTrayStateByHeatModuleCode(heatModuleCode); |
|
|
|
|
|
log.info("工艺{},申请使用加液区并等待", heatModuleCode); |
|
|
solutionModuleService.requestSolutionModule();//申请使用加液区并等待 |
|
|
solutionModuleService.requestSolutionModule();//申请使用加液区并等待 |
|
|
log.info("工艺{},提升拍子存放区至拍子夹取的高度",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},提升拍子存放区至拍子夹取的高度", heatModuleCode); |
|
|
capModuleService.capUpBalanceNoWait(); //提升拍子存放区至拍子夹取的高度 |
|
|
capModuleService.capUpBalanceNoWait(); //提升拍子存放区至拍子夹取的高度 |
|
|
log.info("工艺{},将机械臂移动至加热模块拍子上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将机械臂移动至加热模块拍子上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(heatAreaCapClawPointPoint3D);//将机械臂移动至加热模块拍子上方 |
|
|
gantryModuleService.gantryMove(heatAreaCapClawPointPoint3D);//将机械臂移动至加热模块拍子上方 |
|
|
log.info("工艺{},抬升指定加热位托盘",heatModuleCode); |
|
|
|
|
|
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayUp(1);//将加热模块托盘状态改为抬起 |
|
|
|
|
|
log.info("工艺{},抬升指定加热位托盘", heatModuleCode); |
|
|
heatModuleService.heaterMotorMove(heatModuleCode, trayLift);//抬升指定加热位托盘 |
|
|
heatModuleService.heaterMotorMove(heatModuleCode, trayLift);//抬升指定加热位托盘 |
|
|
log.info("工艺{},将夹爪打开,准备夹取拍子",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪打开,准备夹取拍子", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawCapPick);//将夹爪打开,准备夹取拍子 |
|
|
gantryModuleService.clawMove(clawCapPick);//将夹爪打开,准备夹取拍子 |
|
|
log.info("工艺{},下降z轴,使夹爪落入加热模块拍子孔位",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},下降z轴,使夹爪落入加热模块拍子孔位", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(heatModuleCapMoveHeight);//下降z轴,使夹爪落入加热模块拍子孔位 |
|
|
gantryModuleService.gantryZMove(heatModuleCapMoveHeight);//下降z轴,使夹爪落入加热模块拍子孔位 |
|
|
log.info("工艺{},将夹爪收紧,夹住拍子",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪收紧,夹住拍子", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawCapGrip);//将夹爪收紧,夹住拍子 |
|
|
gantryModuleService.clawMove(clawCapGrip);//将夹爪收紧,夹住拍子 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setCapExist(false);//加热模块是否存在拍子 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setCapExist(false);//加热模块是否存在拍子 |
|
|
log.info("工艺{},拍子存放模块下降1个拍子位置",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},拍子存放模块下降1个拍子位置", heatModuleCode); |
|
|
capModuleService.capMotorMoveByNumNoWait(-1);//拍子存放模块下降1个拍子位置 |
|
|
capModuleService.capMotorMoveByNumNoWait(-1);//拍子存放模块下降1个拍子位置 |
|
|
log.info("工艺{},抬升z轴",heatModuleCode); |
|
|
|
|
|
gantryModuleService.gantryZMove(0); Thread.sleep(2000);//抬升z轴 |
|
|
|
|
|
log.info("工艺{},将携带拍子的机械臂移动至存放区上方",heatModuleCode); |
|
|
|
|
|
|
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidDownNoWait(null);//TODO 结构有问题临时避让 开始,移动托盘之前先降下所有加热模块 |
|
|
|
|
|
log.info("工艺{},抬升z轴", heatModuleCode); |
|
|
|
|
|
gantryModuleService.gantryZMove(0); |
|
|
|
|
|
Thread.sleep(4000);//抬升z轴 |
|
|
|
|
|
log.info("工艺{},将携带拍子的机械臂移动至存放区上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(capStorageCapClawPoint3D);//将携带拍子的机械臂移动至存放区上方 |
|
|
gantryModuleService.gantryMove(capStorageCapClawPoint3D);//将携带拍子的机械臂移动至存放区上方 |
|
|
log.info("工艺{},下降z轴,使夹拍子落入存放区",heatModuleCode); |
|
|
|
|
|
|
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidUpNoWait(null);//TODO 临时避 恢复抬起状态 |
|
|
|
|
|
log.info("工艺{},下降z轴,使夹拍子落入存放区", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(capModuleCapMoveHeight);//下降z轴,使夹拍子落入存放区 |
|
|
gantryModuleService.gantryZMove(capModuleCapMoveHeight);//下降z轴,使夹拍子落入存放区 |
|
|
log.info("工艺{},将夹爪打开,释放夹取的拍子",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪打开,释放夹取的拍子", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawCapPick);//将夹爪打开,释放夹取的拍子 |
|
|
gantryModuleService.clawMove(clawCapPick);//将夹爪打开,释放夹取的拍子 |
|
|
log.info("工艺{},抬升z轴",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},抬升z轴", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log.info("工艺{},将机械臂移动至加热模块上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将机械臂移动至加热模块上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(heatAreaTrayClawPoint3D);//将机械臂移动至加热模块上方 |
|
|
gantryModuleService.gantryMove(heatAreaTrayClawPoint3D);//将机械臂移动至加热模块上方 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayUp(1);//将加热模块托盘状态改为抬起 |
|
|
|
|
|
log.info("工艺{},将夹爪打开,准备夹取托盘",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪打开,准备夹取托盘", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawTrayPick);//将夹爪打开,准备夹取托盘 |
|
|
gantryModuleService.clawMove(clawTrayPick);//将夹爪打开,准备夹取托盘 |
|
|
log.info("工艺{},下降z轴,使夹爪落入托盘孔位",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},下降z轴,使夹爪落入托盘孔位", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(heatModuleTrayMoveHeight);//下降z轴,使夹爪落入托盘孔位 |
|
|
gantryModuleService.gantryZMove(heatModuleTrayMoveHeight);//下降z轴,使夹爪落入托盘孔位 |
|
|
log.info("工艺{},将夹爪收紧,夹住托盘",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将夹爪收紧,夹住托盘", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawTrayGrip);//将夹爪收紧,夹住托盘 |
|
|
gantryModuleService.clawMove(clawTrayGrip);//将夹爪收紧,夹住托盘 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(0);//加热模块是否存在托盘 |
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(0);//加热模块是否存在托盘 |
|
|
deviceStateService.getDeviceState().getTrayStateByHeatModuleCode(heatModuleCode).setInHeatModule(false); |
|
|
|
|
|
// trayState.setInHeatModule(false);//托盘是否在加热模块中 |
|
|
|
|
|
log.info("工艺{},临时避让下降",heatModuleCode); |
|
|
|
|
|
|
|
|
trayState.setInHeatModule(false); |
|
|
|
|
|
log.info("工艺{},临时避让下降", heatModuleCode); |
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidDownNoWait(heatModuleCode);//TODO 临时避让下降 |
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidDownNoWait(heatModuleCode);//TODO 临时避让下降 |
|
|
log.info("工艺{},抬升z轴",heatModuleCode); |
|
|
|
|
|
gantryModuleService.gantryZMove(0);Thread.sleep(2500);//抬升z轴 |
|
|
|
|
|
// deviceCommandUtilService.heaterMotorMove( heatModuleId, trayLower);//下降加热模块托盘 |
|
|
|
|
|
// deviceStateService.setHeatModuleStateTrayUp(heatModuleId, 0);//加热模块托盘升降状态 |
|
|
|
|
|
log.info("工艺{},将携带托盘的机械臂移动至4号加热模块上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},抬升z轴", heatModuleCode); |
|
|
|
|
|
gantryModuleService.gantryZMove(0); |
|
|
|
|
|
Thread.sleep(2500);//抬升z轴 |
|
|
|
|
|
log.info("工艺{},将携带托盘的机械臂移动至4号加热模块上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(heatArea4TrayClawPoint3D);//将携带托盘的机械臂移动至4号加热模块上方 |
|
|
gantryModuleService.gantryMove(heatArea4TrayClawPoint3D);//将携带托盘的机械臂移动至4号加热模块上方 |
|
|
log.info("工艺{},将携带托盘的机械臂移动至加液模块上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},将携带托盘的机械臂移动至加液模块上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(liquidAreaTrayPoint3D); //将携带托盘的机械臂移动至加液模块上方 |
|
|
gantryModuleService.gantryMove(liquidAreaTrayPoint3D); //将携带托盘的机械臂移动至加液模块上方 |
|
|
log.info("工艺{},临时避 恢复抬起状态",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},临时避 恢复抬起状态", heatModuleCode); |
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidUp(null, heatModuleCode);//TODO 临时避 恢复抬起状态 |
|
|
deviceCommandTempUtilService.moveTrayHeatModuleAvoidUp(null, heatModuleCode);//TODO 临时避 恢复抬起状态 |
|
|
log.info("工艺{},下降z轴,使托盘落入加液模块",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},下降z轴,使托盘落入加液模块", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(solutionModuleTrayMoveHeight);//下降z轴,使托盘落入加液模块 |
|
|
gantryModuleService.gantryZMove(solutionModuleTrayMoveHeight);//下降z轴,使托盘落入加液模块 |
|
|
// trayState.setInSolutionModule(true);//托盘是否在加液模块中 |
|
|
|
|
|
deviceStateService.getDeviceState().getSolutionModule().setTrayStatus(1);//加液模块是否存在托盘 |
|
|
deviceStateService.getDeviceState().getSolutionModule().setTrayStatus(1);//加液模块是否存在托盘 |
|
|
deviceStateService.getDeviceState().getTrayStateByHeatModuleCode(heatModuleCode).setInSolutionModule(true); |
|
|
|
|
|
log.info("工艺{},将夹爪打开,释放托盘",heatModuleCode); |
|
|
|
|
|
|
|
|
trayState.setInSolutionModule(true); |
|
|
|
|
|
log.info("工艺{},将夹爪打开,释放托盘", heatModuleCode); |
|
|
gantryModuleService.clawMove(clawTrayPick);//将夹爪打开,释放托盘 |
|
|
gantryModuleService.clawMove(clawTrayPick);//将夹爪打开,释放托盘 |
|
|
log.info("工艺{},抬升z轴",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},抬升z轴", heatModuleCode); |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
gantryModuleService.gantryZMove(0);//抬升z轴 |
|
|
log.info("工艺{},移动机械臂至拍子存放区上方",heatModuleCode); |
|
|
|
|
|
|
|
|
log.info("工艺{},移动机械臂至拍子存放区上方", heatModuleCode); |
|
|
gantryModuleService.gantryMove(capStorageCapClawPoint3D);//移动机械臂至拍子存放区上方 |
|
|
gantryModuleService.gantryMove(capStorageCapClawPoint3D);//移动机械臂至拍子存放区上方 |
|
|
} |
|
|
} |
|
|
} |
|
|
} |