|
|
@ -45,6 +45,42 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
@Resource |
|
|
|
MotorTubeRackMoveCtrlServiceParameterDao serviceParameterDao; |
|
|
|
|
|
|
|
public void setEnable( Boolean enable ) throws HardwareException { |
|
|
|
this.a8kCanBusService.callcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_enable, |
|
|
|
enable ? 1 : 0 |
|
|
|
); |
|
|
|
this.a8kCanBusService.callcmd( |
|
|
|
ModId.FeedingModInfeedM, |
|
|
|
CmdId.kstep_motor_enable, |
|
|
|
enable ? 1 : 0 |
|
|
|
); |
|
|
|
this.a8kCanBusService.callcmd( |
|
|
|
ModId.FeedingModOutfeedM, |
|
|
|
CmdId.kstep_motor_enable, |
|
|
|
enable ? 1 : 0 |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
public void stop() throws HardwareException { |
|
|
|
this.a8kCanBusService.callcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_stop, |
|
|
|
1 |
|
|
|
); |
|
|
|
this.a8kCanBusService.callcmd( |
|
|
|
ModId.FeedingModInfeedM, |
|
|
|
CmdId.kstep_motor_stop, |
|
|
|
1 |
|
|
|
); |
|
|
|
this.a8kCanBusService.callcmd( |
|
|
|
ModId.FeedingModOutfeedM, |
|
|
|
CmdId.kstep_motor_stop, |
|
|
|
1 |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// |
|
|
|
// 电机基础控制 |
|
|
@ -55,7 +91,6 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_easy_move_to_zero, |
|
|
|
new Integer[]{}, |
|
|
|
params.getMoveToZeroOvertime() |
|
|
|
); |
|
|
|
} |
|
|
@ -63,10 +98,10 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
|
|
|
|
public void moveToZero() throws HardwareException, InterruptedException { |
|
|
|
var params = this.serviceParameterDao; |
|
|
|
var beforePosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos, new Integer[]{0}); |
|
|
|
var beforePosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos); |
|
|
|
var beforePos = beforePosResponse.getContentI32(0); |
|
|
|
this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, new Integer[]{}, params.getMoveToZeroOvertime()); |
|
|
|
var afterPosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos, new Integer[]{0}); |
|
|
|
this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, params.getMoveToZeroOvertime()); |
|
|
|
var afterPosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos); |
|
|
|
var afterPos = afterPosResponse.getContentI32(0); |
|
|
|
var distance = beforePos - afterPos; |
|
|
|
|
|
|
@ -100,7 +135,7 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
new Integer[]{params.getTubeRackEnterPos()}, |
|
|
|
params.getTubeRackEnterPos(), |
|
|
|
params.getActionOvertime() |
|
|
|
); |
|
|
|
} |
|
|
@ -113,7 +148,7 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
new Integer[]{params.getTubeExistJudgmentPos()}, |
|
|
|
params.getTubeRackExitPos(), |
|
|
|
params.getActionOvertime() |
|
|
|
); |
|
|
|
} |
|
|
@ -126,7 +161,7 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
new Integer[]{params.getTubeRackScanCodePos()}, |
|
|
|
params.getTubeRackScanCodePos(), |
|
|
|
params.getActionOvertime() |
|
|
|
); |
|
|
|
} |
|
|
@ -136,10 +171,10 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
*/ |
|
|
|
public String moveTubeRackToScanPosAndScan() throws HardwareException, InterruptedException { |
|
|
|
this.moveTubeRackToScanPos(); |
|
|
|
this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan, new Integer[]{}); |
|
|
|
Thread.sleep(500); |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result, new Integer[]{}); |
|
|
|
this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan, new Integer[]{}); |
|
|
|
this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan); |
|
|
|
Thread.sleep(5000); |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result); |
|
|
|
this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan); |
|
|
|
var contentBytes = response.getCmdContent(); |
|
|
|
return new String(contentBytes); |
|
|
|
} |
|
|
@ -156,12 +191,11 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
*/ |
|
|
|
public void moveTubeToScanPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { |
|
|
|
var params = this.serviceParameterDao; |
|
|
|
var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); |
|
|
|
var scanPos = params.getTubeScanPos() + tubeIndex * tubeInfo.tubeSpacing; |
|
|
|
var scanPos = params.getTubeScanPos() + tubeIndex * params.getTubeSpacing(); |
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
new Integer[]{scanPos}, |
|
|
|
scanPos, |
|
|
|
params.getActionOvertime() |
|
|
|
); |
|
|
|
} |
|
|
@ -174,10 +208,10 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
public String moveTubeToScanPosAndScan(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { |
|
|
|
this.moveTubeToScanPos(tubeType, tubeIndex); |
|
|
|
|
|
|
|
this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan, new Integer[]{}); |
|
|
|
Thread.sleep(500); |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result, new Integer[]{}); |
|
|
|
this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan, new Integer[]{}); |
|
|
|
this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan); |
|
|
|
Thread.sleep(5000); |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result); |
|
|
|
this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan); |
|
|
|
var contentBytes = response.getCmdContent(); |
|
|
|
return new String(contentBytes); |
|
|
|
} |
|
|
@ -189,9 +223,13 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
*/ |
|
|
|
public void moveTubeToHeighJudgmentPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { |
|
|
|
var params = this.serviceParameterDao; |
|
|
|
var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); |
|
|
|
var detectPos = params.getTubeHeighJudgmentPos() + tubeIndex * tubeInfo.tubeSpacing; |
|
|
|
this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{detectPos}, params.getActionOvertime()); |
|
|
|
var detectPos = params.getTubeHeighJudgmentPos() + tubeIndex * params.getTubeSpacing(); |
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
detectPos, |
|
|
|
params.getActionOvertime() |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -201,9 +239,13 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
*/ |
|
|
|
public void moveTubeToPreProcessPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { |
|
|
|
var params = this.serviceParameterDao; |
|
|
|
var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); |
|
|
|
var pos = params.getTubePreProcessPos() + tubeIndex * tubeInfo.tubeSpacing; |
|
|
|
this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.getActionOvertime()); |
|
|
|
var pos = params.getTubePreProcessPos() + tubeIndex * params.getTubeSpacing(); |
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
ModId.FeedingModXM, |
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
pos, |
|
|
|
params.getActionOvertime() |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
// |
|
|
@ -217,18 +259,17 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
*/ |
|
|
|
public void moveTubeToExistJudgmentPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { |
|
|
|
var params = this.serviceParameterDao; |
|
|
|
var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); |
|
|
|
var pos = params.getTubeRackExitPos() + tubeIndex * tubeInfo.tubeSpacing; |
|
|
|
var pos = params.getTubeRackExitPos() + tubeIndex * params.getTubeSpacing(); |
|
|
|
this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.getActionOvertime()); |
|
|
|
} |
|
|
|
|
|
|
|
public boolean isTubeRackInEnterPos() throws HardwareException { |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{3}); |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, 3); |
|
|
|
return response.getContentI32(0) == 1; |
|
|
|
} |
|
|
|
|
|
|
|
public boolean isTubeRackInExitPos() throws HardwareException { |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{5}); |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, 5); |
|
|
|
return response.getContentI32(0) == 1; |
|
|
|
} |
|
|
|
|
|
|
@ -237,7 +278,7 @@ public class MotorTubeRackMoveCtrlService { |
|
|
|
* @param photoelectricIndex 0:里光电,1:外光电 |
|
|
|
* @return true, 光电触发 false,光电没有触发 |
|
|
|
*/ |
|
|
|
public boolean getMoveChannelPhotoelectricState(int photoelectricIndex) throws HardwareException { |
|
|
|
public boolean getMoveChannelPhotoelectricState(Integer photoelectricIndex) throws HardwareException { |
|
|
|
var index = 0 == photoelectricIndex ? 2 : 1; |
|
|
|
var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{index}); |
|
|
|
return response.getContentI32(0) == 1; |
|
|
|