Browse Source

update

tags/v0
zhaohe 1 year ago
parent
commit
7a5c4b2e9e
  1. 4
      README.md
  2. 12
      src/main/java/a8k/canbus/A8kModParamInitializer.java
  3. 1
      src/main/java/a8k/canbus/protocol/A8kEcode.java
  4. 44
      src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java

4
README.md

@ -38,6 +38,10 @@
TODO:
1.想办法解决
4:号仓位退不出
14
```

12
src/main/java/a8k/canbus/A8kModParamInitializer.java

@ -70,6 +70,18 @@ public class A8kModParamInitializer implements AppEventListener {
//
canBus.moduleSetReg(MId.OptModPullM, RegIndex.kreg_step_motor_run_to_zero_speed, 500);
canBus.moduleSetReg(MId.OptModPullM, RegIndex.kreg_step_motor_default_velocity, 2200);
// canBus.moduleSetReg(MId.OptModPullM, RegIndex.kreg_step_motor_a1, 50);
// canBus.moduleSetReg(MId.OptModPullM, RegIndex.kreg_step_motor_amax, 100);
canBus.moduleSetReg(MId.OptModPullM, RegIndex.kreg_step_motor_irun, 31);
canBus.moduleSetReg(MId.PlatesBoxPusherM, RegIndex.kreg_step_motor_default_velocity, 1500);
canBus.moduleSetReg(MId.PlatesBoxPusherM, RegIndex.kreg_step_motor_irun, 31);
canBus.moduleSetReg(MId.PlatesBoxYM, RegIndex.kreg_step_motor_default_velocity, 1500);
canBus.moduleSetReg(MId.PlatesBoxYM, RegIndex.kreg_step_motor_irun, 25);
// canBus.moduleSetReg(MId.OptModPullM, RegIndex.kreg_step_motor_run_to_zero_speed, 500);
}

1
src/main/java/a8k/canbus/protocol/A8kEcode.java

@ -27,6 +27,7 @@ public enum A8kEcode {
TubeXChannelIsNotEmpty(21, "试管架平移通道不为空"),//
TubeTypeNotSupport(22, "试管类型不支持"),//
CmdIdNotSupport(23, "不支持指令"),//
PullPlateFail(24, "钩板卡板"),//
//
// FOR HARDWARE
//

44
src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java

@ -28,7 +28,7 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule {
@HardwareServiceParam(name = "动作超时时间", group = "基础参数")
public Integer getActionOvertime() {
return hpReader.getInteger("actionOvertime", 10000);
return hpReader.getInteger("actionOvertime", 7000);
}
@HardwareServiceParam(name = "板夹仓通道0位置", group = "板夹仓参数")
@ -62,7 +62,7 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule {
@HardwareServiceParam(name = "仓位0出板位置", group = "转盘参数")
public Integer getTurntablePullPos0() {
return hpReader.getInteger("TurntablePullPos0", 1650 + 18000);
return hpReader.getInteger("TurntablePullPos0", 19700);
}
@HardwareServiceParam(name = "仓位0点滴位", group = "转盘参数")
@ -89,7 +89,7 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule {
@HardwareServiceParam(name = "扫描待机位", group = "光学模组参数")
public Integer getOptScanScandbyPos() {
return hpReader.getInteger("OptScanScandbyPos", 580);
return hpReader.getInteger("OptScanScandbyPos", 305);
}
/**
@ -247,12 +247,24 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule {
return AppRet.success(canBus.plateCodeScannerReadCode(MId.PlatesBoxScanner));
}
public void pushPlateQuick(PlateBoxCh PBCh, IncubatorPos turntablePosIndex) throws HardwareException, InterruptedException {
trunableMoveToPushPos(turntablePosIndex);
canBus.stepMotorEasyMoveToBlock(MId.PlatesBoxYM, getPBCh0Pos() + PBCh.off * getPBChSpacing(), getActionOvertime());
canBus.stepMotorEasyMoveToBlock(MId.PlatesBoxPusherM, getPusherEndPos(), getActionOvertime());
canBus.stepMotorEasyMoveToZeroPointQuickBlock(MId.PlatesBoxPusherM, getActionOvertime());
canBus.stepMotorEasyMoveToZeroPointQuickBlock(MId.PlatesBoxYM, getActionOvertime());
}
@HardwareServiceAction(name = "拉板", group = "单步操作")
public void pullPlate(IncubatorPos turntablePosIndex) throws HardwareException, InterruptedException {
trunableMoveToPullPos(turntablePosIndex);
canBus.stepMotorEasyMoveToBlock(MId.OptModScannerM, getOptScanScandbyPos(), getActionOvertime());
canBus.stepMotorEasyMoveToBlock(MId.OptModPullM, getPullerTargetPos(), getActionOvertime());
if (!canBus.getIOState(IOId.PullerMEndPPS)) {
logger.error("pull plate fail");
throw new HardwareException(A8kEcode.PullPlateFail);
}
canBus.stepMotorEasyMoveToZeroPointQuickBlock(MId.OptModPullM, getActionOvertime());
}
@ -263,29 +275,33 @@ public class ReactionPlatesTransmitCtrlService implements HardwareCtrlModule {
canBus.stepMotorEasyMoveToBlock(MId.OptModScannerM, getOptScanScandbyPos(), getActionOvertime());
}
private Boolean breakDropAllPlateFlag = false;
Boolean pushAllPlateAndDropBreakFlag = false;
@HardwareServiceAction(name = "丢弃全部板", group = "测试")
public void dropAllPlate() throws HardwareException, InterruptedException {
breakDropAllPlateFlag = false;
@HardwareServiceAction(name = "推全部板同时丢弃", group = "位置测试")
public void pushAllPlateAndDrop(PlateBoxCh PBCh, IncubatorPos startPos) throws HardwareException, InterruptedException {
pushAllPlateAndDropBreakFlag = false;
checkBeforeMoveTrunable();
checkBeforeMovePlateBox();
modGroupMoveToZeroQuick();
dropPlate();
for (IncubatorPos index : IncubatorPos.values()) {
if (index.compareTo(startPos) < 0) {
continue;
}
pushPlateQuick(PBCh, index);
if (pushAllPlateAndDropBreakFlag) {break;}
pullPlate(index);
if (pushAllPlateAndDropBreakFlag) {break;}
dropPlate();
if (breakDropAllPlateFlag) {
break;
}
if (pushAllPlateAndDropBreakFlag) {break;}
}
}
@HardwareServiceAction(name = "打断-丢弃全部板", group = "测试")
public void breakDropAllPlate() throws HardwareException, InterruptedException {
breakDropAllPlateFlag = true;
@HardwareServiceAction(name = "推全部板同时丢弃中断", group = "位置测试")
public void pushAllPlateAndDropBreak() {
pushAllPlateAndDropBreakFlag = true;
}
@HardwareServiceAction(name = "显示板夹扫码原始曲线", group = "辅助调试")
public AppRet<A8kScanCurve> readPlateScanCurve() throws HardwareException, InterruptedException {
List<Integer> scanDataCurve = canBus.plateCodeScanerReadRawResult(MId.PlatesBoxScanner);

Loading…
Cancel
Save