From 0c60480362efdcffa0cbb3f6dd4272f43859adb1 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期二, 01 四月 2025 15:05:15 +0800 Subject: [PATCH] * --- src/main/java/com/zy/asrs/entity/TaskWrk.java | 14 src/main/java/com/zy/asrs/controller/OpenController.java | 72 +- src/main/java/com/zy/asrs/entity/BasDevp.java | 16 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 261 ----------- src/main/java/com/zy/asrs/controller/CrnController.java | 14 src/main/resources/mapper/TaskWrkMapper.xml | 4 src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 319 +++---------- src/main/java/com/zy/asrs/service/OpenService.java | 4 src/main/java/com/zy/asrs/entity/TaskWrkLog.java | 1 src/main/java/com/zy/core/model/protocol/StaProtocol.java | 2 src/main/java/com/zy/core/thread/SiemensCrnThread.java | 515 --------------------- src/main/java/com/zy/asrs/controller/ConsoleController.java | 6 src/main/java/com/zy/core/enums/CrnStatusType.java | 46 - src/main/java/com/zy/asrs/controller/TaskWrkController.java | 15 src/main/java/com/zy/core/MainProcess.java | 7 src/main/resources/mapper/TaskWrkLogMapper.xml | 1 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 64 +- src/main/resources/mapper/BasDevpMapper.xml | 4 18 files changed, 215 insertions(+), 1,150 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java index d56f44d..5e704a3 100644 --- a/src/main/java/com/zy/asrs/controller/ConsoleController.java +++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java @@ -147,7 +147,7 @@ /** * 鍫嗗灈鏈虹姸鎬佸垽鏂� */ - if (crnProtocol.getAlarm1() > 0) { + if (crnProtocol.getAlarm() > 0) { vo.setCrnStatus(CrnStatusType.MACHINE_ERROR); } else { if (crnProtocol.getTaskNo()>0) { @@ -324,8 +324,8 @@ vo.setWorkNo(crnProtocol.getTaskNo()); vo.setCrnStatus(crnProtocol.getStatusType().desc); - if (crnProtocol.getAlarm1() > 0) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); + if (crnProtocol.getAlarm() > 0) { + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); vo.setError(crnError == null ? "鏈煡寮傚父" : crnError.getErrName()); } diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java index 4844ff3..2bb0d19 100644 --- a/src/main/java/com/zy/asrs/controller/CrnController.java +++ b/src/main/java/com/zy/asrs/controller/CrnController.java @@ -130,7 +130,7 @@ vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆 vo.setLiftPos(crnProtocol.getLiftPosType().desc); vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�"); - vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1())); + vo.setWarnCode(String.valueOf(crnProtocol.getAlarm())); if (crnProtocol.getAlarm() > 0) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName()); @@ -165,9 +165,9 @@ vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆 vo.setLiftPos(crnProtocol.getLiftPosType().desc); vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�"); - vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1())); - if (crnProtocol.getAlarm1() > 0) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); + vo.setWarnCode(String.valueOf(crnProtocol.getAlarm())); + if (crnProtocol.getAlarm() > 0) { + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName()); } return R.ok().add(vo); @@ -307,9 +307,9 @@ vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆 vo.setLiftPos(crnProtocol.getLiftPosType().desc); vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�"); - vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1())); - if (crnProtocol.getAlarm1() > 0) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); + vo.setWarnCode(String.valueOf(crnProtocol.getAlarm())); + if (crnProtocol.getAlarm() > 0) { + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName()); } vo.setInEnable(basCrnp.getInEnable()); diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index 0e360c4..7af2501 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -154,43 +154,43 @@ return R.ok().add(taskWrk); } - //鍙栨斁璐х敵璇� - @PostMapping("/pick/and/place/v1") - @AppAuth(memo = "agv鍙栨斁璐х敵璇�") - public R getAgvPickAndPlaceV1(@RequestHeader String appkey, - @RequestBody TaskOverParam param, - HttpServletRequest request){ - auth(appkey, param, request); - if (Cools.isEmpty(param)) { - return R.parse(BaseRes.PARAM); - } - if (Cools.isEmpty(param.getStaNo())){ - return R.error("鐮佸ご[staNo]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getType())){ - return R.error("绫诲瀷[type]涓嶈兘涓虹┖"); - } - return openService.getAgvPickAndPlaceV1(param); - } +// //鍙栨斁璐х敵璇� +// @PostMapping("/pick/and/place/v1") +// @AppAuth(memo = "agv鍙栨斁璐х敵璇�") +// public R getAgvPickAndPlaceV1(@RequestHeader String appkey, +// @RequestBody TaskOverParam param, +// HttpServletRequest request){ +// auth(appkey, param, request); +// if (Cools.isEmpty(param)) { +// return R.parse(BaseRes.PARAM); +// } +// if (Cools.isEmpty(param.getStaNo())){ +// return R.error("鐮佸ご[staNo]涓嶈兘涓虹┖"); +// } +// if (Cools.isEmpty(param.getType())){ +// return R.error("绫诲瀷[type]涓嶈兘涓虹┖"); +// } +// return openService.getAgvPickAndPlaceV1(param); +// } - //鍙栨斁璐у畬鎴愬弽棣� - @PostMapping("/pick/and/place/v2") - @AppAuth(memo = "agv鍙栨斁璐у畬鎴愬弽棣�") - public R getAgvPickAndPlaceV2(@RequestHeader String appkey, - @RequestBody TaskOverParam param, - HttpServletRequest request){ - auth(appkey, param, request); - if (Cools.isEmpty(param)) { - return R.parse(BaseRes.PARAM); - } - if (Cools.isEmpty(param.getStaNo())){ - return R.error("鐮佸ご[staNo]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getType())){ - return R.error("绫诲瀷[type]涓嶈兘涓虹┖"); - } - return openService.getAgvPickAndPlaceV2(param); - } +// //鍙栨斁璐у畬鎴愬弽棣� +// @PostMapping("/pick/and/place/v2") +// @AppAuth(memo = "agv鍙栨斁璐у畬鎴愬弽棣�") +// public R getAgvPickAndPlaceV2(@RequestHeader String appkey, +// @RequestBody TaskOverParam param, +// HttpServletRequest request){ +// auth(appkey, param, request); +// if (Cools.isEmpty(param)) { +// return R.parse(BaseRes.PARAM); +// } +// if (Cools.isEmpty(param.getStaNo())){ +// return R.error("鐮佸ご[staNo]涓嶈兘涓虹┖"); +// } +// if (Cools.isEmpty(param.getType())){ +// return R.error("绫诲瀷[type]涓嶈兘涓虹┖"); +// } +// return openService.getAgvPickAndPlaceV2(param); +// } //鏌ヨ浠诲姟鎸囦护闆嗗悎 @GetMapping("/queryTaskCommand") diff --git a/src/main/java/com/zy/asrs/controller/TaskWrkController.java b/src/main/java/com/zy/asrs/controller/TaskWrkController.java index 04a0a73..3136a88 100644 --- a/src/main/java/com/zy/asrs/controller/TaskWrkController.java +++ b/src/main/java/com/zy/asrs/controller/TaskWrkController.java @@ -306,21 +306,6 @@ return R.ok(); } - @PostMapping(value = "/taskWrk/updateCommandStep") - @ManagerAuth(memo = "鏇存柊姝ュ簭") - public R updateCommandStep(@RequestParam Integer wrkNo, @RequestParam Integer commandStep) { - TaskWrk taskWrk = taskWrkService.selectByWrkNo(wrkNo); - if (taskWrk == null) { - return R.error(); - } - Date now = new Date(); - taskWrk.setCommandStep(commandStep); - taskWrk.setModiTime(now);//鎿嶄綔鏃堕棿 - taskWrk.setModiUser(getUserId());//鎿嶄綔鍛� - taskWrkService.updateById(taskWrk); - return R.ok(); - } - public static String getTaskType(Integer paramIoType){ switch (paramIoType){ case 1: diff --git a/src/main/java/com/zy/asrs/entity/BasDevp.java b/src/main/java/com/zy/asrs/entity/BasDevp.java index 7003eef..a7e3309 100644 --- a/src/main/java/com/zy/asrs/entity/BasDevp.java +++ b/src/main/java/com/zy/asrs/entity/BasDevp.java @@ -214,22 +214,6 @@ @TableField("cart_pos") private Integer cartPos; - @ApiModelProperty(value= "") - @TableField("agv_start_pick") - private Integer agvStartPick; - - @ApiModelProperty(value= "") - @TableField("agv_target_pick") - private Integer agvTargetPick; - - @ApiModelProperty(value= "") - @TableField("agv_start_place") - private Integer agvStartPlace; - - @ApiModelProperty(value= "") - @TableField("agv_target_place") - private Integer agvTargetPlace; - @ApiModelProperty(value= "寮傚父鐮�") @TableField("sta_err") private Integer staErr; diff --git a/src/main/java/com/zy/asrs/entity/TaskWrk.java b/src/main/java/com/zy/asrs/entity/TaskWrk.java index 379fd46..246fcaf 100644 --- a/src/main/java/com/zy/asrs/entity/TaskWrk.java +++ b/src/main/java/com/zy/asrs/entity/TaskWrk.java @@ -61,6 +61,13 @@ private Integer wrkNo; /** + * 浠诲姟鍙� + */ + @ApiModelProperty(value= "閲嶉噺") + @TableField("sc_weight") + private Integer scWeight; + + /** * 浠诲姟鏃堕棿(鎺ユ敹鏃堕棿) */ @ApiModelProperty(value= "浠诲姟鏃堕棿(鎺ユ敹鏃堕棿)") @@ -168,13 +175,6 @@ @ApiModelProperty(value= "鍫嗗灈鏈哄彿") @TableField("crn_no") private Integer crnNo; - - /** - * 鎸囦护鎵ц姝ュ簭 - */ - @ApiModelProperty(value= "鎸囦护鎵ц姝ュ簭") - @TableField("command_step") - private Integer commandStep = 0; @ApiModelProperty(value = "绉诲簱鏍囪") @TableField("transfer_mark") diff --git a/src/main/java/com/zy/asrs/entity/TaskWrkLog.java b/src/main/java/com/zy/asrs/entity/TaskWrkLog.java index e926683..b0f0bef 100644 --- a/src/main/java/com/zy/asrs/entity/TaskWrkLog.java +++ b/src/main/java/com/zy/asrs/entity/TaskWrkLog.java @@ -227,7 +227,6 @@ this.cancelTime = taskWrk.getCancelTime(); this.wrkSts = taskWrk.getWrkSts(); this.crnNo = taskWrk.getCrnNo(); - this.commandStep = taskWrk.getCommandStep(); } // TaskWrkLog taskWrkLog = new TaskWrkLog( // null, // wms浠诲姟鍙� diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java index d763764..02d0549 100644 --- a/src/main/java/com/zy/asrs/service/OpenService.java +++ b/src/main/java/com/zy/asrs/service/OpenService.java @@ -16,6 +16,6 @@ void getAgvTaskOver(TaskOverParam param); - R getAgvPickAndPlaceV1(TaskOverParam param); - R getAgvPickAndPlaceV2(TaskOverParam param); +// R getAgvPickAndPlaceV1(TaskOverParam param); +// R getAgvPickAndPlaceV2(TaskOverParam param); } diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index bbed9de..4c1e5cd 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -56,8 +56,6 @@ @Transactional public class MainServiceImpl { - public static final long COMMAND_TIMEOUT = 5 * 1000; - @Autowired private SlaveProperties slaveProperties; @Autowired @@ -77,14 +75,8 @@ @Autowired private TaskWrkService taskWrkService; @Autowired - private ConfigService configService; - @Autowired private StaDescMapper staDescMapper; - @Autowired - private CommandInfoService commandInfoService; - @Autowired - private OpenServiceImpl openServiceImpl; @Autowired private StaDescService staDescService; @@ -103,8 +95,6 @@ private String taskStatusFeedbackPath; @Autowired private CrnController crnController; - @Autowired - private SiteController siteController; public void generateStoreWrkFile() throws IOException, InterruptedException { @@ -860,54 +850,6 @@ /** * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� */ -// public void storeFinished() { -// for (CrnSlave crn : slaveProperties.getCrn()) { -// // 鑾峰彇鍫嗗灈鏈轰俊鎭� -// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); -// CrnProtocol crnProtocol = crnThread.getCrnProtocol(); -// if (crnProtocol == null) { continue; } -// -// // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 -// if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) { -// //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 -// TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue()); -// if (Cools.isEmpty(taskWrk)) { -//// log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); -// continue; -// } -// -// //鑾峰彇鎸囦护ID -// Integer commandId = crnProtocol.getCommandId(); -// CommandInfo commandInfo = new CommandInfo(); -// if (Cools.isEmpty(commandId)){ -// commandInfo = commandInfoService.selectOne(new EntityWrapper<CommandInfo>() -// .eq("wrk_no",crnProtocol.getTaskNo()) -// .eq("device","Crn")); -// }else { -// commandInfo = commandInfoService.selectById(commandId); -// } -// -// -// if (commandInfo == null) { -// //鎸囦护涓嶅瓨鍦� -// continue; -// } -// if (commandInfo.getCommandStatus() == 3){ -// continue; -// } -// commandInfo.setCommandStatus(CommandStatusType.COMPLETE.id);//鎸囦护瀹屾垚 -// commandInfo.setCompleteTime(new Date());//鎸囦护瀹屾垚鏃堕棿 -// if (commandInfoService.updateById(commandInfo)) {//淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 -// // 鍫嗗灈鏈哄浣� -// crnThread.setResetFlag(true); -// } -// } -// } -// } - - /** - * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� - */ public void storeFinished() throws InterruptedException { for (CrnSlave crn : slaveProperties.getCrn()) { // 鑾峰彇鍫嗗灈鏈轰俊鎭� @@ -916,7 +858,7 @@ if (crnProtocol == null) { continue; } // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 - if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) { + if (!Cools.isEmpty(crnProtocol.getTaskFinish()) && crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue()); if (Cools.isEmpty(taskWrk)&&crnProtocol.getTaskNo() !=999) { @@ -1054,7 +996,7 @@ wrkMast.getSourceStaNo(), // 婧愮珯 wrkMast.getSourceLocNo(), // 婧愬簱浣� wrkMast.getBarcode(), // 鏉$爜 - (int) crnProtocol.getAlarm1(), // 寮傚父鐮� + (int) crnProtocol.getAlarm(), // 寮傚父鐮� errName, // 寮傚父 1, // 寮傚父鎯呭喌 now, // 娣诲姞鏃堕棿 @@ -1069,7 +1011,7 @@ } } else { // 寮傚父淇 - if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) { + if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) { latest.setEndTime(now); latest.setUpdateTime(now); latest.setStatus(2); @@ -1082,7 +1024,7 @@ } else { BasErrLog latest = basErrLogService.findLatest(crn.getId()); // 鏈夊紓甯� - if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm() > 0) { + if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { // 璁板綍鏂板紓甯� if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); @@ -1101,7 +1043,7 @@ null, // 婧愮珯 null, // 婧愬簱浣� null, // 鏉$爜 - (int)crnProtocol.getAlarm1(), // 寮傚父鐮� + (int)crnProtocol.getAlarm(), // 寮傚父鐮� errName, // 寮傚父 1, // 寮傚父鎯呭喌 now, // 娣诲姞鏃堕棿 @@ -1130,199 +1072,6 @@ } } - } - - //鑷姩娲惧彂浠诲姟 - public void autoDistribute() { - Config config = configService.selectByCode("autoDistribute"); - if (config == null) { - return; - } - - if (config.getValue().equals("false")) {//鍒ゆ柇鏄惁寮�鍚嚜鍔ㄦ淳鍙戜换鍔� - return; - } - - for (TaskWrk taskWrk : taskWrkService.selectReceive()) { - - try { - taskWrkService.distribute(taskWrk.getTaskNo(), 9527L); - } catch (CoolException e) { - log.info(e.getMessage()); - } - } - } - - //agv鍙栨斁璐т换鍔″畬鎴� - public synchronized void autoCompleteAGV() { - List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>()); - try{ - Thread.sleep(500); - }catch (Exception e){ - - } - - for (BasDevp basDevp:basDevps){ - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); - StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (basDevp.getWrkNo()!=0){ - if (basDevp.getAgvTargetPick()!=0){//鍙栬揣 - staProtocol.setAgvTypeSign((short)0); - staProtocol.setStaNo(basDevp.getDevNo().shortValue()); - MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); - } - boolean sign = true; - if (basDevp.getAgvTargetPlace()!=0){ - sign = false; - basDevp.setAgvTargetPlace(0); - basDevpService.updateById(basDevp); - staProtocol.setAgvTypeSign((short)3);//1 - staProtocol.setStaNo(basDevp.getDevNo().shortValue()); - MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); - } - }else { - if (basDevp.getAgvTargetPlace()!=0){ - if (basDevp.getLoading().equals("Y")){ - staProtocol.setAgvTypeSign((short)1); - staProtocol.setStaNo(basDevp.getDevNo().shortValue()); - MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); - }else { - log.error("AGV鏀捐揣瀹屾垚浣嗚緭閫佺嚎鏃犵墿锛屽浣嶄俊鍙� ===>> [staNo:{}] [basDevp:{}]", basDevp.getDevNo(), basDevp); - basDevp.setAgvTargetPlace(0); - basDevpService.updateById(basDevp); - staProtocol.setAgvTypeSign((short)3);//1 - staProtocol.setStaNo(basDevp.getDevNo().shortValue()); - MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); - } - - } - if (basDevp.getAgvTargetPick()!=0){ - basDevp.setAgvTargetPick(0); - basDevpService.updateById(basDevp); - staProtocol.setAgvTypeSign((short)2);//0 - staProtocol.setStaNo(basDevp.getDevNo().shortValue()); - MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); - } - } - } - } - public synchronized void autoCompleteTask() { - List<TaskWrk> taskWrks = taskWrkMapper.selectWorkingTask(); - for (TaskWrk taskWrk : taskWrks) { - //鑾峰彇鍛戒护闆嗗悎 - List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo()); - if (taskWrk.getCommandStep() < commandInfos.size()) { - continue;//褰撳墠姝ュ簭娌℃湁鍒拌揪鏈�鍚庝竴鏉″懡浠� - } - - //鍒ゆ柇鏈鍛戒护鏄惁鎵ц瀹屾垚 - CommandInfo commandInfo = commandInfos.get(commandInfos.size() - 1); - if (commandInfo.getCommandStatus() != CommandStatusType.COMPLETE.id) { - continue;//鎸囦护鏈畬鎴� - } - - Date now = new Date(); - //鎸囦护宸插畬鎴愶紝鏇存柊浠诲姟 - if (taskWrk.getIoType() == 1) { - //鍏ュ簱浠诲姟 - taskWrk.setWrkSts(4);//3.鍚婅溅鍏ュ簱涓� => 4.鍏ュ簱瀹屾垚 - //taskWrk.setStatus(TaskStatusType.COMPLETE.id); - taskWrk.setModiTime(now); - taskWrkService.updateById(taskWrk); - - //鏇存柊搴撲綅鐘舵�� - LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint()); - locMast.setLocSts("F");//F.鍦ㄥ簱 - locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮� - locMast.setModiTime(now); - locMast.setModiUser(9999L); - locMastService.updateById(locMast); - } else if (taskWrk.getIoType() == 2) { - //鍑哄簱浠诲姟 - taskWrk.setWrkSts(14);//12.鍚婅溅鍑哄簱涓� => 14.鍑哄簱瀹屾垚 -// taskWrk.setStatus(TaskStatusType.COMPLETE.id); - taskWrk.setModiTime(now); - taskWrkService.updateById(taskWrk); - - //鏇存柊搴撲綅鐘舵�� - LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint()); - locMast.setLocSts("O");//O.绌哄簱浣� - locMast.setBarcode("");//鎵樼洏鐮� - locMast.setModiTime(now); - locMast.setModiUser(9999L); - locMastService.updateById(locMast); - } - } - } - - - public synchronized String CrnStartRunning(TaskWrk taskWrk){ - String tasktype = null; - switch (taskWrk.getIoType()){ - case 1: - tasktype= "RK"; - break; - case 2: - tasktype= "CK"; - break; - case 3: - tasktype= "YK"; - break; - default: - tasktype= "鏈煡"; - } - Map<String, Object> map = new HashMap<>(); - map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2"); - TaskOverToWms taskOverToWms = new TaskOverToWms(); - taskOverToWms.setFeedbackFrom("WCS"); //鏉ユ簮 - taskOverToWms.setWarehouseId("1688469798893297665"); //浠撳簱鏍囪瘑 - taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙� - taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷 - taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜 - if (taskWrk.getIoType() ==1 || taskWrk.getIoType() == 3){ - taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜 - taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅 - }else if (taskWrk.getIoType() ==2){ - Map<Integer,String> map1 = new HashMap<>(); - map1.put(102,"J-1101"); - map1.put(106,"J-1103"); - map1.put(110,"J-1105"); - map1.put(114,"J-1107"); - map1.put(118,"J-1109"); - map1.put(122,"J-1111"); - map1.put(305,"H-1101"); - map1.put(405,"G-1101"); - taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //璁惧缂栫爜 - taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣� - } - - taskOverToWms.setTaskStatus("executing"); //浠诲姟鐘舵�� - String response = null; - try { - response = new HttpHandler.Builder() - .setHeaders(map) - .setUri(wmsUrl) - .setPath("wcsManager/wcsInterface/taskStatusFeedback") - .setJson(JSON.toJSONString(taskOverToWms)) - .build() - .doPost(); - }catch (Exception e){ - log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触"); - } - apiLogService.save("鍫嗗灈鏈哄紑濮嬭繍琛�" - ,wmsUrl+"wcsManager/wcsInterface/taskStatusFeedback" - ,null - ,"127.0.0.1" - ,JSON.toJSONString(taskOverToWms) - ,response - ,true - ); - return response; } private TaskWrk createTask(GetWmsDto dto, String barcode){ diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index 181fa69..777dbde 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -265,39 +265,39 @@ } - @Override - public R getAgvPickAndPlaceV1(TaskOverParam param) { - BasDevp basDevp = basDevpService.selectById(param.getStaNo()); - if (Cools.isEmpty(basDevp)){ - return R.error("绔欑偣鍙锋湁璇�"+param.getStaNo()); - } - if (param.getType()==0 && basDevp.getAgvStartPick()==1){ - return R.ok(); - }else if (param.getType()==1 && basDevp.getAgvStartPlace()==1){ - return R.ok(); - }else { - return R.error("涓嶅厑璁�"); - } - } +// @Override +// public R getAgvPickAndPlaceV1(TaskOverParam param) { +// BasDevp basDevp = basDevpService.selectById(param.getStaNo()); +// if (Cools.isEmpty(basDevp)){ +// return R.error("绔欑偣鍙锋湁璇�"+param.getStaNo()); +// } +// if (param.getType()==0 && basDevp.getAgvStartPick()==1){ +// return R.ok(); +// }else if (param.getType()==1 && basDevp.getAgvStartPlace()==1){ +// return R.ok(); +// }else { +// return R.error("涓嶅厑璁�"); +// } +// } - @Override - public R getAgvPickAndPlaceV2(TaskOverParam param) { - BasDevp basDevp = basDevpService.selectById(param.getStaNo()); - if (Cools.isEmpty(basDevp)){ - return R.error("绔欑偣鍙锋湁璇�"+param.getStaNo()); - } - if (param.getType()==0){ - basDevp.setAgvTargetPick(1); - basDevpService.updateById(basDevp); - return R.ok(); - }else if (param.getType()==1){ - basDevp.setAgvTargetPlace(1); - basDevpService.updateById(basDevp); - return R.ok(); - }else { - return R.error("璇锋眰绫诲瀷寮傚父"+param.getType()); - } - } +// @Override +// public R getAgvPickAndPlaceV2(TaskOverParam param) { +// BasDevp basDevp = basDevpService.selectById(param.getStaNo()); +// if (Cools.isEmpty(basDevp)){ +// return R.error("绔欑偣鍙锋湁璇�"+param.getStaNo()); +// } +// if (param.getType()==0){ +// basDevp.setAgvTargetPick(1); +// basDevpService.updateById(basDevp); +// return R.ok(); +// }else if (param.getType()==1){ +// basDevp.setAgvTargetPlace(1); +// basDevpService.updateById(basDevp); +// return R.ok(); +// }else { +// return R.error("璇锋眰绫诲瀷寮傚父"+param.getType()); +// } +// } public List<Integer> getInEnableRoadway(){ int[] roadway = null; diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 93c01fd..1e228d1 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -68,13 +68,6 @@ i = 0; } - //鑷姩娲惧彂浠诲姟 - // mainService.autoDistribute(); - //鑷姩瀹屾垚浠诲姟 -// mainService.autoCompleteTask(); - //agv鍙栨斁璐у畬鎴� - mainService.autoCompleteAGV(); - } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/com/zy/core/enums/CrnStatusType.java b/src/main/java/com/zy/core/enums/CrnStatusType.java index 87c6e53..95ae9bc 100644 --- a/src/main/java/com/zy/core/enums/CrnStatusType.java +++ b/src/main/java/com/zy/core/enums/CrnStatusType.java @@ -2,37 +2,23 @@ public enum CrnStatusType { -// NONE(-1, "绂荤嚎"), -// IDLE(0, "绌洪棽"), -// FETCH_MOVING(1, "鍙栬揣琛岃蛋"), -// FETCH_WAITING(2, "鍙栬揣绛夊緟"), -// FETCHING(3, "鍙栬揣涓�"), -// PUT_MOVING(4, "鏀捐揣璧拌"), -// PUT_WAITING(5, "鏀捐揣绛夊緟"), -// PUTTING(6, "鏀捐揣涓�"), -// ORIGIN_GO(7, "鍥炲師鐐�"), -// ORIGIN_BACK(8, "鍥炲弽鍘熺偣"), -// MOVING(9, "璧拌涓�"), -// WAITING(10, "浠诲姟瀹屾垚绛夊緟WCS纭"), -// PAUSE(11, "浠诲姟鏆傚仠"), -// SOS(99, "鎶ヨ"), -// ; - - IDLE(0, "绌洪棽锛屾棤浠诲姟"), - NONE_MOVING(1, "鍙栬揣瀹氫綅"), - FETCHING(2, "鍙栬揣绛夊緟"), - MOVING(3, "鍙栬揣涓�"), - PUTTING(4, "鏀捐揣璧拌"), - HOMING(5, "鏀捐揣绛夊緟"), - ANTI_ORIGIN(6, "鏀捐揣涓�"), - PUT_COMPLETE(7, "鍥炲師鐐�"), -// MOVE_THE_SHIPPING_LOCATION(8, "绉诲姩鍒版斁璐т綅缃�"), -// PUTTING(9, "鏀捐揣涓�"), - HANDLING_COMPLETED(10, "鎼繍瀹屾垚绛夊緟WCS纭"), - EMPTY_AVOIDANCE(11, "绌鸿浇閬胯"), + NONE(-1, "绂荤嚎"), + IDLE(0, "绌洪棽"), + FETCH_MOVING(1, "鍙栬揣琛岃蛋"), + FETCH_WAITING(2, "鍙栬揣绛夊緟"), + FETCHING(3, "鍙栬揣涓�"), + PUT_MOVING(4, "鏀捐揣璧拌"), + PUT_WAITING(5, "鏀捐揣绛夊緟"), + PUTTING(6, "鏀捐揣涓�"), + ORIGIN_GO(7, "鍥炲師鐐�"), + ORIGIN_BACK(8, "鍥炲弽鍘熺偣"), + MOVING(9, "璧拌涓�"), + WAITING(10, "浠诲姟瀹屾垚绛夊緟WCS纭"), + PAUSE(11, "浠诲姟鏆傚仠"), SOS(99, "鎶ヨ"), - OTHER(100, "鍏朵粬"), + UNKNOW(100, "鍏朵粬"), ; + public Integer id; public String desc; @@ -50,7 +36,7 @@ return type; } } - return null; + return NONE; } public static CrnStatusType get(CrnStatusType type) { diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java index baa789a..a9b3212 100644 --- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java @@ -1,7 +1,10 @@ package com.zy.core.model.protocol; import com.zy.asrs.entity.BasCrnp; -import com.zy.core.enums.*; +import com.zy.core.enums.CrnForkPosType; +import com.zy.core.enums.CrnLiftPosType; +import com.zy.core.enums.CrnModeType; +import com.zy.core.enums.CrnStatusType; import lombok.Data; /** @@ -9,6 +12,8 @@ */ @Data public class CrnProtocol { + + private Integer crnNo; /** * 1 = 鎵嬪姩妯″紡 @@ -25,14 +30,14 @@ public Short taskFinish; /** - * 鏍¢獙缁撴灉 1琛ㄧず妫�楠屾垚鍔� - */ - public Short valid; - - /** * 1 = 鎬ュ仠 */ public Short eStop; + + /** + * 寮傚父鐮� + */ + public Short alarm; /** * 浠诲姟鍙� @@ -54,12 +59,15 @@ */ public Short status; - public Short alarm = 0; - /** * 鐘舵�佹灇涓� */ public CrnStatusType statusType; + + /** + * 鏁呴殰 + */ + public Boolean fault; /** * 鍫嗗灈鏈哄綋鍓嶅垪鍙� @@ -72,175 +80,45 @@ public Short level; /** - * 鍫嗗灈鏈哄綋鍓嶆帓 - */ - public Short row; - - /** - * 鍫嗗灈鏈哄綋鍓嶅贩閬撳彿 - */ - public Short lane; - - /** - * 鍫嗗灈鏈洪�氳鐘舵�� - */ - public Boolean connStatus; - - /** - * 鐢宠鍏ュ簱淇 - */ - public Boolean correction; - - /** - * 鎵樼洏鍙烽敊 - */ - public Boolean tuError; - - /** - * 鍙栬揣鏃犵 - */ - public Boolean noneError; - - /** - * 鍙岄噸鍏ュ簱 - */ - public Boolean stockError; - - /** - * 浣滀笟鏁版嵁鏃犳晥 - */ - public Boolean jobInvalid; - - /** - * 绌洪棽鐘舵�� - */ - public Boolean idle; - - /** - * 鎺у埗鏌滀娇鑳� - */ - public Boolean control; - - /** - * 鍋滃噯 - */ - public Boolean stopQuasi; - - /** - * 杩愯 - */ - public Boolean running; - - /** - * 鏁呴殰 - */ - public Boolean fault; - - /** - * 璐у弶涓綅 - */ - public Boolean forkHome; - /** - * 鍗曚几浣嶈揣鍙夊乏浣� - */ - public Boolean forkSingleLeft; - /** - * 鍗曚几浣嶈揣鍙夊彸浣� - */ - public Boolean forkSingleRight; - /** - * 鍙屼几浣嶈揣鍙夊乏浣� - */ - public Boolean forkDoubleLeft; - /** - * 鍙屼几浣嶈揣鍙夊彸浣� - */ - public Boolean forkDoubleRight; - /** - * 鍗曚几浣嶉珮浣� - */ - public Boolean singleHigh; - /** - * 鍗曚几浣嶄綆浣� - */ - public Boolean singleLow; - /** - * 鍙屼几浣嶉珮浣� - */ - public Boolean doubleHigh; - /** - * 鍙屼几浣嶄綆浣� - */ - public Boolean doubleLow; - /** - * 绔欏彴楂樹綅 - */ - public Boolean platformHigh; - /** - * 绔欏彴浣庝綅 - */ - public Boolean platformLow; - - /** * 褰撳墠璐у弶浣嶇疆 * 0 = 璐у弶鍘熶綅 * 1 = 璐у弶鍦ㄥ乏渚� * 2 = 璐у弶鍦ㄥ彸渚� */ - public Short forkPos = -1; + public Short forkPos; - public CrnForkPosType forkPosType = CrnForkPosType.NONE; + public CrnForkPosType forkPosType; /** * 褰撳墠杞借揣鍙颁綅缃� * 0 = 涓嬪畾浣� * 1 = 涓婂畾浣� */ - public Short liftPos = -1; + public Short liftPos; - public CrnLiftPosType liftPosType = CrnLiftPosType.ERROR; + public CrnLiftPosType liftPosType; /** * 璧拌鍦ㄥ畾浣� * 0 = 鍦ㄥ畾浣� * 1 = 涓嶅湪瀹氫綅 */ - public Short walkPos = 0; - - /** - * 鎷ㄦ寚浣嶇疆 - * 0 = 涓嶅湪瀹氫綅 - * 1 = 涓婂畾浣� - * 2 = 涓嬪畾浣� - */ - public Short fingerPos; - - public CrnFingerPosType fingerPosType; + public Short walkPos; /** * 杞借揣鍙版湁鐗� */ public Short loaded; - /** - * 鍫嗗灈鏈哄瀭鐩存晠闅滀唬鐮侊紙鏁板�兼樉绀猴級 - */ - private Integer alarm1 = 0; + private Short temp1; - /** - * 鍫嗗灈鏈烘按骞虫晠闅滀唬鐮侊紙鏁板�兼樉绀猴級 - */ - private Integer alarm2 = 0;; + private CrnTemp1 crnTemp1; - /** - * 鍫嗗灈鏈鸿揣鍙夋晠闅滀唬鐮侊紙鏁板�兼樉绀猴級 - */ - private Integer alarm3 = 0;; + private Short temp2; - /** - * 鍫嗗灈鏈虹姸鎬佹晠闅滀唬鐮侊紙鏁板�兼樉绀猴級 - */ - private Integer alarm4 = 0;; + private Short temp3; + + private Short temp4; /** * 寮傚父1 @@ -271,42 +149,53 @@ private CrnError4 crnError4; /** + * 寮傚父5 + */ + private boolean[] error5; + + private CrnError5 crnError5; + + /** + * 寮傚父6 + */ + private boolean[] error6; + + private CrnError6 crnError6; + + /** * X琛岃蛋绾块�熷害m/min */ - private Float xSpeed = 0F; + private Float xSpeed; /** * Y琛岃蛋绾块�熷害m/min */ - private Float ySpeed = 0F; + private Float ySpeed; /** * Z琛岃蛋绾块�熷害m/min */ - private Float zSpeed = 0F; + private Float zSpeed; /** * 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯m */ - public Float xDistance = 0F; + public Float xDistance; /** * 鍫嗗灈鏈虹疮璁″崌闄嶈窛绂籯m */ - public Float yDistance = 0F; + public Float yDistance; /** * 鍫嗗灈鏈虹疮璁¤蛋琛屾椂闀縣 */ - public Float xDuration = 0F; + public Float xDuration; - /**w + /** * 鍫嗗灈鏈虹疮璁″崌闄嶆椂闀縣 */ - public Float yDuration = 0F; - - //鎸囦护ID - private Integer commandId; + public Float yDuration; public void setMode(Short mode) { this.mode = mode; @@ -348,81 +237,12 @@ this.status = CrnStatusType.get(type).id.shortValue(); } - public void setFingerPos(Short type) { - this.fingerPos = type; - this.fingerPosType = CrnFingerPosType.get(type); + public Short getTemp1() { + return temp1; } - public void setError1(boolean[] error1){ - this.error1 = error1; - this.crnError1 = new CrnError1(); - this.crnError1.remoteStop = error1[0]; - this.crnError1.mainStop = error1[1]; - this.crnError1.controlStop = error1[2]; - this.crnError1.xCoverErr = error1[3]; - this.crnError1.yCoverErr = error1[4]; - this.crnError1.zCoverErr = error1[5]; - this.crnError1.laserErr = error1[6]; - this.crnError1.barcodeErr = error1[7]; - this.crnError1.xFrontLimitErr = error1[8]; - this.crnError1.xBackLimitErr = error1[9]; - this.crnError1.yUpLimitErr = error1[10]; - this.crnError1.yDownLimitErr = error1[11]; - this.crnError1.zLeftLimitErr = error1[12]; - this.crnError1.zRightLimitErr = error1[13]; - this.crnError1.leftOverWidthErr1 = error1[14]; - this.crnError1.leftOverWidthErr2 = error1[15]; - } - - public void setError2(boolean[] error2){ - this.error2 = error2; - this.crnError2 = new CrnError2(); - this.crnError2.leftOverLenErr1 = error2[0]; - this.crnError2.leftOverLenErr2 = error2[1]; - this.crnError2.leftOverHighErr = error2[2]; - this.crnError2.rightOverWidthErr1 = error2[3]; - this.crnError2.rightOverWidthErr2 = error2[4]; - this.crnError2.rightOverLenErr1 = error2[5]; - this.crnError2.rightOverLenErr2 = error2[6]; - this.crnError2.rightOverHighErr = error2[7]; - this.crnError2.leftLooseRopeErr = error2[8]; - this.crnError2.rightLooseRopeErr = error2[9]; - this.crnError2.frontDoorErr = error2[10]; - this.crnError2.backDoorErr = error2[11]; - this.crnError2.startupErr = error2[12]; - this.crnError2.xFrontLocaUpErr = error2[13]; - this.crnError2.xFrontLocaDownErr = error2[14]; - this.crnError2.xBackLocaUpErr = error2[15]; - } - - public void setError3(boolean[] error3) { - this.error3 = error3; - this.crnError3 = new CrnError3(); - this.crnError3.xBackLocaDownErr = error3[0]; - this.crnError3.yUpLocaUpErr = error3[1]; - this.crnError3.yUpLocaDownErr = error3[2]; - this.crnError3.yDownLocaUpErr = error3[3]; - this.crnError3.yDownLocaDownErr = error3[4]; - this.crnError3.zLeftLocaUpErr = error3[5]; - this.crnError3.zLeftLocaDownErr = error3[6]; - this.crnError3.zRightLocaUpErr = error3[7]; - this.crnError3.zRightLocaDownErr = error3[8]; - this.crnError3.leftTakeNoneErr = error3[9]; - this.crnError3.rightTakeNoneErr = error3[10]; - this.crnError3.leftTakeThenLoadErr = error3[11]; - this.crnError3.rightTakeThenLoadErr = error3[12]; - this.crnError3.leftPutAndLoadErr = error3[13]; - this.crnError3.rightPutAndLoadErr = error3[14]; - this.crnError3.leftPutThenNoneErr = error3[15]; - } - - public void setError4(boolean[] error4) { - this.error4 = error4; - this.crnError4 = new CrnError4(); - this.crnError4.rightPutThenNoneErr = error4[0]; - this.crnError4.xLooseBrakeTimeout = error4[1]; - this.crnError4.yLooseBrakeTimeout = error4[2]; - this.crnError4.zLooseBrakeTimeout = error4[3]; + public void setTemp1(Short temp1) { + this.temp1 = temp1; } /** @@ -434,8 +254,39 @@ public BasCrnp toSqlModel(BasCrnp basCrnp){ - basCrnp.setCrnErr(alarm.longValue()); + if (alarm!=null) { + basCrnp.setCrnErr(alarm.longValue()); + } basCrnp.setWrkNo(taskNo.intValue()); return basCrnp; } + + public void setxSpeed(Short xSpeed) { + this.xSpeed = Float.valueOf(xSpeed); + } + + public void setySpeed(Short ySpeed) { + this.ySpeed = Float.valueOf(ySpeed); + } + + public void setzSpeed(Short zSpeed) { + this.zSpeed = Float.valueOf(zSpeed); + } + + public void setxDistance(Short xDistance) { + this.xDistance = Float.valueOf(xDistance); + } + + public void setyDistance(Short yDistance) { + this.yDistance = Float.valueOf(yDistance); + } + + public void setxDuration(Short xDuration) { + this.xDuration = Float.valueOf(xDuration); + } + + public void setyDuration(Short yDuration) { + this.yDuration = Float.valueOf(yDuration); + } + } diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index c3012bf..10dce88 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -197,8 +197,6 @@ basDevp.setLocType3((short) 0); // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿 basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2); basDevp.setInQty(inQty !=null ?(int)inQty : 0); - basDevp.setAgvStartPick(agvStartPick.intValue()); - basDevp.setAgvStartPlace(agvStartPlace.intValue()); return basDevp; } diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index ab05097..40592be 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -21,7 +21,6 @@ import com.zy.core.model.CrnSlave; import com.zy.core.model.Task; import com.zy.core.model.command.CrnCommand; -import com.zy.core.model.cpmmandParam.CrnCommandParam; import com.zy.core.model.protocol.CrnProtocol; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -41,7 +40,6 @@ private CrnSlave slave; private CrnProtocol crnProtocol; private boolean resetFlag = false; - private boolean resetFlagTwo = false; public Long sign = System.currentTimeMillis(); @@ -51,7 +49,6 @@ * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪 */ private boolean backHpFlag = false; - private boolean backHpFlagTwo = false; public SiemensCrnThread(CrnSlave slave) { this.slave = slave; @@ -61,7 +58,6 @@ @SuppressWarnings("InfiniteLoopStatement") public void run() { this.connect(); - sign = System.currentTimeMillis(); while (isRunning) { try { int step = 1; @@ -96,32 +92,6 @@ command.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� write(command); break; - // 鍐欏叆鏁版嵁 - case 5: - write5((CrnCommand) task.getData()); - break; - // 澶嶄綅 - case 6: - CrnCommand command2 = (CrnCommand) task.getData(); - if (null == command2) { - command2 = new CrnCommand(); - } - command2.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - command2.setTaskNo((short) 0); // 宸ヤ綔鍙� - command2.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣� - command2.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 - command2.setSourcePosX((short)0); // 婧愬簱浣嶆帓 - command2.setSourcePosY((short)0); // 婧愬簱浣嶅垪 - command2.setSourcePosZ((short)0); // 婧愬簱浣嶅眰 - command2.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺� - command2.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� - command2.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� - write5(command2); - break; - // 鍙屽伐浣嶅悓鏃朵綔涓� - case 9: - write9((CrnCommandParam) task.getData()); - break; default: break; } @@ -144,7 +114,6 @@ crnProtocol.setMode((short) -1); // crnProtocol.setTaskNo((short)0); crnProtocol.setStatus((short)-1); - crnProtocol.setStatusTwo((short)-1); crnProtocol.setBay((short)0); crnProtocol.setLevel((short)0); crnProtocol.setForkPos((short) -1); @@ -159,16 +128,6 @@ crnProtocol.setyDistance((short) 0); crnProtocol.setxDuration((short) 0); crnProtocol.setyDuration((short) 0); - - // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� - BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class); - BasCrnp basCrnp = basCrnpService.selectById(slave.getId()); - basCrnp.setCrnSts((int)crnProtocol.getMode()); - basCrnp.setCrnStatusOne(-1); - basCrnp.setCrnStatusTwo(-1); - if (!basCrnpService.updateById(basCrnp)){ - log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); - } } @Override @@ -196,74 +155,40 @@ */ private void readStatus(){ try { - OperateResultExOne<byte[]> result = new OperateResultExOne<byte[]>(); - if (slave.getId()>2 && slave.getId()<6){ - result = siemensNet.Read("DB101.0", (short) 66); - } else { - result = siemensNet.Read("DB101.0", (short) 56); - } + OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56); if (result.IsSuccess) { if (null == crnProtocol) { crnProtocol = new CrnProtocol(); crnProtocol.setCrnNo(slave.getId()); } - crnProtocol.setCrnNo(slave.getId()); crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0)); crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2)); crnProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 4)); crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6)); crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8)); crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10)); - - if (slave.getId()<3 || slave.getId()>5){ - crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12)); - crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14)); - crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16)); - crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18)); - crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20)); - crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22)); - crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24)); - crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26)); - crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28)); - crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32)); - crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36)); - crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40)); - crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44)); - crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48)); - crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52)); - } else { - crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 12)); - - crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 14)); - crnProtocol.setStatusTwo(siemensNet.getByteTransform().TransInt16(result.Content, 16)); - crnProtocol.setBayTwo(siemensNet.getByteTransform().TransInt16(result.Content, 18)); - crnProtocol.setLevelTwo(siemensNet.getByteTransform().TransInt16(result.Content, 20)); - crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 22)); - crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 24)); - - crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 26)); - crnProtocol.setWalkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 28)); - - crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 30)); - crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 32)); - - crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 34)); - crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 38)); - crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 42)); -// crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 42)); - - crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 50)); - crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 54)); - crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 58)); - crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 62)); - } + crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12)); + crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14)); + crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16)); + crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18)); + crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20)); + crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22)); + crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24)); + crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26)); + crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28)); + crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32)); + crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36)); + crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40)); + crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44)); + crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48)); + crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52)); OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); // 澶嶄綅淇″彿 - if (!Cools.isEmpty(crnProtocol.getStatusType()) && (crnProtocol.getStatusType().equals(CrnStatusType.WAITING) || crnProtocol.getStatusType().equals(CrnStatusType.SEPARATE_WAITING))) { - log.error("-------------------------宸ヤ綅1-------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙�:{}]==>> 鐘舵�佷负{}锛岀瓑寰呯‘璁わ紒锛�", - slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿",crnProtocol.getStatusType()); + if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) { + log.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�", + slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿"); if (resetFlag) { if(crnProtocol.getTaskNo()==9999){ backHpFlag = false; @@ -272,22 +197,6 @@ crnCommand.setAckFinish((short)1); if (write(crnCommand)) { resetFlag = false; - } - } - } - - // 澶嶄綅淇″彿 - if (!Cools.isEmpty(crnProtocol.getStatusTypeTwo()) && (crnProtocol.getStatusTypeTwo().equals(CrnStatusType.WAITING) || crnProtocol.getStatusTypeTwo().equals(CrnStatusType.SEPARATE_WAITING))) { - log.error("-------------------------宸ヤ綅2-------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙�:{}]==>> 鐘舵�佷负{}锛岀瓑寰呯‘璁わ紒锛�", - slave.getId(),crnProtocol.getTaskNoTwo(), crnProtocol.getLoadedTwo()==1 ? "鏈夌墿" : "鏃犵墿",crnProtocol.getStatusTypeTwo()); - if (resetFlagTwo) { - if(crnProtocol.getTaskNoTwo()==9999){ - backHpFlagTwo = false; - } - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setAckFinish((short)1); - if (write5(crnCommand)) { - resetFlagTwo = false; } } } @@ -348,398 +257,12 @@ // array[9] = command.getSourceStaNo(); // array[10] = command.getDestinationStaNo(); array[9] = command.getCommand(); - OperateResult result18 = siemensNet.Write("DB100.18", (short)0); OperateResult result = siemensNet.Write("DB100.0", array); - log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array); - - - - //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� - Thread.sleep(200); - int writeCount = 1; - do { - try{ - if(!result.IsSuccess){ - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount); - result = siemensNet.Write("DB100.0", array); - Thread.sleep(100); - writeCount++; - continue; - } - OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24); - if (resultRead.IsSuccess) { - CrnCommand one = new CrnCommand(); - one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); - one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); - one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); - one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8)); - one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10)); - one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12)); - one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14)); - one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16)); - if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode()) - || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY()) - || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX()) - || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ()) - ){ - try{ - log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(one)); - }catch (Exception e){ - try{ - log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(resultRead)); - }catch (Exception e1){ - log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command)); - } - } - try{ - Thread.sleep(100); - }catch (Exception e){ - - } - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount); - result = siemensNet.Write("DB100.0", array); - writeCount++; - continue; - } else { - log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(one)); - break; - } - } - }catch (Exception e){ - log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); - } - writeCount++; - } while (writeCount<6); if (command.getAckFinish() == 0) { short commandFinish = 1; Thread.sleep(100L); result = siemensNet.Write("DB100.18", commandFinish); - int signFinish = 1; - while (signFinish<5){ - OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2); - short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0); - if (transInt16 != commandFinish){ - log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "commandFinish:"+commandFinish); - log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array)); - result = siemensNet.Write("DB100.18", commandFinish); - signFinish++; - }else { - log.info("涓嬪彂DB100.18" + "commandFinish:"+commandFinish); - log.info("涓嬪彂DB100.18" + "array:"+ JSON.toJSONString(array)); - break; - } - } - } - - try { - // 鏃ュ織璁板綍 - BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class); - BasCrnOpt basCrnOpt = new BasCrnOpt( - command.getTaskNo().intValue(), // 浠诲姟鍙� - command.getCrnNo(), // 鍫嗗灈鏈篬闈炵┖] - new Date(), // 涓嬪彂鏃堕棿 - command.getTaskModeType().toString(), // 妯″紡 - command.getSourcePosX().intValue(), // 婧愭帓 - command.getSourcePosY().intValue(), // 婧愬垪 - command.getSourcePosZ().intValue(), // 婧愬眰 - null, // 婧愮珯 - command.getDestinationPosX().intValue(), // 鐩爣鎺� - command.getDestinationPosY().intValue(), // 鐩爣鍒� - command.getDestinationPosZ().intValue(), // 鐩爣灞� - null, // 鐩爣绔� - null, // 鍝嶅簲缁撴灉 - null, // 淇敼鏃堕棿 - null // 淇敼浜哄憳 - ); - bean.insert(basCrnOpt); - } catch (Exception ignore) {} - - if (result != null && result.IsSuccess) { - Thread.sleep(200); - this.readStatus(); - log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSONString(command)); - OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(command))); - return true; - } else { - OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - return false; - } - } - - /** - * 鍐欏叆鏁版嵁 宸ヤ綅2 - */ - private boolean write5(CrnCommand command) throws InterruptedException { - if (null == command) { - log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); - return false; - } -// convertRow(command); - command.setCrnNo(slave.getId()); - short[] array = new short[10]; - array[0] = command.getAckFinish(); - array[1] = command.getTaskNo(); - array[2] = command.getTaskMode(); - array[3] = command.getSourcePosX(); - array[4] = command.getSourcePosY(); - array[5] = command.getSourcePosZ(); - array[6] = command.getDestinationPosX(); - array[7] = command.getDestinationPosY(); - array[8] = command.getDestinationPosZ(); -// array[9] = command.getSourceStaNo(); -// array[10] = command.getDestinationStaNo(); - array[9] = command.getCommand(); - OperateResult result18 = siemensNet.Write("DB100.38", (short)0); - OperateResult result = siemensNet.Write("DB100.20", array); - log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array); - - //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� - Thread.sleep(200); - int writeCount = 1; - do { - try{ - if(!result.IsSuccess){ - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount); - result = siemensNet.Write("DB100.20", array); - Thread.sleep(100); - writeCount++; - continue; - } - OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.20", (short) 24); - if (resultRead.IsSuccess) { - CrnCommand one = new CrnCommand(); - one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); - one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); - one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); - one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8)); - one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10)); - one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12)); - one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14)); - one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16)); - if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode()) - || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY()) - || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX()) - || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ()) - ){ - try{ - log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(one)); - }catch (Exception e){ - try{ - log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(resultRead)); - }catch (Exception e1){ - log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command)); - } - } - try{ - Thread.sleep(100); - }catch (Exception e){ - - } - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount); - result = siemensNet.Write("DB100.20", array); - writeCount++; - continue; - } else { - log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(one)); - break; - } - } - }catch (Exception e){ - log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); - } - writeCount++; - } while (writeCount<6); - - if (command.getAckFinish() == 0) { - short commandFinish = 1; - Thread.sleep(100L); - result = siemensNet.Write("DB100.38", commandFinish); - int signFinish = 1; - while (signFinish<5){ - OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.38", (short) 2); - short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0); - if (transInt16 != commandFinish){ - log.info("涓嬪彂DB100.38 鍥炶澶辫触" + "commandFinish:"+commandFinish); - log.info("涓嬪彂DB100.38 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array)); - result = siemensNet.Write("DB100.38", commandFinish); - signFinish++; - }else { - log.info("涓嬪彂DB100.38" + "commandFinish:"+commandFinish); - log.info("涓嬪彂DB100.38" + "array:"+ JSON.toJSONString(array)); - break; - } - } - } - - try { - // 鏃ュ織璁板綍 - BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class); - BasCrnOpt basCrnOpt = new BasCrnOpt( - command.getTaskNo().intValue(), // 浠诲姟鍙� - command.getCrnNo(), // 鍫嗗灈鏈篬闈炵┖] - new Date(), // 涓嬪彂鏃堕棿 - command.getTaskModeType().toString(), // 妯″紡 - command.getSourcePosX().intValue(), // 婧愭帓 - command.getSourcePosY().intValue(), // 婧愬垪 - command.getSourcePosZ().intValue(), // 婧愬眰 - null, // 婧愮珯 - command.getDestinationPosX().intValue(), // 鐩爣鎺� - command.getDestinationPosY().intValue(), // 鐩爣鍒� - command.getDestinationPosZ().intValue(), // 鐩爣灞� - null, // 鐩爣绔� - null, // 鍝嶅簲缁撴灉 - null, // 淇敼鏃堕棿 - null // 淇敼浜哄憳 - ); - bean.insert(basCrnOpt); - } catch (Exception ignore) {} - - if (result != null && result.IsSuccess) { - Thread.sleep(200); - this.readStatus(); - log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSONString(command)); - OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(command))); - return true; - } else { - OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - return false; - } - } - - /** - * 鍐欏叆鏁版嵁 鍙屽伐浣� - */ - private boolean write9(CrnCommandParam command) throws InterruptedException { - if (null == command) { - log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); - return false; - } - command.setCrnNo(slave.getId()); - short[] array = new short[22]; - array[0] = command.getAckFinish(); - array[1] = command.getTaskNo(); - array[2] = command.getTaskMode(); - array[3] = command.getSourcePosX(); - array[4] = command.getSourcePosY(); - array[5] = command.getSourcePosZ(); - array[6] = command.getDestinationPosX(); - array[7] = command.getDestinationPosY(); - array[8] = command.getDestinationPosZ(); - array[9] = command.getCommand(); - array[10] = command.getAckFinish2(); - array[11] = command.getTaskNo2(); - array[12] = command.getTaskMode2(); - array[13] = command.getSourcePosX2(); - array[14] = command.getSourcePosY2(); - array[15] = command.getSourcePosZ2(); - array[16] = command.getDestinationPosX2(); - array[17] = command.getDestinationPosY2(); - array[18] = command.getDestinationPosZ2(); - array[19] = command.getCommand(); - array[20] = (short)1; - array[21] = (short)1; - OperateResult result18 = siemensNet.Write("DB100.18", (short)0); - OperateResult result38 = siemensNet.Write("DB100.38", (short)0); - OperateResult result = siemensNet.Write("DB100.0", array); -// OperateResult result = siemensNet.Write("DB100.20", array); - log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array); - - //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� - Thread.sleep(200); - int writeCount = 1; - do { - try{ - if(!result.IsSuccess){ - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); - result = siemensNet.Write("DB100.0", array); - Thread.sleep(100); - writeCount++; - continue; - } - OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 40); - if (resultRead.IsSuccess) { - CrnCommandParam one = new CrnCommandParam(); - one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); - one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); - one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); - one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8)); - one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10)); - one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12)); - one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14)); - one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16)); - one.setTaskNo2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 22)); - one.setTaskMode2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24)); - one.setSourcePosX2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 26)); - one.setSourcePosY2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 28)); - one.setSourcePosZ2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30)); - one.setDestinationPosX2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 32)); - one.setDestinationPosY2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 34)); - one.setDestinationPosZ2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 36)); - if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode()) - || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY()) - || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX()) - || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ()) - || - !command.getTaskNo2().equals(one.getTaskNo2()) || !command.getTaskMode2().equals(one.getTaskMode2()) - || !command.getSourcePosX2().equals(one.getSourcePosX2()) || !command.getSourcePosY2().equals(one.getSourcePosY2()) - || !command.getSourcePosZ2().equals(one.getSourcePosZ2()) || !command.getDestinationPosX2().equals(one.getDestinationPosX2()) - || !command.getDestinationPosY2().equals(one.getDestinationPosY2()) || !command.getDestinationPosZ2().equals(one.getDestinationPosZ2()) - ){ - try{ - log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); - }catch (Exception e){ - try{ - log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead)); - }catch (Exception e1){ - log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); - } - } - try{ - Thread.sleep(100); - }catch (Exception e){ - - } - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); - result = siemensNet.Write("DB100.0", array); - writeCount++; - continue; - } else { - log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); - break; - } - } - }catch (Exception e){ - log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); - } - writeCount++; - } while (writeCount<6); - - if (command.getAckFinish() == 0) { - short commandFinish = 1; - Thread.sleep(100L); - result18 = siemensNet.Write("DB100.18", commandFinish); - result38 = siemensNet.Write("DB100.38", commandFinish); - int signFinish = 1; - while (signFinish<5){ - OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2); - OperateResultExOne<byte[]> result10038 = siemensNet.Read("DB100.38", (short) 2); - short transInt1618 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0); - short transInt1638 = siemensNet.getByteTransform().TransInt16(result10038.Content, 0); - if (transInt1618 != commandFinish || transInt1638 != commandFinish){ - log.info("涓嬪彂DB100.18/DB100.38 鍥炶澶辫触" + "commandFinish:"+commandFinish); - log.info("涓嬪彂DB100.18/DB100.38 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array)); - result18 = siemensNet.Write("DB100.18", commandFinish); - result38 = siemensNet.Write("DB100.38", commandFinish); - signFinish++; - }else { - log.info("涓嬪彂DB100.18/DB100.38" + "commandFinish:"+commandFinish); - log.info("涓嬪彂DB100.18/DB100.38" + "array:"+ JSON.toJSONString(array)); - break; - } - } } try { diff --git a/src/main/resources/mapper/BasDevpMapper.xml b/src/main/resources/mapper/BasDevpMapper.xml index b9898f2..8d739c9 100644 --- a/src/main/resources/mapper/BasDevpMapper.xml +++ b/src/main/resources/mapper/BasDevpMapper.xml @@ -41,10 +41,6 @@ <result column="max_wt" property="maxWt" /> <result column="gross_wt" property="grossWt" /> <result column="cart_pos" property="cartPos" /> - <result column="agv_start_pick" property="agvStartPick" /> - <result column="agv_target_pick" property="agvTargetPick" /> - <result column="agv_start_place" property="agvStartPlace" /> - <result column="agv_target_place" property="agvTargetPlace" /> <result column="sta_err" property="staErr" /> </resultMap> diff --git a/src/main/resources/mapper/TaskWrkLogMapper.xml b/src/main/resources/mapper/TaskWrkLogMapper.xml index e07c447..747404d 100644 --- a/src/main/resources/mapper/TaskWrkLogMapper.xml +++ b/src/main/resources/mapper/TaskWrkLogMapper.xml @@ -23,7 +23,6 @@ <result column="cancel_time" property="cancelTime" /> <result column="wrk_sts" property="wrkSts" /> <result column="crn_no" property="crnNo" /> - <result column="command_step" property="commandStep" /> <result column="transfer_mark" property="transferMark" /> </resultMap> diff --git a/src/main/resources/mapper/TaskWrkMapper.xml b/src/main/resources/mapper/TaskWrkMapper.xml index 8c6800e..81fae90 100644 --- a/src/main/resources/mapper/TaskWrkMapper.xml +++ b/src/main/resources/mapper/TaskWrkMapper.xml @@ -12,6 +12,9 @@ <result column="io_pri" property="ioPri" /> <result column="start_point" property="startPoint" /> <result column="target_point" property="targetPoint" /> + <result column="origin_start_point" property="originStartPoint" /> + <result column="origin_target_point" property="originTargetPoint" /> + <result column="sc_weight" property="scWeight" /> <result column="modi_user" property="modiUser" /> <result column="modi_time" property="modiTime" /> <result column="memo" property="memo" /> @@ -22,7 +25,6 @@ <result column="cancel_time" property="cancelTime" /> <result column="wrk_sts" property="wrkSts" /> <result column="crn_no" property="crnNo" /> - <result column="command_step" property="commandStep" /> <result column="transfer_mark" property="transferMark" /> </resultMap> -- Gitblit v1.9.1