|
|
@ -52,42 +52,46 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "出料X位置", group = "试管架位置信息") |
|
|
|
public Integer getTRExitXPos() { |
|
|
|
return 0; |
|
|
|
return 4001; |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "试管架扫码X位置", group = "试管架位置信息") |
|
|
|
public Integer getTRScanXPos() { |
|
|
|
return 0; |
|
|
|
return 2202; |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "试管扫码位置", group = "试管位置信息") |
|
|
|
public Integer getTScanXPos() { |
|
|
|
return 0; |
|
|
|
//运动方向: -> |
|
|
|
return 505; |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "试管高度判断位置", group = "试管位置信息") |
|
|
|
public Integer getTAltitJudgXPos() { |
|
|
|
return 0; |
|
|
|
//运动方向: -> |
|
|
|
return 505; |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "试管是否存在判断位置", group = "试管位置信息") |
|
|
|
public Integer getTExistJudgXPos() { |
|
|
|
return 0; |
|
|
|
//运动方向: <- |
|
|
|
return 300; |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "试管预处理位置", group = "试管位置信息") |
|
|
|
public Integer getTPreProcessXPos() { |
|
|
|
return 0; |
|
|
|
//运动方向: <- |
|
|
|
return 1244; |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "试管架孔间距", group = "其他") |
|
|
|
public Integer getTubeSpacing() { |
|
|
|
return 0; |
|
|
|
return 200; |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "扫码舵机转速(0..900)", group = "其他") |
|
|
|
public Integer getTubeScanServoTorque() { |
|
|
|
return 300; |
|
|
|
return 500; |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceParam(name = "试管扫码超时时间", group = "其他") |
|
|
@ -191,7 +195,7 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { |
|
|
|
@HardwareServiceAction(name = "入料", group = "模块基础动作") |
|
|
|
public void tryEnterTubeRack(Integer time) throws HardwareException, InterruptedException { |
|
|
|
try { |
|
|
|
canBus.stepMotorEasyRotate(MId.FeedingModInfeedM, 1); |
|
|
|
canBus.stepMotorEasyRotate(MId.FeedingModInfeedM, -1); |
|
|
|
Thread.sleep(time); |
|
|
|
} finally { |
|
|
|
canBus.moduleStop(MId.FeedingModInfeedM); |
|
|
@ -307,7 +311,7 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { |
|
|
|
* 移动试管到试管高低判断位置 |
|
|
|
* @param tubeIndex 试管索引 |
|
|
|
*/ |
|
|
|
@HardwareServiceAction(name = "判断<试管N>位置", group = "片段") |
|
|
|
@HardwareServiceAction(name = "判断<试管N>高低", group = "片段") |
|
|
|
public AppRet<Boolean> moveTubeToAltitJudgXPos(Integer tubeIndex) throws HardwareException, InterruptedException { |
|
|
|
moveTubeRackTo(getTAltitJudgXPos() + tubeIndex * getTubeSpacing()); |
|
|
|
return AppRet.success(isHighTube()); |
|
|
@ -329,13 +333,17 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { |
|
|
|
@HardwareServiceAction(name = "判断<试管N>是否存在", group = "片段") |
|
|
|
public AppRet<Boolean> judgeTubeExist(Integer tubeIndex) throws HardwareException, InterruptedException { |
|
|
|
moveTubeRackTo(getTExistJudgXPos() + tubeIndex * getTubeSpacing()); |
|
|
|
return AppRet.success(isTubeRackInEnterPos()); |
|
|
|
return AppRet.success(isTubeExist()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// |
|
|
|
// 状态 |
|
|
|
// |
|
|
|
@HardwareServiceStatus(name = "试管架存在") |
|
|
|
public Boolean isTubeExist() throws HardwareException { |
|
|
|
return canBus.getIOState(IOId.TubeExistPPS); |
|
|
|
} |
|
|
|
|
|
|
|
@HardwareServiceStatus(name = "入口光电") |
|
|
|
public Boolean isTubeRackInEnterPos() throws HardwareException { |
|
|
|
return canBus.getIOState(IOId.InfeedPPS); |
|
|
|