Browse Source

加液防止低落

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

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

@ -7,7 +7,6 @@ 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;
@ -20,6 +19,7 @@ import com.iflytop.sgs.app.service.device.module.HeatModuleService;
import com.iflytop.sgs.app.service.device.module.SolutionModuleService;
import com.iflytop.sgs.app.service.device.module.TransferModuleService;
import com.iflytop.sgs.app.ws.server.WebSocketSender;
import com.iflytop.sgs.common.constant.WebSocketMessageType;
import com.iflytop.sgs.common.enums.*;
import com.iflytop.sgs.common.enums.cmd.CmdBeepMode;
import com.iflytop.sgs.common.enums.data.DevicePositionCode;
@ -32,7 +32,6 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
/**
* 工艺步骤执行服务
@ -128,11 +127,11 @@ public class CraftsStepService {
double addLiquidDistance = volume * scale;
Point3D heatArea1TrayClawPoint = devicePositionService.getPosition(DevicePositionCode.heatArea1TrayClawPoint).getPoint3D();//加热位1坐标
Double liquidAreaPreFillPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaPreFillPoint).getPositon(); //预充时加液臂下降位置
Double backFlowDistance=systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
/*获取参数结束*/
log.info("工艺{},申请转运模组并等待", heatModuleCode);
transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待
transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_thin);//申请转运模组并等待
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志
@ -289,11 +288,19 @@ public class CraftsStepService {
Double reduceDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.reduce_distance);//抽液距离
Point3D heatArea1TrayClawPoint = devicePositionService.getPosition(DevicePositionCode.heatArea1TrayClawPoint).getPoint3D();
Double liquidAreaPreFillPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaPreFillPoint).getPositon(); //预充时加液臂下降位置
Double backFlowDistance=systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
/*获取参数结束*/
while (deviceSensorService.getSensorStatus(DeviceSensorCode.LIQUID_TRAY_EXIST)) {//上料区存在托盘
deviceLightSoundService.openBeep(CmdBeepMode.alarm);
delay(2);
deviceLightSoundService.closeBeep();
webSocketService.push(WebSocketMessageType.ALARM, "请取出上料区托盘!");
delay(10);
}
log.info("工艺{},申请转运模组并等待", heatModuleCode);
transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待
transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_thick);//申请转运模组并等待
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志
@ -430,7 +437,6 @@ public class CraftsStepService {
transferModuleService.transferZMoveZero();//Z轴抬升至最高
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(true);//加热区托盘状态
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(true);//托盘状态
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setHeatModuleCode(heatModuleCode);//托盘所在加热区
deviceStateService.getDeviceState().getSolutionModule().setPumping(false);//正在加液
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInSolutionPositon(false);//托盘状态
return true;
@ -534,12 +540,12 @@ public class CraftsStepService {
Double preFillPosition = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownPreFillPositon).getPositon();//机械臂预充时下降距离
Point3D heatArea1TrayClawPoint = devicePositionService.getPosition(DevicePositionCode.heatArea1TrayClawPoint).getPoint3D();
Double liquidAreaPreFillPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaPreFillPoint).getPositon(); //预充时加液臂下降位置
Double backFlowDistance=systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleTrayClawPoint3D));
/*获取参数结束*/
log.info("工艺{},申请转运模组并等待", heatModuleCode);
transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_liquid);//申请转运模组并等待
transferModuleService.requestTransferModule(CraftsTransferTypeCode.move_thick);//申请转运模组并等待
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setUseArm(true);//使用机械臂标志
log.info("工艺{},加液机械臂上升", heatModuleCode);
@ -839,9 +845,6 @@ public class CraftsStepService {
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setTrayStatus(true);//加热区托盘状态
deviceStateService.getDeviceState().getHeatModuleByCode(HeatModuleCode.heat_module_04).setTrayStatus(false);
deviceStateService.getDeviceState().getTrayByHeatModuleCode(heatModuleCode).setInHeatModule(true);//托盘状态
deviceLightSoundService.openBeep(CmdBeepMode.info);
delay(2);
deviceLightSoundService.closeBeep();
return true;
} finally {
transferModuleService.releaseTransferModule();//释放转运模组
@ -863,7 +866,7 @@ public class CraftsStepService {
* */
public boolean coldIsSuitable(HeatModuleCode heatModuleCode, Double temperature) throws Exception {
double currentTemperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).getTemperature();
log.info("工艺{},当前温度{}",heatModuleCode,currentTemperature);
log.info("工艺{},当前温度{}", heatModuleCode, currentTemperature);
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "加热区温度", currentTemperature));
return currentTemperature < (temperature + 3);
}
@ -885,60 +888,10 @@ public class CraftsStepService {
* 工艺执行完毕
*/
public void finish(HeatModuleCode heatModuleCode, CraftMonitor craftMonitor) throws Exception {
deviceLightSoundService.openBeep(CmdBeepMode.info);
delay(2);
deviceLightSoundService.closeBeep();
craftMonitorService.removeById(craftMonitor.getId());
/* List<TrayState> trayList = deviceStateService.getDeviceState().getTrays();
trayList.removeIf((tray) -> tray.getHeatModuleCode().equals(heatModuleCode));*/
// 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<TrayState> trayList = deviceStateService.getDeviceState().getTrays();
trayList.removeIf((tray) -> tray.getHeatModuleCode().equals(heatModuleCode));
}

Loading…
Cancel
Save