Browse Source

回吸放滴落功能

master
王梦远 2 months ago
parent
commit
0fc118f1cd
  1. 2
      src/main/java/com/iflytop/sgs/app/cmd/control/CleanStartCommand.java
  2. 2
      src/main/java/com/iflytop/sgs/app/cmd/control/LiquidAddCommand.java
  3. 5
      src/main/java/com/iflytop/sgs/app/cmd/control/LiquidPreFillStopCommand.java
  4. 11
      src/main/java/com/iflytop/sgs/app/service/crafts/CraftsStepService.java
  5. 2
      src/main/java/com/iflytop/sgs/common/enums/SystemConfigCode.java
  6. 2
      src/main/resources/sql/init.sql

2
src/main/java/com/iflytop/sgs/app/cmd/control/CleanStartCommand.java

@ -61,6 +61,7 @@ public class CleanStartCommand extends BaseCommandHandler {
Double solutionModuleMotorDownInTubeExtPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeExtPositon).getPositon();//加液模块电机下降进入试管抽取位置
Point3D liquidAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D();//获取加液时托盘位置点
Double trayTubeHorizontalSpacingDistance = devicePositionService.getPosition(DevicePositionCode.trayTubeHorizontalSpacingDistance).getDistance();//获取托盘试管水平间距
Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
return runAsync(() -> {
try {
deviceStateService.getCommandMutexState().get().setTransferCommandExecuting(true);
@ -79,6 +80,7 @@ public class CleanStartCommand extends BaseCommandHandler {
solutionModuleService.liquidPumpMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), cleanWaterVolume);//八通道蠕动泵 cleanWaterVolume * waterScale * 8
solutionModuleService.solutionMotorMoveZero(cmdDTO.getCommandId(), cmdDTO.getCommand());//加液模块上升至最高移出试管
}
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
for (int j = 0; j < jsonArray.size(); j++) {
int column = jsonArray.getInt(j);
double distance = Math.abs(column - 5) * trayTubeHorizontalSpacingDistance;//x轴移动距离

2
src/main/java/com/iflytop/sgs/app/cmd/control/LiquidAddCommand.java

@ -50,6 +50,7 @@ public class LiquidAddCommand extends BaseCommandHandler {
if (deviceStateService.getCommandMutexState().get().isTransferCommandExecuting()) {
throw new AppException(ResultCode.CMD_BUSY);
}
Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
Point3D liquidAreaTrayPoint = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D(); //获取加液区上方托盘点位
Double solutionModuleMotorDownInTubeAddPositon = devicePositionService.getPosition(DevicePositionCode.solutionModuleMotorDownInTubeAddPositon).getPositon(); //加液模块电机下降进入试管加液位置
Double trayTubeHorizontalSpacingDistance = devicePositionService.getPosition(DevicePositionCode.trayTubeHorizontalSpacingDistance).getDistance(); //托盘试管水平间距
@ -93,6 +94,7 @@ public class LiquidAddCommand extends BaseCommandHandler {
solutionModuleService.solutionMotorMoveZero(cmdDTO.getCommandId(), cmdDTO.getCommand());//加液机械臂上升
}
}
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
transferModuleService.transferMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidAreaTrayPoint);//移动至加液位置
deviceStateService.getDeviceState().getSolutionModule().setPumping(false);//设置加液结束
} finally {

5
src/main/java/com/iflytop/sgs/app/cmd/control/LiquidPreFillStopCommand.java

@ -2,9 +2,11 @@ package com.iflytop.sgs.app.cmd.control;
import com.iflytop.sgs.app.core.BaseCommandHandler;
import com.iflytop.sgs.app.model.dto.CmdDTO;
import com.iflytop.sgs.app.service.api.SystemConfigService;
import com.iflytop.sgs.app.service.device.DeviceStateService;
import com.iflytop.sgs.app.service.device.module.SolutionModuleService;
import com.iflytop.sgs.common.annotation.CommandMapping;
import com.iflytop.sgs.common.enums.SystemConfigCode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@ -21,11 +23,14 @@ import java.util.concurrent.CompletableFuture;
public class LiquidPreFillStopCommand extends BaseCommandHandler {
private final SolutionModuleService solutionModuleService;
private final DeviceStateService deviceStateService;
private final SystemConfigService systemConfigService;
@Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
Double backFlowDistance = systemConfigService.getSystemConfigDoubleByCode(SystemConfigCode.back_flow_distance);//防低落距离
return runAsync(() -> {
solutionModuleService.liquidPumpStop(cmdDTO.getCommandId(), cmdDTO.getCommand());//停止预充
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
solutionModuleService.solutionMotorMoveZero(cmdDTO.getCommandId(), cmdDTO.getCommand());//加液机械臂归0
deviceStateService.getDeviceState().getSolutionModule().setPumping(false);//设置加液结束
});

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

@ -128,7 +128,7 @@ 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);//防低落距离
/*获取参数结束*/
log.info("工艺{},申请转运模组并等待", heatModuleCode);
@ -179,6 +179,7 @@ public class CraftsStepService {
solutionModuleService.liquidValveSwitchByChannel(channel);//电磁阀对应通道打开
log.info("工艺{},预充", heatModuleCode);
solutionModuleService.liquidPumpMove(preFillDistance);//预充
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
log.info("工艺{},加液机械臂上升", heatModuleCode);
solutionModuleService.solutionMotorMoveZero();//加液机械臂上升
/*预充结束*/
@ -219,6 +220,7 @@ public class CraftsStepService {
craftMonitorService.saveOrUpdate(craftMonitor);
/*工艺监控结束*/
}
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
}
/*结束加液*/
@ -303,7 +305,7 @@ 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);//防低落距离
/*获取参数结束*/
log.info("工艺{},申请转运模组并等待", heatModuleCode);
@ -360,6 +362,7 @@ public class CraftsStepService {
log.info("工艺{},加液机械臂上升", heatModuleCode);
solutionModuleService.solutionMotorMoveZero();//加液机械臂上升
}
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
}
/*抽液结束*/
@ -381,6 +384,7 @@ public class CraftsStepService {
solutionModuleService.liquidValveSwitchByChannel(channel);//电磁阀对应通道打开
log.info("工艺{},预充", heatModuleCode);
solutionModuleService.liquidPumpMove(preFillDistance);//预充
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
log.info("工艺{},加液机械臂上升", heatModuleCode);
solutionModuleService.solutionMotorMoveZero();//加液机械臂上升
/*预充结束*/
@ -422,6 +426,7 @@ public class CraftsStepService {
craftMonitorService.saveOrUpdate(craftMonitor);
/*工艺监控结束*/
}
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
}
/*结束加液*/
@ -547,6 +552,7 @@ 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);//防低落距离
webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatModuleCode.toString(), "机械臂移动至加热区", heatModuleTrayClawPoint3D));
/*获取参数结束*/
@ -636,6 +642,7 @@ public class CraftsStepService {
log.info("工艺{},加液模块上升至最高,移出试管", heatModuleCode);
solutionModuleService.solutionMotorMoveZero();//加液模块上升至最高移出试管
}
solutionModuleService.liquidPumpMove(-backFlowDistance);//预充
log.info("工艺{},电磁阀废液通道打开", heatModuleCode);
Thread.sleep(1000);
/*抽*/

