From af1b0101f2f19fb562ba81eb2bbe3a7976e3d716 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 24 十一月 2023 15:50:50 +0800 Subject: [PATCH] #堆垛机出入库 --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 2 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 200 ++++++++++++++++++++------------------- src/main/resources/application-prod.yml | 54 +++++----- 3 files changed, 132 insertions(+), 124 deletions(-) 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 25d9bca..0cf7216 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -84,56 +84,60 @@ for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) { - // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { - // 鏌ヨ宸ヤ綔妗� - TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staProtocol.getSiteId().toString()); - if (taskWrk == null) { + List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo())); + for (StaDesc staDesc : staDescs){ + // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + if (staProtocol == null) { continue; + } else { + staProtocol = staProtocol.clone(); } - // 鍒ゆ柇宸ヤ綔妗f潯浠� - if (taskWrk.getWrkSts() == 12 && taskWrk.getIoType() == 2) { - // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗� - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, taskWrk.getCrnNo()); - CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) { - // 绉诲姩涓� + if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { + // 鏌ヨ宸ヤ綔妗� + TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString()); + if (taskWrk == null) { continue; } - // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� - if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue()) - && crnProtocol.getTaskFinish() == 0 - && crnProtocol.forkPosType == CrnForkPosType.HOME) { - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - - // 涓嬪彂绔欑偣淇℃伅 - staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); - String targetPoint = taskWrk.getTargetPoint(); - int i = Integer.parseInt(targetPoint); - staProtocol.setStaNo((short)i); - if (!CommandUtils.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { + // 鍒ゆ柇宸ヤ綔妗f潯浠� + if (taskWrk.getWrkSts() == 12 && taskWrk.getIoType() == 2) { + // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, taskWrk.getCrnNo()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) { + // 绉诲姩涓� continue; } + // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� + if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue()) + && crnProtocol.getTaskFinish() == 0 + && crnProtocol.forkPosType == CrnForkPosType.HOME) { + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触 - taskWrk.setWrkSts(14); - if (taskWrkMapper.updateById(taskWrk) != 0) { - // 澶嶄綅鍫嗗灈鏈� - crnThread.setResetFlag(true); - } else { - log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo()); + // 涓嬪彂绔欑偣淇℃伅 + staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); + String targetPoint = taskWrk.getTargetPoint(); + int i = Integer.parseInt(targetPoint); + staProtocol.setStaNo((short)i); + if (!CommandUtils.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { + continue; + } + + // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触 + taskWrk.setWrkSts(14); + if (taskWrkMapper.updateById(taskWrk) != 0) { + // 澶嶄綅鍫嗗灈鏈� + crnThread.setResetFlag(true); + } else { + log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo()); + } + } - } } } + } } } @@ -188,68 +192,72 @@ */ public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol){ for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) { - boolean flag = false; - // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); - if (staDetl == null) { - log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); - continue; - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() - && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) { - flag = true; - } - if (!flag) { - continue; - } - // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。 - TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo().toString()); - if(null == taskWrk) { - continue; - } + List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo())); + for (StaDesc staDesc : staDescs) { + boolean flag = false; + // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + // 鏌ヨ绔欑偣璇︾粏淇℃伅 + BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); + if (staDetl == null) { + log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); + continue; + } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() + && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) { + flag = true; + } + if (!flag) { + continue; + } + // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。 + TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString()); + if(null == taskWrk) { + continue; + } - // 鍫嗗灈鏈烘帶鍒惰繃婊� - if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { - continue; - } + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + continue; + } - // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� - if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) { - continue; - } + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) { + continue; + } - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosY(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setSourcePosZ(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setDestinationPosX(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosY(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� - crnCommand.setDestinationPosZ(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� - crnCommand.setCommand((short)1); - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) { - log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); - } else { - // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� - Date now = new Date(); - taskWrk.setWrkSts(3); - taskWrk.setModiTime(now); - if (taskWrkMapper.updateById(taskWrk) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setSourcePosX(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosY(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setSourcePosZ(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setDestinationPosX(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosY(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� + crnCommand.setDestinationPosZ(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� + crnCommand.setCommand((short)1); + if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� + Date now = new Date(); + taskWrk.setWrkSts(3); + taskWrk.setModiTime(now); + if (taskWrkMapper.updateById(taskWrk) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); + } } } + return; } } diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 4c4b1c8..f3d986c 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -413,7 +413,7 @@ // }else { array[4] = command.getSourcePosX(); // } - array[5] = command.getDestinationPosY(); + array[5] = command.getSourcePosY(); array[6] = command.getDestinationPosZ(); // if (rowOne.contains(command.getDestinationPosX())){ diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 3dd2b98..e255ab6 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -27,13 +27,13 @@ row: 3 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crnInStn[1]: #鍫嗗灈鏈哄叆搴撶珯鐐�2 staNo: 205 row: 4 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crn[1]: #鍫嗗灈鏈�2 id: 2 ip: 172.17.91.7 @@ -59,13 +59,13 @@ row: 3 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crnInStn[1]: #鍫嗗灈鏈哄叆搴撶珯鐐�2 staNo: 205 row: 4 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crn[2]: #鍫嗗灈鏈�3 id: 3 ip: 172.17.91.12 @@ -87,17 +87,17 @@ lev: 1 devpPlcId: ${wcs-slave.devp[0].id} crnOutStn[1]: #鍫嗗灈鏈哄嚭搴撶珯鐐� - staNo: 200 + staNo: 206 row: 3 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crnInStn[1]: #鍫嗗灈鏈哄叆搴撶珯鐐�2 - staNo: 205 + staNo: 211 row: 4 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crn[3]: #鍫嗗灈鏈�4 id: 4 ip: 172.17.91.17 @@ -119,17 +119,17 @@ lev: 1 devpPlcId: ${wcs-slave.devp[0].id} crnOutStn[1]: #鍫嗗灈鏈哄嚭搴撶珯鐐� - staNo: 200 - row: 3 - bay: 41 - lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + staNo: 218 + row: 12 + bay: 22 + lev: 2 + devpPlcId: ${wcs-slave.devp[1].id} crnInStn[1]: #鍫嗗灈鏈哄叆搴撶珯鐐�2 - staNo: 205 - row: 4 - bay: 41 - lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + staNo: 223 + row: 13 + bay: 22 + lev: 2 + devpPlcId: ${wcs-slave.devp[1].id} crn[4]: #鍫嗗灈鏈�5 id: 5 ip: 172.17.91.22 @@ -151,17 +151,17 @@ lev: 1 devpPlcId: ${wcs-slave.devp[0].id} crnOutStn[1]: #鍫嗗灈鏈哄嚭搴撶珯鐐� - staNo: 200 + staNo: 224 row: 3 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crnInStn[1]: #鍫嗗灈鏈哄叆搴撶珯鐐�2 - staNo: 205 + staNo: 229 row: 4 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crn[5]: #鍫嗗灈鏈�6 id: 6 ip: 172.17.91.27 @@ -183,17 +183,17 @@ lev: 1 devpPlcId: ${wcs-slave.devp[0].id} crnOutStn[1]: #鍫嗗灈鏈哄嚭搴撶珯鐐� - staNo: 200 + staNo: 230 row: 3 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} crnInStn[1]: #鍫嗗灈鏈哄叆搴撶珯鐐�2 - staNo: 205 + staNo: 235 row: 4 bay: 41 lev: 1 - devpPlcId: ${wcs-slave.devp[0].id} + devpPlcId: ${wcs-slave.devp[1].id} devp[0]: #杈撻�佺嚎 id: 1 ip: 172.17.91.36 @@ -258,7 +258,7 @@ slot: 0 devp[2]: #杈撻�佺嚎 id: 3 - ip: 10.10.10.30 + ip: 172.17.8.201 rack: 0 slot: 0 port: 102 -- Gitblit v1.9.1