Browse Source

退火温度/4

master
王梦远 2 months ago
parent
commit
eedd2d0590
  1. 49
      src/main/java/com/iflytop/sgs/app/service/crafts/CraftsStepService.java

49
src/main/java/com/iflytop/sgs/app/service/crafts/CraftsStepService.java

@ -12,7 +12,6 @@ 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;
import com.iflytop.sgs.app.model.entity.Solutions;
import com.iflytop.sgs.app.model.entity.SystemConfig;
import com.iflytop.sgs.app.service.api.*;
import com.iflytop.sgs.app.service.device.DeviceLightSoundService;
import com.iflytop.sgs.app.service.device.DeviceSensorService;
@ -86,7 +85,8 @@ public class CraftsStepService {
public boolean preHeat(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception {
Double temperature = params.getDouble("temperature");
log.info("工艺{},预热", HeatModuleCode.heat_module_04);
heatModuleService.heatRodOpen(HeatModuleCode.heat_module_04, temperature);
//todo
heatModuleService.heatRodOpen(HeatModuleCode.heat_module_04, temperature / 4);
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));
@ -141,6 +141,7 @@ public class CraftsStepService {
Assert.isTrue(feedTrayExist, () -> new AppException(ResultCode.FEED_AREA_NO_TRAY));
log.info("工艺{},加液机械臂上升", heatModuleCode);
solutionModuleService.solutionMotorMoveZero();//加液机械臂上升
transferModuleService.transferMoveZero();//z轴上升
log.info("工艺{},机械臂移动至上料区", heatModuleCode);
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至上料区", feedAreaTrayPoint3D));
log.info("工艺{},将X轴移动至上料区托盘夹取点 + 进出卡槽移动距离", heatModuleCode);
@ -231,15 +232,16 @@ public class CraftsStepService {
transferModuleService.transferXMove(heatModuleTrayClawPoint3D.getX());//将X轴移动至目标加热模块托盘夹取点
log.info("工艺{},Z轴下降至夹取点", heatModuleCode);
//判断温度
Double coldTemperature=systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.fan_stop_temperature);//降温至
Double coldTemperature = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.fan_stop_temperature);//降温至
double currentTemperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature();
if(currentTemperature>coldTemperature){
if (currentTemperature > coldTemperature) {
log.info("工艺{},散热打开", heatModuleCode);
heatModuleService.fanStart(heatModuleCode);//散热打开
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setFanOpen(true); //设置加热区风扇打开
while (!codeIsSuitable(heatModuleCode, coldTemperature)) {
delay(5);
}
// while (!codeIsSuitable(heatModuleCode, coldTemperature)) {
// delay(5);
// }
delay(60);
log.info("工艺{},散热关闭", heatModuleCode);
heatModuleService.fanClose(heatModuleCode);//散热关闭
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setFanOpen(false); //设置加热区风扇关闭
@ -289,7 +291,7 @@ public class CraftsStepService {
Double volume = params.getDouble("volume");//
JSONArray jsonArray = params.getJSONArray("columns");//列数
Double height = params.getDouble("height");//下降进入试管的高度
if (height > 50) {
if (height > 54) {
throw new AppException(ResultCode.CRAFT_PARAMS_MISTAKE);
}
Integer channel = container.getChannel();//获取阀门通道
@ -351,7 +353,7 @@ public class CraftsStepService {
log.info("工艺{},机械臂移动到试管位置{}", heatModuleCode, i);
transferModuleService.transferXMove(liquidAreaTrayPoint3D.getX() + distance);//机械臂移动到试管位置
log.info("工艺{},加液机械臂下降", heatModuleCode);
solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeExtPositon+height);//加液机械臂下降
solutionModuleService.solutionMotorMove(solutionModuleMotorDownInTubeExtPositon + height);//加液机械臂下降
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "抽取溶液", addLiquidDistance));
log.info("工艺{},加液", heatModuleCode);
solutionModuleService.liquidPumpMove(-reduceDistance);//加液 position
@ -446,7 +448,7 @@ public class CraftsStepService {
} finally {
deviceStateService.getDeviceState().getSolutionModule().setPumping(false);
transferModuleService.releaseTransferModule();//释放转运模组
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(false );//使用机械臂标志
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(false);//使用机械臂标志
}
}
@ -462,12 +464,10 @@ public class CraftsStepService {
/*工艺监控清理上步的记录*/
Double temperature = params.getDouble("temperature");//温度
Integer time = params.getInt("time");//
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.heating); //设置加热区状态 加热中
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTargetTemperature(temperature);//将加热温度设定为目标温度
log.info("工艺{},开始加热", heatModuleCode);
@ -528,7 +528,7 @@ public class CraftsStepService {
Double volume = params.getDouble("volume") == null ? 2.0 : params.getDouble("volume");//加水量
Integer cycle = params.getInt("cycle");//次数
Double height = params.getDouble("height");//下降进入试管的高度
if (height > 50) {
if (height > 54) {
throw new AppException(ResultCode.CRAFT_PARAMS_MISTAKE);
}
boolean heatModuleTrayExist = deviceSensorService.getTrayStateByHeatModuleCode(heatModuleCode);//目标加热模块有无托盘
@ -730,8 +730,8 @@ public class CraftsStepService {
log.info("工艺{},关闭加热棒", heatModuleCode);
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "关闭加热棒", ""));
heatModuleService.heatRodClose(heatModuleCode);//关闭加热棒
heatModuleService.fanStart(heatModuleCode);//散热打开
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setFanOpen(true); //设置加热区风扇打开
// heatModuleService.fanStart(heatModuleCode);//散热打开
// deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setFanOpen(true); //设置加热区风扇打开
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setStartHeatTime(null);//开始加热时间
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTargetTime(null);//加热器目标加热时间
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.stop); //设置加热区状态
@ -741,7 +741,7 @@ public class CraftsStepService {
/*
* 退火
* */
public boolean anneal(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception {
public synchronized boolean anneal(HeatModuleCode heatModuleCode, JSONObject params, CraftMonitor craftMonitor) throws Exception {
try {
JSONObject result = new JSONObject();
craftMonitor.setCurrentStepResult(String.valueOf(result));
@ -751,15 +751,24 @@ public class CraftsStepService {
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);//等待10
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);
log.info("工艺{},机械臂移动至加热区", heatModuleCode);
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleCode));
log.info("工艺{},申请使用转运模块", heatModuleCode);
transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_anneal);//申请使用转运模块
//todo 先双重检测做下判断
// boolean annealTrayState = deviceSensorService.getTrayStateByHeatModuleCode(HeatModuleCode.heat_module_04);
// if (annealTrayState) {
// transferModuleService.releaseTransferModule();//释放转运模组
// while (deviceSensorService.getTrayStateByHeatModuleCode(HeatModuleCode.heat_module_04)) {//判断退火区是否被占用
// delay(1);//等待1秒
// }
// transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_anneal);//申请使用转运模块
// }
log.info("工艺{},加液机械臂上升", heatModuleCode);
solutionModuleService.solutionMotorMoveZero();//加液机械臂上升
log.info("工艺{},将X轴移动至目标加热模块托盘夹取点", heatModuleCode);
@ -791,7 +800,8 @@ public class CraftsStepService {
deviceStateService.getDeviceState().getHeatModuleByCode(HeatModuleCode.heat_module_04).setHeatingType(HeatingType.heating); //设置加热区状态 加热中
deviceStateService.getDeviceState().getHeatModuleByCode(HeatModuleCode.heat_module_04).setTargetTemperature(temperature);//将加热温度设定为目标温度
log.info("工艺{},开始加热", heatModuleCode);
heatModuleService.heatRodOpen(HeatModuleCode.heat_module_04, temperature);//打开加热棒
//todo
heatModuleService.heatRodOpen(HeatModuleCode.heat_module_04, temperature / 4);//打开加热棒
//判断当前温度是否在设置温度范围内
while (!heatIsSuitable(HeatModuleCode.heat_module_04, temperature)) {
delay(1);
@ -873,6 +883,7 @@ public class CraftsStepService {
* */
public boolean codeIsSuitable(HeatModuleCode heatModuleCode, Double temperature) throws Exception {
double currentTemperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature();
log.info("工艺{},当前温度{}",heatModuleCode,currentTemperature);
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "加热区温度", currentTemperature));
return currentTemperature < (temperature + 3);
}

Loading…
Cancel
Save