2
src/main/java/com/iflytop/sgs/common/enums/SystemConfigCode.java

@ -10,7 +10,7 @@ public enum SystemConfigCode {
water("水加液系数"),
thick("浓硝酸加液系数"),
thin("稀硝酸加液系数"),
back_flow_distance("稀硝酸加液系数"),
back_flow_distance("回吸放滴落距离"),
pre_fill_distance("加液预充距离"),
drain_distance("加液排空距离"),
reduce_distance("过量抽液距离"),

2
src/main/resources/sql/init.sql

@ -49,7 +49,7 @@ CREATE TABLE IF NOT EXISTS system_config
INSERT OR IGNORE INTO system_config ("id", "name", "code", "value", "create_time", "update_time") VALUES (1, '水加液系数', 'water', '2', '2025-06-07 10:58:06.000', '2025-06-07 10:58:07.000');
INSERT OR IGNORE INTO system_config ("id", "name", "code", "value", "create_time", "update_time") VALUES (2, '浓硝酸加液系数', 'thick', '2', '2025-05-28 13:30:45', '2025-05-28 13:30:45');
INSERT OR IGNORE INTO system_config ("id", "name", "code", "value", "create_time", "update_time") VALUES (3, '稀硝酸加液系数', 'thin', '2', '2025-05-28 13:30:45', '2025-05-28 13:30:45');
INSERT OR IGNORE INTO system_config ("id", "name", "code", "value", "create_time", "update_time") VALUES (4, '回吸放滴落距离', 'back_flow_distance', '0.5', '2025-05-28 13:30:45', '2025-05-28 13:30:45');
INSERT OR IGNORE INTO system_config ("id", "name", "code", "value", "create_time", "update_time") VALUES (4, '回吸放滴落距离', 'back_flow_distance', '0.2', '2025-05-28 13:30:45', '2025-05-28 13:30:45');
INSERT OR IGNORE INTO system_config ("id", "name", "code", "value", "create_time", "update_time") VALUES (5, '过量预充距离', 'pre_fill_distance', '20', '2025-05-28 13:30:45', '2025-05-28 13:30:45');
INSERT OR IGNORE INTO system_config ("id", "name", "code", "value", "create_time", "update_time") VALUES (6, '过量排空距离', 'drain_distance', '20', '2025-05-28 13:30:45', '2025-05-28 13:30:45');
INSERT OR IGNORE INTO system_config ("id", "name", "code", "value", "create_time", "update_time") VALUES (7, '过量抽液距离', 'number_reduce', '10', '2025-05-28 13:30:45', '2025-05-28 13:30:45');

Loading…
Cancel
Save