From dd7c162741e0bd7d559432bd385eaf1fa85892c1 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期六, 12 十月 2024 09:34:04 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/enums/DevpType/DevpWorkType.java | 40 + src/main/java/com/zy/asrs/controller/SiteController.java | 28 src/main/java/com/zy/core/enums/DevpType/DevpLocType.java | 40 + src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java | 30 src/main/java/com/zy/core/enums/DevpType/DevpTrayType.java | 39 + src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1382 ++++++++++++++++------------------- src/main/webapp/views/pipeline.html | 2 src/main/java/com/zy/common/model/SearchLocParam.java | 2 src/main/java/com/zy/core/enums/DevpType/DevpRequestType.java | 39 + src/main/java/com/zy/core/enums/DevpType/DevpStateType.java | 40 + src/main/java/com/zy/core/ServerBootstrap.java | 40 src/main/java/com/zy/core/enums/DevpType/DevpModeType.java | 38 + src/main/java/com/zy/core/model/protocol/StaProtocol.java | 87 + src/main/java/com/zy/asrs/controller/ConsoleController.java | 8 src/main/java/com/zy/core/MainProcess.java | 109 -- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 299 ++----- src/main/resources/application.yml | 4 17 files changed, 1,112 insertions(+), 1,115 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java index 208b218..cbf90f9 100644 --- a/src/main/java/com/zy/asrs/controller/ConsoleController.java +++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java @@ -29,6 +29,8 @@ import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.CrnModeType; +import com.zy.core.enums.DevpType.DevpStateType; +import com.zy.core.enums.DevpType.DevpWorkType; import com.zy.core.enums.SlaveType; import com.zy.core.model.CrnSlave; import com.zy.core.model.DevpSlave; @@ -119,7 +121,7 @@ } vo.setWorkNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙� vo.setSiteStatus(SiteStatusType.process(staProtocol)); // 鐘舵�� - vo.setNearbySta(staProtocol.getNearbySta()); +// vo.setNearbySta(staProtocol.getNearbySta()); vos.add(vo); } return R.ok().add(vos); @@ -238,8 +240,8 @@ } } - vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 鑷姩 - vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 鏈夌墿 + vo.setAutoing(staProtocol.stateType == DevpStateType.AUTO?"Y":"N"); // 鑷姩 + vo.setLoading(staProtocol.workType == DevpWorkType.BUSY?"Y":"N"); // 鏈夌墿 vo.setCanining(basDevp.getCanining()); // 鑳藉叆 vo.setCanouting(basDevp.getCanouting()); // 鑳藉嚭 diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java index acdda6d..70974ca 100644 --- a/src/main/java/com/zy/asrs/controller/SiteController.java +++ b/src/main/java/com/zy/asrs/controller/SiteController.java @@ -13,6 +13,10 @@ import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.DevpType.DevpRequestType; +import com.zy.core.enums.DevpType.DevpStateType; +import com.zy.core.enums.DevpType.DevpTrayType; +import com.zy.core.enums.DevpType.DevpWorkType; import com.zy.core.enums.SlaveType; import com.zy.core.model.DevpSlave; import com.zy.core.model.Task; @@ -77,12 +81,12 @@ list.add(vo); StaProtocol staProtocol = station.get(devp.getDevNo()); if (null == staProtocol) { continue; } - vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 鑷姩 - vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 鏈夌墿 - vo.setInEnable(staProtocol.isInEnable()?"Y":"N"); // 鍙叆 - vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 鍙嚭 + vo.setAutoing(staProtocol.stateType == DevpStateType.AUTO?"Y":"N"); // 鑷姩 + vo.setLoading(staProtocol.workType == DevpWorkType.BUSY?"Y":"N"); // 鏈夌墿 + vo.setInEnable(staProtocol.requestType == DevpRequestType.IN?"Y":"N"); // 鍙叆 + vo.setOutEnable(staProtocol.requestType == DevpRequestType.OUT?"Y":"N"); // 鍙嚭 vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 鍏ュ簱鏍囪 - vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 绌烘澘淇″彿 + vo.setEmptyMk(staProtocol.trayType == DevpTrayType.EMPTY?"Y":"N"); // 绌烘澘淇″彿 vo.setStaNo(staProtocol.getStaNo()); // 鐩爣绔� // vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�"); //楂樹綆搴撲綅 vo.setLocType1(devp.getDevNo()==102 ? "楂�" : "浣�"); @@ -137,14 +141,16 @@ StaProtocol staProtocol = entry.getValue(); vo.setDevNo(entry.getKey()); // 绔欑偣缂栧彿 vo.setWorkNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙� - vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 鑷姩 - vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 鏈夌墿 - vo.setInEnable(staProtocol.isInEnable()?"Y":"N"); // 鍙叆 - vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 鍙嚭 + vo.setAutoing(staProtocol.stateType == DevpStateType.AUTO?"Y":"N"); // 鑷姩 + vo.setLoading(staProtocol.workType == DevpWorkType.BUSY?"Y":"N"); // 鏈夌墿 + vo.setInEnable(staProtocol.requestType == DevpRequestType.IN?"Y":"N"); // 鍙叆 + vo.setOutEnable(staProtocol.requestType == DevpRequestType.OUT?"Y":"N"); // 鍙嚭 + vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 鍏ュ簱鏍囪 + vo.setEmptyMk(staProtocol.trayType == DevpTrayType.EMPTY?"Y":"N"); // 绌烘澘淇″彿 vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 闇�姹�1 - vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 绌烘澘淇″彿 + vo.setEmptyMk(staProtocol.trayType == DevpTrayType.EMPTY?"Y":"N"); // 绌烘澘淇″彿 vo.setStaNo(staProtocol.getStaNo()); // 鐩爣绔� - vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�"); //楂樹綆搴撲綅 + vo.setLocType1(staProtocol.locType.desc); //楂樹綆搴撲綅 return R.ok().add(vo); } } diff --git a/src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java b/src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java index b3adb37..849368e 100644 --- a/src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java +++ b/src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java @@ -25,21 +25,21 @@ if (staProtocol == null) { return null; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0) { - return SITE_AUTO_RUN_ID; - } - if (staProtocol.isAutoing() && staProtocol.isLoading()) { - return SITE_AUTO_RUN; - } - if (staProtocol.isAutoing() && staProtocol.getWorkNo() > 0) { - return SITE_AUTO_ID; - } - if (staProtocol.isAutoing()) { - return SITE_AUTO; - } - if (!staProtocol.isAutoing()) { - return SITE_UNAUTO; - } +// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0) { +// return SITE_AUTO_RUN_ID; +// } +// if (staProtocol.isAutoing() && staProtocol.isLoading()) { +// return SITE_AUTO_RUN; +// } +// if (staProtocol.isAutoing() && staProtocol.getWorkNo() > 0) { +// return SITE_AUTO_ID; +// } +// if (staProtocol.isAutoing()) { +// return SITE_AUTO; +// } +// if (!staProtocol.isAutoing()) { +// return SITE_UNAUTO; +// } return null; } 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 55f8f67..d3648b2 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -26,6 +26,10 @@ import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.*; +import com.zy.core.enums.DevpType.DevpRequestType; +import com.zy.core.enums.DevpType.DevpStateType; +import com.zy.core.enums.DevpType.DevpTrayType; +import com.zy.core.enums.DevpType.DevpWorkType; import com.zy.core.model.*; import com.zy.core.model.command.CrnCommand; import com.zy.core.model.command.LedCommand; @@ -130,91 +134,15 @@ continue; } - String barcode = barcodeThread.getBarcode(); - - String barcodeMat = barcodeThreadMat.getBarcode(); - // 灏哄妫�娴嬪紓甯� - boolean back = false; - String errMsg = ""; - if (staProtocol.isFrontErr()) { - errMsg = "鍓嶈秴闄�"; - back = true; - } - if (!back && staProtocol.isBackErr()) { - errMsg = "鍚庤秴闄�"; - back = true; - } - if (!back && staProtocol.isHighErr()) { - errMsg = "楂樿秴闄�"; - back = true; - } - if (!back && staProtocol.isLeftErr()) { - errMsg = "宸﹁秴闄�"; - back = true; - } - if (!back && staProtocol.isRightErr()) { - errMsg = "鍙宠秴闄�"; - back = true; - } - if (!back && staProtocol.isWeightErr()) { - errMsg = "瓒呴噸"; - back = true; - } - if (!back && staProtocol.isBarcodeErr()) { - errMsg = "鎵爜澶辫触"; - log.error("鐗╂枡鐮佹壂鐮佸け璐�"); -// back = true; - } - // 閫�鍥� - if (back) { -// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); - - if (!staProtocol.isLoading()){ - continue; - } - if (!staProtocol.isPakMk()) { - continue; - } - staProtocol.setWorkNo(wrkNo); - News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); - wrkNo++; - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); - } - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() + if (staProtocol.stateType == DevpStateType.AUTO //鑷姩 + && staProtocol.workType == DevpWorkType.BUSY //蹇欑 + && staProtocol.requestType == DevpRequestType.IN //鍙叆 + && staProtocol.trayType == DevpTrayType.FULL // 婊℃澘 && staProtocol.isPakMk()) { - if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) { - News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); - staProtocol.setWorkNo(wrkNo); - News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); - wrkNo++; - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); - continue; - } - if(Cools.isEmpty(barcodeMat) || "NG".endsWith(barcodeMat) || "NoRead".equals(barcodeMat) || "00000000".equals(barcodeMat)) { - News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcodeMat(), barcodeMat); + String barcode = staProtocol.getBarcode(); - staProtocol.setWorkNo(wrkNo); - News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); - wrkNo++; - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); - continue; - } // 鍒ゆ柇閲嶅宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); if (wrkMast != null) { @@ -254,7 +182,6 @@ } try { LocTypeDto locTypeDto = new LocTypeDto(staProtocol); - SearchLocParam param = new SearchLocParam(); param.setBarcode(barcode); param.setIoType(1); @@ -284,31 +211,7 @@ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } - } else if (jsonObject.getInteger("code").equals(700)) { - SearchLocParam param2 = new SearchLocParam(); - param2.setBarcode(barcode); - param2.setBarcodeMat(barcodeMat); - param2.setSourceStaNo(inSta.getStaNo()); - param2.setLocType1(locTypeDto.getLocType1()); - String response2 = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/pakin/yk/loc/v33") - .setJson(JSON.toJSONString(param2)) - .build() - .doPost(); - JSONObject jsonObject2 = JSON.parseObject(response2); - if (jsonObject2.getInteger("code").equals(200)) { - log.info("鑷姩缁勬墭鎴愬姛锛侊紒"); - } else { - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "鑷姩缁勬墭澶辫触锛侊紒锛乥arcodeMat==>"+barcodeMat)); - News.error(methodName + "==>缁勬墭澶辫触:璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/yk/loc/v33", JSON.toJSONString(param), response); - } - try{ - Thread.sleep(500); - } catch (Exception e){ - - } - } else { + }else { staProtocol.setWorkNo(wrkNo); wrkNo++; staProtocol.setStaNo(inSta.getBackSta().shortValue()); @@ -357,17 +260,19 @@ staProtocol = staProtocol.clone(); } -// // 鍏ュ嚭搴撴ā寮忓垽鏂� + // 鍏ュ嚭搴撴ā寮忓垽鏂� if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (!staProtocol.isLoading()){ + if (staProtocol.workType == DevpWorkType.BUSY){ continue; } - if (staProtocol.isAutoing() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) + if (staProtocol.stateType == DevpStateType.AUTO + && staProtocol.requestType == DevpRequestType.IN + && staProtocol.trayType == DevpTrayType.FULL + && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) { News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�"); // 鍒ゆ柇閲嶅宸ヤ綔妗� @@ -396,9 +301,9 @@ } }else { - News.errorNoLog(""+mark+" - 6"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.isLoading()+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() - +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.isEmptyMk()+"銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() - +"銆侀攣瀹氭爣璁�"+ staProtocol.isPakMk()+"銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp()); + News.errorNoLog(""+mark+" - 6"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.stateType+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.requestType + +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.trayType+"銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() + +"銆侀攣瀹氭爣璁�"+ staProtocol.isPakMk()); } } } @@ -440,8 +345,10 @@ // // 鍏ュ嚭搴撴ā寮忓垽鏂� // if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { - News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�"); + if (staProtocol.stateType == DevpStateType.AUTO + && staProtocol.workType == DevpWorkType.BUSY + && staProtocol.requestType == DevpRequestType.IN + && staProtocol.isPakMk()) { WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode); // WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue()); if (wrkMast == null) { @@ -453,15 +360,6 @@ continue; } - // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹� -// int stnNo = 0; -// if (wrkMast.getStaNo() == 109) { -// stnNo = 127; -// } else if (wrkMast.getStaNo() == 113) { -// stnNo = 128; -// } else { -// log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo()); -// } // 鑾峰彇鐩爣绔� Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", wrkMast.getIoType() - 50) @@ -536,8 +434,8 @@ } }else { - News.errorNoLog(""+mark+" - 6"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.isLoading()+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() - +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.isEmptyMk()); + News.errorNoLog(""+mark+" - 6"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.stateType+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.workType + +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.trayType); } } @@ -560,10 +458,10 @@ } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() + if (staProtocol.stateType == DevpStateType.AUTO + && staProtocol.workType == DevpWorkType.BUSY + && staProtocol.requestType == DevpRequestType.IN + && staProtocol.trayType == DevpTrayType.FULL // && staProtocol.getWorkNo() > 0 && staProtocol.isPakMk()){ @@ -726,7 +624,7 @@ } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) { + if (staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.BUSY && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) { // 鏌ヨ宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId()); if (wrkMast == null) { @@ -923,14 +821,14 @@ News.error(""+mark+" - 1"+" - 2"+" - 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); continue; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() + if ( staProtocol.stateType == DevpStateType.AUTO&& staProtocol.workType == DevpWorkType.BUSY&& staProtocol.getWorkNo() > 0 && staProtocol.requestType == DevpRequestType.IN && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) { flag = true; } if (!flag) { News.errorNoLog(""+mark+" - 1"+" - 3"+" - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):" - +"鑷姩淇″彿"+staProtocol.isAutoing()+"鏈夌墿淇″彿"+staProtocol.isLoading() - +"宸ヤ綔鍙�>0"+staProtocol.getWorkNo()+"鍙叆淇″彿"+staProtocol.isInEnable() + +"鑷姩淇″彿"+staProtocol.stateType+"鏈夌墿淇″彿"+staProtocol.workType + +"宸ヤ綔鍙�>0"+staProtocol.getWorkNo()+"鍙叆淇″彿"+staProtocol.requestType +"鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")"+staDetl.getCanining()); continue; } @@ -1102,8 +1000,8 @@ // continue; } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") - && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { + if (staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.IDLE && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") + && staProtocol.getWorkNo() == 0 && staProtocol.requestType == DevpRequestType.OUT) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- // 鍫嗗灈鏈烘帶鍒惰繃婊� @@ -1591,15 +1489,15 @@ ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed()); } - if (!staProtocol.isLoading()){ + if (staProtocol.workType == DevpWorkType.IDLE){ continue; } // 绔欑偣鏉′欢鍒ゆ柇 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && staProtocol.isInEnable() - && staProtocol.isEmptyMk() + if (staProtocol.stateType == DevpStateType.AUTO + && staProtocol.workType == DevpWorkType.BUSY + && staProtocol.requestType == DevpRequestType.IN + && staProtocol.trayType == DevpTrayType.EMPTY && staProtocol.isPakMk() && (staProtocol.getWorkNo() !=0 && staProtocol.getWorkNo() > 9700) ) { @@ -1671,8 +1569,8 @@ } } else { - News.errorNoLog(""+mark+" - 4"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.isAutoing()+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable() - +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.isEmptyMk()+"銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() + News.errorNoLog(""+mark+" - 4"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.stateType+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.workType + +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.trayType+"銆佸伐浣滃彿锛�" + staProtocol.getWorkNo() +"銆侀攣瀹氭爣璁�"+ staProtocol.isPakMk()); } } @@ -1694,7 +1592,7 @@ for (Integer staNo : led.getStaArr()) { // 鑾峰彇鍙夎溅绔欑偣 StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) { + if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || staProtocol.workType == DevpWorkType.IDLE) { continue; } else { staProtocol = staProtocol.clone(); @@ -2187,65 +2085,65 @@ /** * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� */ - public synchronized void ioConvert() { - try { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - - for (DevpSlave.Sta inSta : devp.getInSta()) { - if (inSta.getStaNo() == 2) { - continue; - } - WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo()); - switch (inSta.getStaNo()) { - case 203://1F - if (pakout != null) { - if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { - // 鍑哄簱鍒囨崲涓� - devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); - if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() - && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { - // 鍑哄簱妯″紡 - devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE; - } - } - } else { - // 鍏ュ簱妯″紡 - devpThread.ioModeOf2F = IoModeType.PAKIN_MODE; - } - break; - case 401://1F - if (pakout != null) { - if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) { - // 鍑哄簱鍒囨崲涓� - devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING; - WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); - if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() - && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { - // 鍑哄簱妯″紡 - devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE; - } - } - } else { - // 鍏ュ簱妯″紡 - devpThread.ioModeOf4F = IoModeType.PAKIN_MODE; - } - break; - } - } - - } - - } catch (Exception e) { - e.printStackTrace(); - } - - - } +// public synchronized void ioConvert() { +// try { +// // 鏍规嵁杈撻�佺嚎plc閬嶅巻 +// for (DevpSlave devp : slaveProperties.getDevp()) { +// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); +// +// for (DevpSlave.Sta inSta : devp.getInSta()) { +// if (inSta.getStaNo() == 2) { +// continue; +// } +// WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo()); +// switch (inSta.getStaNo()) { +// case 203://1F +// if (pakout != null) { +// if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { +// // 鍑哄簱鍒囨崲涓� +// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; +// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); +// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() +// && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() +// && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { +// // 鍑哄簱妯″紡 +// devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE; +// } +// } +// } else { +// // 鍏ュ簱妯″紡 +// devpThread.ioModeOf2F = IoModeType.PAKIN_MODE; +// } +// break; +// case 401://1F +// if (pakout != null) { +// if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) { +// // 鍑哄簱鍒囨崲涓� +// devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING; +// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); +// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() +// && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading() +// && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) { +// // 鍑哄簱妯″紡 +// devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE; +// } +// } +// } else { +// // 鍏ュ簱妯″紡 +// devpThread.ioModeOf4F = IoModeType.PAKIN_MODE; +// } +// break; +// } +// } +// +// } +// +// } catch (Exception e) { +// e.printStackTrace(); +// } +// +// +// } public synchronized void outOfDevp(Integer mark) { @@ -2265,434 +2163,434 @@ } - public synchronized void autoEmptyOut() { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - List<Integer> list = new ArrayList<>(); - list.add(101);list.add(112); - Map<Integer,Integer> map = new HashMap<>(); - map.put(101,102);map.put(112,111); - for (Integer site:list){ - WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", map.get(site))); - if (!Cools.isEmpty(wrkMast)){ - continue; - } - //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔� - StaProtocol staProtocol = devpThread.getStation().get(site); - if (staProtocol == null) { - return; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() //鑷姩 - && !staProtocol.isLoading() //鏃犵墿 - && staProtocol.isOutEnable() //鍙嚭淇″彿 - && staProtocol.getWorkNo() == 0 - ) { - WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(site); - if (null != pakoutEmpty) { - return; - } - Short loctype1 = 1; - if (site == 101){ - loctype1 = 2; - } - LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); - locTypeDto.setSiteId(site); - try { - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/auto/emptyOut/v1") - .setJson(JSON.toJSONString(locTypeDto)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - String data = jsonObject.get("data").toString(); - News.info((String) jsonObject.get("msg")+","+data); - } else { - News.warnNoLog("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response); - } - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } - } +// public synchronized void autoEmptyOut() { +// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); +// List<Integer> list = new ArrayList<>(); +// list.add(101);list.add(112); +// Map<Integer,Integer> map = new HashMap<>(); +// map.put(101,102);map.put(112,111); +// for (Integer site:list){ +// WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", map.get(site))); +// if (!Cools.isEmpty(wrkMast)){ +// continue; +// } +// //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔� +// StaProtocol staProtocol = devpThread.getStation().get(site); +// if (staProtocol == null) { +// return; +// } else { +// staProtocol = staProtocol.clone(); +// } +// if (staProtocol.isAutoing() //鑷姩 +// && !staProtocol.isLoading() //鏃犵墿 +// && staProtocol.isOutEnable() //鍙嚭淇″彿 +// && staProtocol.getWorkNo() == 0 +// ) { +// WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(site); +// if (null != pakoutEmpty) { +// return; +// } +// Short loctype1 = 1; +// if (site == 101){ +// loctype1 = 2; +// } +// LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); +// locTypeDto.setSiteId(site); +// try { +// String response = new HttpHandler.Builder() +// .setUri(wmsUrl) +// .setPath("/rpc/auto/emptyOut/v1") +// .setJson(JSON.toJSONString(locTypeDto)) +// .build() +// .doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// if (jsonObject.getInteger("code").equals(200)) { +// String data = jsonObject.get("data").toString(); +// News.info((String) jsonObject.get("msg")+","+data); +// } else { +// News.warnNoLog("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// } +// } +// } +// +// } - } - - public synchronized void autoEmptyIn() { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - List<Integer> list = new ArrayList<>(); - list.add(153);list.add(157); - for (Integer site:list){ - StaProtocol staProtocol = devpThread.getStation().get(site); - if (staProtocol == null) { - return; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() //鑷姩 - && staProtocol.isLoading() //鏈夌墿 - && staProtocol.isInEnable() //鍙叆淇″彿 - && staProtocol.isPakMk() - && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛� - ) { - - try { - Short loctype1 = 1; - if (site == 153){ - loctype1 = 2; - } - LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); - locTypeDto.setSiteId(site); - - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/auto/emptyIn/v1") - .setJson(JSON.toJSONString(locTypeDto)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - News.info((String) jsonObject.get("msg")); - staProtocol.setWorkNo(jsonObject.get("data").hashCode()); - staProtocol.setStaNo(site.shortValue()); - devpThread.setPakMk(site,false); - MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); - } else { - News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response); - } - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } - - } - - } +// public synchronized void autoEmptyIn() { +// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); +// List<Integer> list = new ArrayList<>(); +// list.add(153);list.add(157); +// for (Integer site:list){ +// StaProtocol staProtocol = devpThread.getStation().get(site); +// if (staProtocol == null) { +// return; +// } else { +// staProtocol = staProtocol.clone(); +// } +// if (staProtocol.isAutoing() //鑷姩 +// && staProtocol.isLoading() //鏈夌墿 +// && staProtocol.isInEnable() //鍙叆淇″彿 +// && staProtocol.isPakMk() +// && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛� +// ) { +// +// try { +// Short loctype1 = 1; +// if (site == 153){ +// loctype1 = 2; +// } +// LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); +// locTypeDto.setSiteId(site); +// +// String response = new HttpHandler.Builder() +// .setUri(wmsUrl) +// .setPath("/rpc/auto/emptyIn/v1") +// .setJson(JSON.toJSONString(locTypeDto)) +// .build() +// .doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// if (jsonObject.getInteger("code").equals(200)) { +// News.info((String) jsonObject.get("msg")); +// staProtocol.setWorkNo(jsonObject.get("data").hashCode()); +// staProtocol.setStaNo(site.shortValue()); +// devpThread.setPakMk(site,false); +// MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); +// } else { +// News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// } +// } +// +// } +// +// } /* * 灏忚溅鍦板浘鏇存柊 鏇存柊閿� * */ - public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd,String sign){ - log.info("灏忚溅鍦板浘鏇存柊锛乕鏍囪锛歿}];[BasRgvMap锛歿}];[staStart锛歿}];[staEnd锛歿}];",sign,JSON.toJSONString(basRgvMapCurrent),staStart,staEnd); - -// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute()); - //鏇存柊褰撳墠灏忚溅閿� - try{ - Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐� - log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栨渶杩滅珯鐐�;[farCurrentStaNo锛歿}]",farCurrentStaNo); - Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤� - log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栧悎骞跺共娑夐」;[fallMerge锛歿}]",fallMerge); - basRgvMapCurrent.setLockEndRoute(fallMerge); - Integer i = basRgvMapMapper.updateById(basRgvMapCurrent); -// if (i>0){ -// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫閿�,{}",sign,new Date(),basRgvMapCurrent.getRgvNo(),JSON.toJSONString(basRgvMapCurrent)); -// } - - //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥� - Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo()); - log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彿;[rgvNoOther锛歿}]",rgvNoOther); - - BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther); - log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞�;[basRgvMapOther锛歿}]",JSON.toJSONString(basRgvMapOther)); - - List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute()); - Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃� - log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�;[lockEndRoute锛歿}]",lockEndRoute); - basRgvMapOther.setEndRoute(lockEndRoute); - Integer i1 = basRgvMapMapper.updateById(basRgvMapOther); -// if (i1>0){ -// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫浣嶇疆,{}",sign,new Date(),basRgvMapOther.getRgvNo(),JSON.toJSONString(basRgvMapOther)); -// } - return true; - }catch (Exception e){ - log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛佸紓甯稿師鍥狅細"+e); - return false; - } - } +// public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd,String sign){ +// log.info("灏忚溅鍦板浘鏇存柊锛乕鏍囪锛歿}];[BasRgvMap锛歿}];[staStart锛歿}];[staEnd锛歿}];",sign,JSON.toJSONString(basRgvMapCurrent),staStart,staEnd); +// +//// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute()); +// //鏇存柊褰撳墠灏忚溅閿� +// try{ +// Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐� +// log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栨渶杩滅珯鐐�;[farCurrentStaNo锛歿}]",farCurrentStaNo); +// Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤� +// log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栧悎骞跺共娑夐」;[fallMerge锛歿}]",fallMerge); +// basRgvMapCurrent.setLockEndRoute(fallMerge); +// Integer i = basRgvMapMapper.updateById(basRgvMapCurrent); +//// if (i>0){ +//// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫閿�,{}",sign,new Date(),basRgvMapCurrent.getRgvNo(),JSON.toJSONString(basRgvMapCurrent)); +//// } +// +// //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥� +// Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo()); +// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彿;[rgvNoOther锛歿}]",rgvNoOther); +// +// BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther); +// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞�;[basRgvMapOther锛歿}]",JSON.toJSONString(basRgvMapOther)); +// +// List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute()); +// Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃� +// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�;[lockEndRoute锛歿}]",lockEndRoute); +// basRgvMapOther.setEndRoute(lockEndRoute); +// Integer i1 = basRgvMapMapper.updateById(basRgvMapOther); +//// if (i1>0){ +//// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫浣嶇疆,{}",sign,new Date(),basRgvMapOther.getRgvNo(),JSON.toJSONString(basRgvMapOther)); +//// } +// return true; +// }catch (Exception e){ +// log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛佸紓甯稿師鍥狅細"+e); +// return false; +// } +// } /* * 鍒锋柊鍦板浘鏁版嵁 * */ - public synchronized void refreshRgvMap() { - try{ - List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); - for (BasRgvMap rgvSlave:basRgvMaps) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - }else { - rgvProtocol = rgvProtocol.clone(); - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�2", rgvSlave.getRgvNo()); - continue; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE && - rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 - && (rgvProtocol.getTaskNo1()==0) - &&rgvThread.isPakMk() - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - - Integer rgvNoOther = basRgvMap.getRgvNoOther(rgvProtocol.getRgvNo()); - RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNoOther); - RgvProtocol rgvProtocolOther = rgvThreadOther.getRgvProtocol(); - if (rgvProtocolOther == null) { - continue; - }else { - rgvProtocolOther = rgvProtocolOther.clone(); - } - if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE - && rgvProtocolOther.getModeType() == RgvModeType.AUTO - && rgvProtocolOther.getLoaded1()==0 - && (rgvProtocolOther.getTaskNo1()==0) - &&rgvThreadOther.isPakMk() - ){ - //瀵瑰伐浣滄。杩涜鍒ゆ柇 - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - if (rgvProtocol.getTaskNo1() >0 && rgvProtocol.getTaskNo1()<=9000){ - WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); - rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2366"); - }else if (rgvProtocol.getTaskNo1() == 0){ - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2366"); - } - - } - - - - } - } - }catch (Exception e){ - log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触"); - log.error("4109琛�"+e); - } - } +// public synchronized void refreshRgvMap() { +// try{ +// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); +// for (BasRgvMap rgvSlave:basRgvMaps) { +// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); +// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); +// if (rgvProtocol == null) { +// continue; +// }else { +// rgvProtocol = rgvProtocol.clone(); +// } +// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); +// if (basRgv == null) { +// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�2", rgvSlave.getRgvNo()); +// continue; +// } +// +// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 +// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE && +// rgvProtocol.getModeType() == RgvModeType.AUTO +// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 +// && (rgvProtocol.getTaskNo1()==0) +// &&rgvThread.isPakMk() +// ) { +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// +// Integer rgvNoOther = basRgvMap.getRgvNoOther(rgvProtocol.getRgvNo()); +// RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNoOther); +// RgvProtocol rgvProtocolOther = rgvThreadOther.getRgvProtocol(); +// if (rgvProtocolOther == null) { +// continue; +// }else { +// rgvProtocolOther = rgvProtocolOther.clone(); +// } +// if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE +// && rgvProtocolOther.getModeType() == RgvModeType.AUTO +// && rgvProtocolOther.getLoaded1()==0 +// && (rgvProtocolOther.getTaskNo1()==0) +// &&rgvThreadOther.isPakMk() +// ){ +// //瀵瑰伐浣滄。杩涜鍒ゆ柇 +// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); +// if (rgvProtocol.getTaskNo1() >0 && rgvProtocol.getTaskNo1()<=9000){ +// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); +// rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2366"); +// }else if (rgvProtocol.getTaskNo1() == 0){ +// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2366"); +// } +// +// } +// +// +// +// } +// } +// }catch (Exception e){ +// log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触"); +// log.error("4109琛�"+e); +// } +// } /** * 瀹屾垚灏忚溅浠诲姟 */ - public synchronized void rgvCompleteWrkMastSta() { - try{ - for (DevpSlave devp : slaveProperties.getDevp()) { - List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); - for (BasRgvMap rgvSlave:basRgvMaps) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - }else { - rgvProtocol = rgvProtocol.clone(); - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgvSlave.getRgvNo()); - continue; - } - - // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔� - if ((rgvProtocol.getStatusType1() == RgvStatusType.WAITING || rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING) - && rgvProtocol.getModeType() == RgvModeType.AUTO - && (rgvProtocol.getStatusType() == RgvStatusType.WORKING1) - ){ - log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); - if (rgvProtocol.getTaskNo1()!=0){ - if (rgvProtocol.getTaskNo1()==32222){ - boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); - if (!rgvComplete){ - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); - } - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415"); - rgvThread.setPakMk(true); - break; - } - WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); - if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){ - log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta); - continue; - } - - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (!staProtocol.isAutoing() || !staProtocol.isLoading()){ - continue; - } - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue()); - if (!Cools.isEmpty(wrkMast)){ - if (!staProtocol.isPakMk()){ - continue; - } - // 涓嬪彂绔欑偣淇℃伅 - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); - if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { - continue; - } - }else { - log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。"); - // 涓嬪彂绔欑偣淇℃伅 - Map<Integer,Integer> map = new HashMap<>(); - map.put(101,102);map.put(112,111); - map.put(100,100); - staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue()); - staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); +// public synchronized void rgvCompleteWrkMastSta() { +// try{ +// for (DevpSlave devp : slaveProperties.getDevp()) { +// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); +// for (BasRgvMap rgvSlave:basRgvMaps) { +// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); +// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); +// if (rgvProtocol == null) { +// continue; +// }else { +// rgvProtocol = rgvProtocol.clone(); +// } +// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); +// if (basRgv == null) { +// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgvSlave.getRgvNo()); +// continue; +// } +// +// // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔� +// if ((rgvProtocol.getStatusType1() == RgvStatusType.WAITING || rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING) +// && rgvProtocol.getModeType() == RgvModeType.AUTO +// && (rgvProtocol.getStatusType() == RgvStatusType.WORKING1) +// ){ +// log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol); +// if (rgvProtocol.getTaskNo1()!=0){ +// if (rgvProtocol.getTaskNo1()==32222){ +// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); +// if (!rgvComplete){ +// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); +// } +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); +// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415"); +// rgvThread.setPakMk(true); +// break; +// } +// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); +// if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){ +// log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta); +// continue; +// } +// +// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); +// StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd()); +// if (staProtocol == null) { +// continue; +// } else { +// staProtocol = staProtocol.clone(); +// } +// if (!staProtocol.isAutoing() || !staProtocol.isLoading()){ +// continue; +// } +// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue()); +// if (!Cools.isEmpty(wrkMast)){ +// if (!staProtocol.isPakMk()){ +// continue; +// } +// // 涓嬪彂绔欑偣淇℃伅 +// staProtocol.setWorkNo(wrkMast.getWrkNo()); +// staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); +// devpThread.setPakMk(staProtocol.getSiteId(), false); // log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); - if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { - continue; - } - } - boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); -// boolean rgvComplete = true; - if (!rgvComplete){ - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); - break; - } - WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); - wrkMast1.setPdcType("Y"); - - wrkMastService.updateById(wrkMast1); - - wrkMastSta.setWrkSts(3); - wrkMastStaMapper.updateById(wrkMastSta); - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2471"); - rgvThread.setPakMk(true); - } - - else { - log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo()); - } - } - } - } - }catch (Exception e){ - log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); - } - } - /** - * 鎵ц灏忚溅鎼繍浠诲姟 - */ - public synchronized boolean rgvRunWrkMastFullSta() { - boolean wrkEnable = false; - try{ - List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); - for (BasRgvMap rgvSlave:basRgvMaps) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - }else { - rgvProtocol = rgvProtocol.clone(); - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo()); - continue; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 - && rgvProtocol.getTaskNo1() == 0 - && rgvThread.isPakMk() - ) { - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (basRgvMap == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo()); - continue; - } - List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute()); - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); - for (WrkMastSta wrkMastSta : wrkMastStaList){ - if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3 || wrkMastSta.getWrkSts()!=0){//1:婊$増 3锛氬彇鏀� - continue; - } - //鍒ゆ柇宸ヤ綔缁撴潫浣嶇疆鐘舵�� - boolean signDev = false; - BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd())); - if (devNo.getDevNo()==113){ - BasDevp devNo114 = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 114)); - if (!Cools.isEmpty(devNo114)){ - if (devNo114.getOutEnable().equals("Y")){ - signDev = true; - } - } - } - if (!Cools.isEmpty(devNo)){ - if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")){ - continue; - } - if (!signDev && devNo.getDevNo()==113){ - if (!devNo.getAutoing().equals("Y") || !devNo.getWrkNo().equals(0) || !devNo.getLoading().equals("N")){ - wrkEnable = true; - continue; - } - if (!devNo.getOutEnable().equals("Y")){ - wrkEnable = true; - continue; - } - } - } - boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 - wrkEnable = true; - if (sign){ - wrkMastSta.setWrkSts(1); - try{ - wrkMastStaMapper.updateById(wrkMastSta); - log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); - }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); - } - rgvThread.setPakMk(false); - boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526"); - if (signMap){ - return wrkEnable; -// break; - }else { - log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo()); - Thread.sleep(500); - } - } else { - log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); - Thread.sleep(500); - } - break; - } - } - - } -// if (!wrkEnable){ -// rgvRunWrkMastEmptyStaAvoidance(); +// if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { +// continue; +// } +// }else { +// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。"); +// // 涓嬪彂绔欑偣淇℃伅 +// Map<Integer,Integer> map = new HashMap<>(); +// map.put(101,102);map.put(112,111); +// map.put(100,100); +// staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue()); +// staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue()); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +//// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); +// if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { +// continue; +// } +// } +// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); +//// boolean rgvComplete = true; +// if (!rgvComplete){ +// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); +// break; +// } +// WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); +// wrkMast1.setPdcType("Y"); +// +// wrkMastService.updateById(wrkMast1); +// +// wrkMastSta.setWrkSts(3); +// wrkMastStaMapper.updateById(wrkMastSta); +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); +// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2471"); +// rgvThread.setPakMk(true); +// } +// +// else { +// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo()); +// } +// } // } - }catch (Exception e){ - log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�"); - log.error("3875琛�"+e); - } - return wrkEnable; - } +// } +// }catch (Exception e){ +// log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e); +// } +// } +// /** +// * 鎵ц灏忚溅鎼繍浠诲姟 +// */ +// public synchronized boolean rgvRunWrkMastFullSta() { +// boolean wrkEnable = false; +// try{ +// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); +// for (BasRgvMap rgvSlave:basRgvMaps) { +// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); +// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); +// if (rgvProtocol == null) { +// continue; +// }else { +// rgvProtocol = rgvProtocol.clone(); +// } +// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); +// if (basRgv == null) { +// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo()); +// continue; +// } +// +// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 +// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE +// && rgvProtocol.getModeType() == RgvModeType.AUTO +// && rgvProtocol.getLoaded1()==0 +// && rgvProtocol.getTaskNo1() == 0 +// && rgvThread.isPakMk() +// ) { +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// if (basRgvMap == null) { +// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo()); +// continue; +// } +// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute()); +// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� +// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); +// for (WrkMastSta wrkMastSta : wrkMastStaList){ +// if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3 || wrkMastSta.getWrkSts()!=0){//1:婊$増 3锛氬彇鏀� +// continue; +// } +// //鍒ゆ柇宸ヤ綔缁撴潫浣嶇疆鐘舵�� +// boolean signDev = false; +// BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd())); +// if (devNo.getDevNo()==113){ +// BasDevp devNo114 = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 114)); +// if (!Cools.isEmpty(devNo114)){ +// if (devNo114.getOutEnable().equals("Y")){ +// signDev = true; +// } +// } +// } +// if (!Cools.isEmpty(devNo)){ +// if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")){ +// continue; +// } +// if (!signDev && devNo.getDevNo()==113){ +// if (!devNo.getAutoing().equals("Y") || !devNo.getWrkNo().equals(0) || !devNo.getLoading().equals("N")){ +// wrkEnable = true; +// continue; +// } +// if (!devNo.getOutEnable().equals("Y")){ +// wrkEnable = true; +// continue; +// } +// } +// } +// boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 +// wrkEnable = true; +// if (sign){ +// wrkMastSta.setWrkSts(1); +// try{ +// wrkMastStaMapper.updateById(wrkMastSta); +// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); +// }catch (Exception e){ +// log.error("鏇存柊灏忚溅浠诲姟澶辫触"); +// } +// rgvThread.setPakMk(false); +// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526"); +// if (signMap){ +// return wrkEnable; +//// break; +// }else { +// log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo()); +// Thread.sleep(500); +// } +// } else { +// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); +// Thread.sleep(500); +// } +// break; +// } +// } +// +// } +//// if (!wrkEnable){ +//// rgvRunWrkMastEmptyStaAvoidance(); +//// } +// }catch (Exception e){ +// log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�"); +// log.error("3875琛�"+e); +// } +// return wrkEnable; +// } /** * 鎵ц灏忚溅鎼繍浠诲姟 */ @@ -2825,134 +2723,134 @@ /* * 鏈変换鍔′絾鏈墽琛� 姝ゆ椂闇�瑕佽皟鏁村皬杞︿綅缃� * */ - public synchronized void rgvRunWrkMastEmptyStaAvoidance() { - try{ - Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔� - if (integer==0){ - return; - } - List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); - for (BasRgvMap rgvSlave:basRgvMaps) { - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); - RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { - continue; - }else { - rgvProtocol = rgvProtocol.clone(); - } - BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); - if (basRgv == null) { - log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�1", rgvSlave.getRgvNo()); - continue; - } - - // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 - && rgvProtocol.getTaskNo1()==0 - && rgvProtocol.getStatusType1() == RgvStatusType.IDLE - && rgvThread.isPakMk() -// && rgvProtocol.getTaskNo2()==0 - ){ - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ - continue; - } -// if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){ -// continue; -// } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){ +// public synchronized void rgvRunWrkMastEmptyStaAvoidance() { +// try{ +// Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔� +// if (integer==0){ +// return; +// } +// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); +// for (BasRgvMap rgvSlave:basRgvMaps) { +// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); +// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); +// if (rgvProtocol == null) { +// continue; +// }else { +// rgvProtocol = rgvProtocol.clone(); +// } +// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); +// if (basRgv == null) { +// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�1", rgvSlave.getRgvNo()); +// continue; +// } +// +// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 +// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE +// && rgvProtocol.getModeType() == RgvModeType.AUTO +// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 +// && rgvProtocol.getTaskNo1()==0 +// && rgvProtocol.getStatusType1() == RgvStatusType.IDLE +// && rgvThread.isPakMk() +//// && rgvProtocol.getTaskNo2()==0 +// ){ +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ // continue; // } - rgvAvoidanceXY(rgvProtocol.getRgvNo()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2727"); - } - } - }catch (Exception e){ - log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触"); - log.error("4109琛�"+e); - } - } - - /* - * 灏忚溅XY绉诲姩 閬胯 - * */ - public synchronized boolean rgvAvoidanceXY(Integer rgvId){ - BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo(rgvId); - if (basRgvMap.getStartRoute() == 100 || basRgvMap.getStartRoute() == 101){ - try{ - - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� - //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue()); - rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - - } - }else { - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� - //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue()); - rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - - } - } - } - - - /* - * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔� - * */ - public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - RgvCommand rgvCommand = new RgvCommand(); - rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 - rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� - rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙� - rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐� - rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣 - rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣 - rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 - if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { - //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� - log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); - return false; - } else { - return true; - } - }catch (Exception e){ - return false; - } - } +//// if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){ +//// continue; +//// } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){ +//// continue; +//// } +// rgvAvoidanceXY(rgvProtocol.getRgvNo()); +// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2727"); +// } +// } +// }catch (Exception e){ +// log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触"); +// log.error("4109琛�"+e); +// } +// } +// +// /* +// * 灏忚溅XY绉诲姩 閬胯 +// * */ +// public synchronized boolean rgvAvoidanceXY(Integer rgvId){ +// BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo(rgvId); +// if (basRgvMap.getStartRoute() == 100 || basRgvMap.getStartRoute() == 101){ +// try{ +// +// // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- +// RgvCommand rgvCommand = new RgvCommand(); +// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 +// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� +// rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� +// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� +// //basRgvMap.getLockStartRoute().shortValue() +// rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue()); +// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 +// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { +// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� +// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); +// return false; +// } else { +// return true; +// } +// }catch (Exception e){ +// return false; +// +// } +// }else { +// try{ +// // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- +// RgvCommand rgvCommand = new RgvCommand(); +// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 +// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� +// rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� +// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� +// //basRgvMap.getLockStartRoute().shortValue() +// rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue()); +// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 +// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { +// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� +// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); +// return false; +// } else { +// return true; +// } +// }catch (Exception e){ +// return false; +// +// } +// } +// } +// +// +// /* +// * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔� +// * */ +// public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){ +// try{ +// // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- +// RgvCommand rgvCommand = new RgvCommand(); +// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿 +// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� +// rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙� +// rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐� +// rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣 +// rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣 +// rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 +// if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { +// //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� +// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); +// return false; +// } else { +// return true; +// } +// }catch (Exception e){ +// return false; +// } +// } /* * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔� diff --git a/src/main/java/com/zy/common/model/SearchLocParam.java b/src/main/java/com/zy/common/model/SearchLocParam.java index 286906f..c3e8cdb 100644 --- a/src/main/java/com/zy/common/model/SearchLocParam.java +++ b/src/main/java/com/zy/common/model/SearchLocParam.java @@ -14,7 +14,7 @@ private Integer sourceStaNo; private String barcode; - private String barcodeMat; +// private String barcodeMat; // 搴撲綅瑙勬牸锛� 0:鏈煡, 1:浣庡簱浣�, 2:涓簱浣�, 3:楂樺簱浣� 锛� private Short locType1; diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 858c5ba..a558d6f 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -47,94 +47,33 @@ // 婕旂ず // mainService.crnDemoOfLocMove1(); - //鍒锋柊RGV鍦板浘 - mainService.refreshRgvMap(); - - // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� -// mainService.ioConvert(); - // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 // mainService.stnToCrnStnPick(3); - mainService.stnToCrnStnPick2(); - - // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。 - mainService.generateStoreWrkFile(1); // 缁勬墭 -// mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱 - Thread.sleep(500); - - // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 - mainService.crnStnToOutStn(4); - // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 - mainService.crnIoExecute(5); - // 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵�� -// mainService.crnIoWrkMast(); - // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� - mainService.storeFinished(6); - // 鍫嗗灈鏈哄紓甯镐俊鎭褰� - mainService.recCrnErr(7); - // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� - mainService.storeEmptyPlt(8); - // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� - mainService.ledExecute(9); - // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 - mainService.ledReset(); - - mainService.outOfDevp(11); - - if (i>10){ - //绌烘墭鐩樿嚜鍔ㄥ嚭搴� - mainService.autoEmptyOut(); - //绌烘墭鐩樿嚜鍔ㄥ叆搴� - mainService.autoEmptyIn(); - i=0; - } - i++; - - // 鍏朵粬 ===>> 鍏ュ嚭搴撴ā寮忓垏鎹� -// i++; -// if (i > 1) { -// mainService.ioConvert(); -// i = 0; -// } - - /////////////////////////////////////RGV璋冨害///////////////////////////////////// +// mainService.stnToCrnStnPick2(); // - //瀹屾垚灏忚溅浠诲姟 -// mainService.rgvCompleteWrkMastSta(); - -// //鎵ц灏忚溅绌烘澘鎼繍浠诲姟 -// mainService.rgvRunWrkMastEmptyStaPut();//鏀� -// mainService.rgvRunWrkMastEmptyStaTake();//鍙� -// if (rgcWrk){ -// //鎵ц灏忚溅璐х墿鎼繍浠诲姟 -// mainService.rgvRunWrkMastFullSta(); -// rgcWrk = false; -// }else { -// mainService.rgvRunWrkMastEmptyStaAvoidance();//閬胯 -// rgcWrk = true; -// } - - - /////////////////////////////////////RGV璋冨害///////////////////////////////////// - /////////////////////////////////////RGV璋冨害///////////////////////////////////// - k++; - - // RGV ===>> 灏忚溅浠诲姟浣滀笟涓嬪彂 - try{ - boolean rgvIoExecuteSign = mainService.rgvRunWrkMastFullSta(); - if (rgvIoExecuteSign){ - k = 0; - } else if (k>4){ - k = 0; - mainService.rgvRunWrkMastEmptyStaAvoidance();//閬胯 - } - }catch (Exception e){ - log.error("RGV ===>> 灏忚溅浠诲姟浣滀笟涓嬪彂寮傚父"+e); - } - //瀹屾垚灏忚溅浠诲姟 - mainService.rgvCompleteWrkMastSta(); - /////////////////////////////////////RGV璋冨害///////////////////////////////////// - +// // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。 +// mainService.generateStoreWrkFile(1); // 缁勬墭 +//// mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱 +// Thread.sleep(500); +// +// // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 +// mainService.crnStnToOutStn(4); +// // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 +// mainService.crnIoExecute(5); +// // 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵�� +//// mainService.crnIoWrkMast(); +// // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� +// mainService.storeFinished(6); +// // 鍫嗗灈鏈哄紓甯镐俊鎭褰� +// mainService.recCrnErr(7); +// // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� +// mainService.storeEmptyPlt(8); +// // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� +// mainService.ledExecute(9); +// // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 +// mainService.ledReset(); +// +// mainService.outOfDevp(11); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index 520f386..ae2f143 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -49,7 +49,7 @@ // 鍒濆鍖栦笅浣嶆満绾跨▼ initThread(); // 寮�濮嬩富娴佺▼杩涚▼ - mainProcess.start(); +// mainProcess.start(); News.info("鏍稿績鎺у埗灞傚凡鍚姩..............................................."); } @@ -86,19 +86,19 @@ private void initThread(){ // 鍒濆鍖栧爢鍨涙満绾跨▼ - News.info("鍒濆鍖栧爢鍨涙満绾跨▼..................................................."); - for (CrnSlave crn : slaveProperties.getCrn()) { - CrnThread crnThread = new SiemensCrnThread(crn); - new Thread((Runnable) crnThread).start(); - SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread); - } +// News.info("鍒濆鍖栧爢鍨涙満绾跨▼..................................................."); +// for (CrnSlave crn : slaveProperties.getCrn()) { +// CrnThread crnThread = new SiemensCrnThread(crn); +// new Thread((Runnable) crnThread).start(); +// SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread); +// } // 鍒濆鍖栫┛姊溅绾跨▼ - log.info("鍒濆鍖朢GV绾跨▼..................................................."); - for (RgvSlave rgv : slaveProperties.getRgv()) { - RgvThread rgvThread = new RgvThread(rgv); - new Thread((Runnable) rgvThread).start(); - SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread); - } +// log.info("鍒濆鍖朢GV绾跨▼..................................................."); +// for (RgvSlave rgv : slaveProperties.getRgv()) { +// RgvThread rgvThread = new RgvThread(rgv); +// new Thread((Runnable) rgvThread).start(); +// SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread); +// } // 鍒濆鍖栬緭閫佺嚎绾跨▼ News.info("鍒濆鍖栬緭閫佺嚎绾跨▼..................................................."); for (DevpSlave devp : slaveProperties.getDevp()) { @@ -106,13 +106,13 @@ new Thread((Runnable) devpThread).start(); SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread); } - // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼ - News.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼..................................................."); - for (Slave barcode : slaveProperties.getBarcode()) { - BarcodeThread barcodeThread = new BarcodeThread(barcode); -// new Thread(barcodeThread).start(); - SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread); - } +// // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼ +// News.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼..................................................."); +// for (Slave barcode : slaveProperties.getBarcode()) { +// BarcodeThread barcodeThread = new BarcodeThread(barcode); +//// new Thread(barcodeThread).start(); +// SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread); +// } // 鍒濆鍖朙ED绾跨▼ News.info("鍒濆鍖朙ED绾跨▼..................................................."); for (LedSlave led : slaveProperties.getLed()) { diff --git a/src/main/java/com/zy/core/enums/DevpType/DevpLocType.java b/src/main/java/com/zy/core/enums/DevpType/DevpLocType.java new file mode 100644 index 0000000..a2204e4 --- /dev/null +++ b/src/main/java/com/zy/core/enums/DevpType/DevpLocType.java @@ -0,0 +1,40 @@ +package com.zy.core.enums.DevpType; + +public enum DevpLocType { + + NONE(0,"绂荤嚎"), + LOW(1,"浣庡簱浣�"), + MIDDLE(2,"涓簱浣�"), + HIGH(3,"楂樺簱浣�"); + + public Integer id; + public String desc; + DevpLocType(Integer id, String desc) { + this.id = id; + this.desc = desc; + } + + public static DevpLocType get(Short id) { + if (null == id) { + return null; + } + for (DevpLocType type : DevpLocType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return NONE; + } + + public static DevpLocType get(DevpLocType type) { + if (null == type) { + return null; + } + for (DevpLocType devpLocType : DevpLocType.values()) { + if (devpLocType == type) { + return devpLocType; + } + } + return null; + } +} diff --git a/src/main/java/com/zy/core/enums/DevpType/DevpModeType.java b/src/main/java/com/zy/core/enums/DevpType/DevpModeType.java new file mode 100644 index 0000000..fb203cd --- /dev/null +++ b/src/main/java/com/zy/core/enums/DevpType/DevpModeType.java @@ -0,0 +1,38 @@ +package com.zy.core.enums.DevpType; + +public enum DevpModeType { + NONE(-1,"绂荤嚎"), + IN_MODE(1,"鍏ュ簱"), + OUT_MODE(2,"鍑哄簱"); + + public Integer id; + public String desc; + DevpModeType(Integer id, String desc) { + this.id = id; + this.desc = desc; + } + + public static DevpModeType get(Short id) { + if (null == id) { + return null; + } + for (DevpModeType type : DevpModeType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return NONE; + } + + public static DevpModeType get(DevpModeType type) { + if (null == type) { + return null; + } + for (DevpModeType devpModeType : DevpModeType.values()) { + if (devpModeType == type) { + return devpModeType; + } + } + return null; + } +} diff --git a/src/main/java/com/zy/core/enums/DevpType/DevpRequestType.java b/src/main/java/com/zy/core/enums/DevpType/DevpRequestType.java new file mode 100644 index 0000000..aed0906 --- /dev/null +++ b/src/main/java/com/zy/core/enums/DevpType/DevpRequestType.java @@ -0,0 +1,39 @@ +package com.zy.core.enums.DevpType; + +public enum DevpRequestType { + + NONE(-1,"绂荤嚎"), + IN(1,"鍙叆"), + OUT(2,"鍙嚭"); + + public Integer id; + public String desc; + DevpRequestType(Integer id, String desc) { + this.id = id; + this.desc = desc; + } + + public static DevpRequestType get(Short id) { + if (null == id) { + return null; + } + for (DevpRequestType type : DevpRequestType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return NONE; + } + + public static DevpRequestType get(DevpRequestType type) { + if (null == type) { + return null; + } + for (DevpRequestType devpRequestType : DevpRequestType.values()) { + if (devpRequestType == type) { + return devpRequestType; + } + } + return null; + } +} diff --git a/src/main/java/com/zy/core/enums/DevpType/DevpStateType.java b/src/main/java/com/zy/core/enums/DevpType/DevpStateType.java new file mode 100644 index 0000000..d4447d9 --- /dev/null +++ b/src/main/java/com/zy/core/enums/DevpType/DevpStateType.java @@ -0,0 +1,40 @@ +package com.zy.core.enums.DevpType; + +public enum DevpStateType { + NONE(-1,"绂荤嚎"), + STOP(0,"鍋滄満"), + HAND(1,"鎵嬪姩"), + AUTO(2,"鑷姩"), + FAULT(3,"鏁呴殰"); + + public Integer id; + public String desc; + DevpStateType(Integer id, String desc) { + this.id = id; + this.desc = desc; + } + + public static DevpStateType get(Short id) { + if (null == id) { + return null; + } + for (DevpStateType type : DevpStateType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return NONE; + } + + public static DevpStateType get(DevpStateType type) { + if (null == type) { + return null; + } + for (DevpStateType devpModeType : DevpStateType.values()) { + if (devpModeType == type) { + return devpModeType; + } + } + return null; + } +} diff --git a/src/main/java/com/zy/core/enums/DevpType/DevpTrayType.java b/src/main/java/com/zy/core/enums/DevpType/DevpTrayType.java new file mode 100644 index 0000000..04f89ad --- /dev/null +++ b/src/main/java/com/zy/core/enums/DevpType/DevpTrayType.java @@ -0,0 +1,39 @@ +package com.zy.core.enums.DevpType; + +public enum DevpTrayType { + + NONE(-1,"绂荤嚎"), + EMPTY(1,"绌烘墭"), + FULL(2,"婊℃墭"); + + public Integer id; + public String desc; + DevpTrayType(Integer id, String desc) { + this.id = id; + this.desc = desc; + } + + public static DevpTrayType get(Short id) { + if (null == id) { + return null; + } + for (DevpTrayType type : DevpTrayType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return NONE; + } + + public static DevpTrayType get(DevpTrayType type) { + if (null == type) { + return null; + } + for (DevpTrayType devpTrayType : DevpTrayType.values()) { + if (devpTrayType == type) { + return devpTrayType; + } + } + return null; + } +} diff --git a/src/main/java/com/zy/core/enums/DevpType/DevpWorkType.java b/src/main/java/com/zy/core/enums/DevpType/DevpWorkType.java new file mode 100644 index 0000000..f3af488 --- /dev/null +++ b/src/main/java/com/zy/core/enums/DevpType/DevpWorkType.java @@ -0,0 +1,40 @@ +package com.zy.core.enums.DevpType; + +import com.zy.core.enums.CrnStatusType; + +public enum DevpWorkType { + NONE(-1,"绂荤嚎"), + IDLE(0,"绌洪棽"), + BUSY(1,"蹇欑"); + + public Integer id; + public String desc; + DevpWorkType(Integer id, String desc) { + this.id = id; + this.desc = desc; + } + + public static DevpWorkType get(Short id) { + if (null == id) { + return null; + } + for (DevpWorkType type : DevpWorkType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return NONE; + } + + public static DevpWorkType get(DevpWorkType type) { + if (null == type) { + return null; + } + for (DevpWorkType devpWorkType : DevpWorkType.values()) { + if (devpWorkType == type) { + return devpWorkType; + } + } + return null; + } +} 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 0e2be39..f98f31a 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -1,6 +1,8 @@ package com.zy.core.model.protocol; import com.zy.asrs.entity.BasDevp; +import com.zy.core.enums.CrnModeType; +import com.zy.core.enums.DevpType.*; import lombok.Data; /** @@ -22,29 +24,58 @@ private Short staNo; // ---------------------------------------------------------------- - // 鑷姩 - private boolean autoing; + //妯″紡 + private Short mode; + public DevpModeType modeType; + //鐘舵�� + private Short state; + public DevpStateType stateType; + //宸ヤ綔鐘舵�� + private Short workIo; + public DevpWorkType workType; + //璇锋眰淇″彿 + private Short requestIo; + public DevpRequestType requestType; + //鎵樼洏鐘舵�� + private Short trayIo; + public DevpTrayType trayType; + //搴撲綅鐘舵�� + private Short locIo; + public DevpLocType locType; + //鏉$爜淇℃伅 + private String barcode; + //閲嶉噺淇℃伅 + private Double weightIo; + //澶囩敤 + private Short spare; - // 鏈夌墿 - private boolean loading; + public void setMode(Short mode) { + this.mode = mode; + this.modeType = DevpModeType.get(mode); + } + public void setState(Short state) { + this.state = state; + this.stateType = DevpStateType.get(state); + } + public void setWorkIo(Short workIo) { + this.workIo = workIo; + this.workType = DevpWorkType.get(workIo); + } + public void setRequestIo(Short requestIo) { + this.requestIo = requestIo; + this.requestType = DevpRequestType.get(requestIo); + } + public void setTrayIo(Short trayIo) { + this.trayIo = trayIo; + this.trayType = DevpTrayType.get(trayIo); + } + public void setLocIo(Short locIo) { + this.locIo = locIo; + this.locType = DevpLocType.get(locIo); + } - // 鍙叆 - private boolean inEnable; - // 鍙嚭 - private boolean outEnable; - // 绌烘澘淇″彿 - private boolean emptyMk; - - // 婊℃墭鐩� - private boolean fullPlt; - - // 楂� - private boolean high; - - // 浣� - private boolean low; // 閿佸畾鏍囪 private boolean pakMk = true; @@ -52,11 +83,9 @@ // 鍏ュ簱鏆傚瓨鏁� private Short inQty; - // 闅斿绔欑偣锛堝彴杞︿綅缃級 - private String nearbySta; - //lfd鍏ュ簱鍗拌 褰搒tamp>=2鏃舵墠鍏ュ簱 - private Integer stamp = 0; + + // 澶栧舰妫�娴� ------------------------------------------------------------------------ @@ -110,14 +139,14 @@ BasDevp basDevp = new BasDevp(); basDevp.setDevNo(siteId); basDevp.setWrkNo(workNo.intValue()); - basDevp.setAutoing(autoing?"Y":"N"); - basDevp.setLoading(loading?"Y":"N"); - basDevp.setInEnable(inEnable?"Y":"N"); - basDevp.setOutEnable(outEnable?"Y":"N"); + basDevp.setAutoing(stateType == DevpStateType.AUTO?"Y":"N"); + basDevp.setLoading(workType == DevpWorkType.BUSY?"Y":"N"); + basDevp.setInEnable(requestType == DevpRequestType.IN?"Y":"N"); + basDevp.setOutEnable(requestType == DevpRequestType.OUT?"Y":"N"); basDevp.setLocType1((short) 0); // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿 basDevp.setLocType2((short) 0); // 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿 basDevp.setLocType3((short) 0); // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿 - basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2); + basDevp.setLocType1(DevpLocType.get(locIo).id.shortValue()); basDevp.setInQty(inQty !=null ?(int)inQty : 0); return basDevp; } @@ -132,4 +161,6 @@ return null; } + + } diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index eb078f2..f107d92 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -18,6 +18,7 @@ import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.DevpType.DevpWorkType; import com.zy.core.enums.IoModeType; import com.zy.core.enums.SlaveType; import com.zy.core.model.DevpSlave; @@ -28,10 +29,7 @@ import lombok.extern.slf4j.Slf4j; import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** @@ -51,23 +49,7 @@ // // }}; public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ - add(100);add(101);add(102);add(103); - add(104);add(105);add(106);add(107); - add(108);add(109);add(110);add(111); - add(112);add(113);add(114);add(115); - add(116);add(117);add(118);add(119); - add(120);add(121);add(122);add(123); - add(124);add(125);add(126);add(127); - add(128);add(129);add(130);add(131); - add(132);add(133);add(134);add(135); - add(136);add(137);add(138);add(139); - add(140);add(141);add(142);add(143); - add(144);add(145);add(146);add(147); - add(148);add(149);add(150);add(151); - add(152);add(153);add(154);add(155); - add(156);add(157);add(158);add(159); - add(160);add(161); - add(1); + add(140);add(141); // add(200);add(201);add(202); }}; @@ -132,7 +114,7 @@ break; // 鍐欐暟鎹� ID+鐩爣绔� case 2: - write((StaProtocol)task.getData()); + writeD((StaProtocol)task.getData(),1); log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo()); break; default: @@ -153,29 +135,32 @@ private void initSite() { count ++; ArrayList<Integer> staNos = getStaNo(); - if(count > 77) { - // 绔欑偣缂栧彿 - for (Integer siteId : staNos) { - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); - } - staProtocol.setWorkNo(0); // ID - staProtocol.setAutoing(false); // 鑷姩 - staProtocol.setLoading(false); // 鏈夌墿 - staProtocol.setInEnable(false); // 鍙叆 - staProtocol.setOutEnable(false); // 鍙嚭 - staProtocol.setEmptyMk(false); // 绌烘澘淇″彿 - staProtocol.setStaNo((short) 0); // 鐩爣绔� - if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { - staProtocol.setPakMk(true); - } + // 绔欑偣缂栧彿 + for (Integer siteId : staNos) { + StaProtocol staProtocol = station.get(siteId); + if (null == staProtocol) { + staProtocol = new StaProtocol(); + staProtocol.setSiteId(siteId); + station.put(siteId, staProtocol); } - count = 0; + staProtocol.setWorkNo(0); // 宸ヤ綔鍙� + staProtocol.setStaNo((short) 0); // 鐩爣绔� + staProtocol.setState((short) 0); // 妯″紡鐘舵�� 0鍋滄満锛�=1鎵嬪姩锛�=2鑷姩锛�=3鏁呴殰 + staProtocol.setWorkIo((short) 0); + staProtocol.setRequestIo((short) 0); + staProtocol.setTrayIo((short) 0); + staProtocol.setLocIo((short) 0); + staProtocol.setBarcode("-"); + staProtocol.setWeightIo(0.0); + staProtocol.setMode((short) 0); + + if (!staProtocol.isPakMk() && staProtocol.workType == DevpWorkType.IDLE) { + staProtocol.setPakMk(true); + } } + count = 0; + } @Override @@ -206,7 +191,7 @@ // updateIoMode(); ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); - OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8)); + OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*66)); if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 @@ -216,174 +201,25 @@ staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } - staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙� + staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*66 + 8)); // 宸ヤ綔鍙� + staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 12)); // 鐩爣绔� + staProtocol.setState(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 14)); // 妯″紡鐘舵�� 0鍋滄満锛�=1鎵嬪姩锛�=2鑷姩锛�=3鏁呴殰 + staProtocol.setWorkIo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 16)); + staProtocol.setRequestIo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 18)); + staProtocol.setTrayIo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 20)); + staProtocol.setLocIo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 22)); + staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content,i*66 + 24,16, "UTF-8")); +// staProtocol.setWeightIo(siemensS7Net.getByteTransform().TransDouble(result.Content,i*66 + 40)); + staProtocol.setMode(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 44)); - staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔� - - boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2); - staProtocol.setAutoing(status[0]); // 鑷姩 - staProtocol.setLoading(status[1]); // 鏈夌墿 - staProtocol.setInEnable(status[2]); // 鍙叆 - staProtocol.setOutEnable(status[3]);// 鍙嚭 - staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿 - staProtocol.setFullPlt(status[5]); // 婊℃墭鐩� - staProtocol.setHigh(status[6]); // 楂樺簱浣� - staProtocol.setLow(status[7]); // 浣庡簱浣� - - if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { + if (!staProtocol.isPakMk() && staProtocol.workType == DevpWorkType.IDLE) { staProtocol.setPakMk(true); } } } - BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class); - //RGV灏忚溅1 -// Thread.sleep(100); - OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB50.200",(short)10); - if (result3.IsSuccess) { - BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result3.Content, 0)); - if (!Cools.isEmpty(basRgvMap)){ - Integer siteId = 1; - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); - } - staProtocol.setAutoing(true); - staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 8))); - } - } - //RGV灏忚溅2 -// Thread.sleep(100); - OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB50.212",(short)10); - if (result4.IsSuccess) { - BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result4.Content, 0)); - if (!Cools.isEmpty(basRgvMap)){ - Integer siteId = 2; - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); - } - staProtocol.setAutoing(true); - staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result4.Content, 8))); - } - } - - //RGV灏忚溅3 -// Thread.sleep(100); - OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB50.224",(short)10); - if (result5.IsSuccess) { - BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result5.Content, 0)); - if (!Cools.isEmpty(basRgvMap)){ - Integer siteId = 3; - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); - } - staProtocol.setAutoing(true); - staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result5.Content, 8))); - } - } - - //鏉$爜鎵弿鍣� - ArrayList<Integer> barcodeList = BarcodeList; - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840", (short) (barcodeList.size() * 8)); - if (result2.IsSuccess) { - for (int i = 0; i < barcodeList.size(); i++) { - Integer barcodeId = barcodeList.get(i); - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1); - if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { - barcodeThread.setBarcode(barcode); - } - } - } - //鏉$爜鎵弿鍣� - ArrayList<Integer> barcodeListMat = BarcodeListMat; - OperateResultExOne<byte[]> result2Mat = siemensS7Net.Read("DB103.0", (short) (barcodeListMat.size() * 30)); - if (result2Mat.IsSuccess) { - for (int i = 0; i < barcodeListMat.size(); i++) { - Integer barcodeId = barcodeListMat.get(i); - String barcode = siemensS7Net.getByteTransform().TransString(result2Mat.Content,i*30,30, "UTF-8"); - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1); - if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { - barcodeThread.setBarcode(barcode); - } - } - } - //澶栧舰妫�娴� - ArrayList<Integer> staNoErrs = staNosErrList; - int staNoErrsSize = staNoErrs.size(); - OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8)); - if (resultErr.IsSuccess){ - for (int i = 0;i<3;i++){ - Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1); - StaProtocol staProtocol = station.get(siteId); - staProtocol.setFrontErr(status[0]); - staProtocol.setBackErr(status[1]); - staProtocol.setHighErr(status[2]); - staProtocol.setLeftErr(status[3]); - staProtocol.setRightErr(status[4]); - staProtocol.setWeightErr(status[5]); - staProtocol.setBarcodeErr(status[6]); - } - } - - OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB13.2", (short) (staNoSize*4)); - if (resultErr2.IsSuccess) { - for (int i = 0; i < staNoSize; i++) { - Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4, 1); - StaProtocol staProtocol = station.get(siteId); - staProtocol.setBreakerErr(status[0]); - staProtocol.setInfraredErr(status[1]); - staProtocol.setOutTimeErr(status[2]); - staProtocol.setSeizeSeatErr(status[3]); - staProtocol.setWrkYgoodsN(status[4]); - staProtocol.setInverterErr(status[5]); - staProtocol.setContactErr(status[6]); - staProtocol.setUpcontactErr(status[7]); - - } - } - OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3); - if (resultErr3.IsSuccess) { - if (staError1 == null){ - staError1 = new StaError1(); - } - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3); - staError1.setEMERGENCY_Stop_Core(status[0]); - staError1.setEMERGENCY_STOP1(status[1]); - staError1.setEMERGENCY_STOP2(status[2]); - staError1.setEMERGENCY_STOP3(status[3]); - staError1.setEMERGENCY_STOP4(status[4]); - - staError1.setDoor_EMERGENCY_STOP1(status[5]); - staError1.setDoor_EMERGENCY_STOP2(status[6]); - staError1.setDoor_EMERGENCY_STOP3(status[7]); - staError1.setDoor_EMERGENCY_STOP4(status[8]); - staError1.setDoor_EMERGENCY_STOP5(status[9]); - staError1.setDoor_EMERGENCY_STOP6(status[10]); - - staError1.setDoor_Open_Err1(status[11]); - staError1.setDoor_Open_Err1(status[12]); - staError1.setDoor_Open_Err1(status[13]); - staError1.setDoor_Open_Err1(status[14]); - staError1.setDoor_Open_Err1(status[15]); - staError1.setDoor_Open_Err1(status[16]); - - } - if (result.IsSuccess) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); - // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� try { List<BasDevp> basDevps = new ArrayList<>(); @@ -391,7 +227,6 @@ StaProtocol staProtocol = station.get(siteId); basDevps.add(staProtocol.toSqlModel()); } - BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) { throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�"); @@ -420,14 +255,14 @@ int index = staNos.indexOf(staProtocol.getSiteId()); OperateResult write = null; OperateResult write1 = null; + OperateResult write2 = null; //浠诲姟涓嬪彂娆℃暟 int writeCount = 0; do { - write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo()); // 宸ヤ綔鍙� + write = siemensS7Net.Write("DB100." + index*66, staProtocol.getWorkNo()); // 宸ヤ綔鍙� Thread.sleep(200); - write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 鐩爣绔� + write1 = siemensS7Net.Write("DB100." + (index*66+4), staProtocol.getStaNo()); // 鐩爣绔� if(write.IsSuccess && write1.IsSuccess){ - log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); break; } else { @@ -449,6 +284,56 @@ } } + private void writeD(StaProtocol staProtocol,Integer count)throws InterruptedException{ + if (null == staProtocol) { + return; + } + Integer oriWrkNo = staProtocol.getWorkNo(); + short oriStaNo = staProtocol.getStaNo(); + + ArrayList<Integer> staNos = getStaNo(); + int index = staNos.indexOf(staProtocol.getSiteId()); + + OperateResult write1 = siemensS7Net.Write("DB100." + index*66, staProtocol.getWorkNo()); // 宸ヤ綔鍙� + Thread.sleep(200); + OperateResult write2 = siemensS7Net.Write("DB100." + (index*66+4), staProtocol.getStaNo()); // 鐩爣绔� + if(write1.IsSuccess && write2.IsSuccess){ + OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100."+(index*66), (short) 6); + Integer wrkNo = siemensS7Net.getByteTransform().TransInt32(result.Content, 0); + short staNo = siemensS7Net.getByteTransform().TransInt16(result.Content, 4); + if (!oriWrkNo.equals(wrkNo) || oriStaNo != staNo){ + if (count >= 5){ + log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), count); + return; + } + count++; + writeD(staProtocol,count); + } + int whileCount = 0; + OperateResult write3 = siemensS7Net.Write("DB100." + (index*66+6), (short) 1); + if (write3.IsSuccess){ + Thread.sleep(200); + do { + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100."+(index*66 +6), (short) 2); + short mk = siemensS7Net.getByteTransform().TransInt16(result2.Content, 0); + if (mk == 2){ + OperateResult write4 = siemensS7Net.Write("DB100." + (index*66+6), 0); + if (write4.IsSuccess){ + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); + News.info("SiemensDevp"+" - 5"+" - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); + break; + } + }else { + whileCount++; + } + }while (whileCount <5); + } + } + + + + } + // 鏇存柊鍏ュ嚭搴撴ā寮� private void updateIoMode() throws InterruptedException { if (this.ioModeOf2F != IoModeType.NONE) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 249dbe0..1d99b37 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 8088 servlet: context-path: /@pom.build.finalName@ @@ -228,7 +228,7 @@ # 杈撻�佺嚎1 devp[0]: id: 1 - ip: 10.10.10.50 + ip: 10.200.50.10 port: 102 rack: 0 slot: 0 diff --git a/src/main/webapp/views/pipeline.html b/src/main/webapp/views/pipeline.html index c316cbd..9facb87 100644 --- a/src/main/webapp/views/pipeline.html +++ b/src/main/webapp/views/pipeline.html @@ -432,7 +432,7 @@ }); $(document).on('click ','#save', function () { - http.post(baseUrl+ "/site//detl/update", { + http.post(baseUrl+ "/site/detl/update", { siteId: $('#siteId').val(), workNo: $('#workNo').val(), staNo: $('#staNo').val(), -- Gitblit v1.9.1