From f417e368a7a68c693a30b16329fb3533a0c84183 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 30 一月 2024 18:27:08 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/LedThread.java | 362 ----------------------- src/main/java/com/zy/asrs/utils/RouteUtils.java | 7 src/main/java/com/zy/asrs/service/BasRgvMapService.java | 1 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 156 ++++----- src/main/webapp/views/console.html | 4 src/main/webapp/static/js/console.map.js | 12 src/main/webapp/views/rgv.html | 22 src/main/java/com/zy/common/model/LocTypeDto.java | 2 src/main/java/com/zy/core/model/command/LedCommand.java | 20 + src/main/java/com/zy/asrs/mapper/BasRgvMapMapper.java | 2 src/main/java/com/zy/common/model/MatDto.java | 20 + src/main/resources/mapper/BasRgvMapMapper.xml | 4 src/main/java/com/zy/core/thread/RgvThread.java | 90 +++++ src/main/java/com/zy/core/MainProcess.java | 14 src/main/java/com/zy/asrs/entity/BasRgvMap.java | 8 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 30 + src/main/resources/application.yml | 110 ++++--- src/main/java/com/zy/asrs/service/impl/BasRgvMapServiceImpl.java | 7 18 files changed, 347 insertions(+), 524 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/BasRgvMap.java b/src/main/java/com/zy/asrs/entity/BasRgvMap.java index 190dec9..300d642 100644 --- a/src/main/java/com/zy/asrs/entity/BasRgvMap.java +++ b/src/main/java/com/zy/asrs/entity/BasRgvMap.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.SpringUtils; +import com.zy.asrs.service.BasRgvMapService; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -77,8 +79,10 @@ this.lockEndRoute = lockEndRoute; } - public Integer getRgvNoOther(){ - return 3-this.rgvNo; + public Integer getRgvNoOther(Integer rgvNo){ + BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class); + BasRgvMap basRgvMap = basRgvMapService.selectByOtherRgvNo(rgvNo); + return basRgvMap.getRgvNo(); } diff --git a/src/main/java/com/zy/asrs/mapper/BasRgvMapMapper.java b/src/main/java/com/zy/asrs/mapper/BasRgvMapMapper.java index d96498b..c28c9e3 100644 --- a/src/main/java/com/zy/asrs/mapper/BasRgvMapMapper.java +++ b/src/main/java/com/zy/asrs/mapper/BasRgvMapMapper.java @@ -11,4 +11,6 @@ public interface BasRgvMapMapper extends BaseMapper<BasRgvMap> { BasRgvMap selectByRgvNo(@Param("rgvNo") Integer rgvNo); + + BasRgvMap selectByOtherRgvNo(@Param("rgvNo") Integer rgvNo); } diff --git a/src/main/java/com/zy/asrs/service/BasRgvMapService.java b/src/main/java/com/zy/asrs/service/BasRgvMapService.java index 8a5a21f..8090e3e 100644 --- a/src/main/java/com/zy/asrs/service/BasRgvMapService.java +++ b/src/main/java/com/zy/asrs/service/BasRgvMapService.java @@ -7,4 +7,5 @@ public interface BasRgvMapService extends IService<BasRgvMap> { BasRgvMap selectByRgvNo(Integer rgvNo); + BasRgvMap selectByOtherRgvNo(Integer rgvNo); } diff --git a/src/main/java/com/zy/asrs/service/impl/BasRgvMapServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasRgvMapServiceImpl.java index 578a2ed..c5d67bb 100644 --- a/src/main/java/com/zy/asrs/service/impl/BasRgvMapServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/BasRgvMapServiceImpl.java @@ -13,4 +13,11 @@ public BasRgvMap selectByRgvNo(Integer rgvNo) { return this.baseMapper.selectByRgvNo(rgvNo); } + + @Override + public BasRgvMap selectByOtherRgvNo(Integer rgvNo) { + return this.baseMapper.selectByOtherRgvNo(rgvNo); + } + + } 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 724a297..ab5a94c 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -221,7 +221,7 @@ StartupDto dto = jsonObject.getObject("data", StartupDto.class); barcodeThread.setBarcode(""); staProtocol.setWorkNo(dto.getWorkNo()); - staProtocol.setStaNo(dto.getStaNo().shortValue()); + staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo())); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); log.error("杈撻�佺嚎涓嬪彂2锛�"+dto.getWorkNo()+","+dto.getStaNo()); @@ -238,10 +238,10 @@ // MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); // // if (ledThread != null) { -// String errorMsg = jsonObject.getString("msg"); -// if (!Cools.isEmpty(errorMsg)) { -// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); -// } + String errorMsg = jsonObject.getString("msg"); + if (!Cools.isEmpty(errorMsg)) { + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } // } // News.error(methodName + ":璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); } @@ -392,7 +392,7 @@ StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo()); - staProtocol.setWorkNo(9989); + staProtocol.setWorkNo(wrkNo++); staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1)); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); @@ -402,7 +402,7 @@ // led 寮傚父鏄剧ず if (ledThread != null) { String errorMsg = "姝や负鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱.璇锋斁鍦�"+pickSta.getBackSta().shortValue()+"绔欑偣"; - MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errorMsg)); + MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg)); } continue; } @@ -449,7 +449,7 @@ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + staProtocol.setStaNo((short) 161); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); log.error("杈撻�佺嚎涓嬪彂5锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); @@ -505,7 +505,7 @@ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.forkPosType == CrnForkPosType.HOME) { - News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�"); + News.error("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�"); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -521,6 +521,7 @@ wrkMast.setCrnEndTime(new Date()); if (wrkMastMapper.updateById(wrkMast) != 0) { // 澶嶄綅鍫嗗灈鏈� + News.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�", wrkMast.getWrkNo()); crnThread.setResetFlag(true); } else { News.error(""+mark+" - 1"+" - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo()); @@ -1400,7 +1401,7 @@ ledCommand.setLocNo(dto.getLocNo()); ledCommand.setStaNo(dto.getStaNo()); commands.add(ledCommand); - MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, commands)); + MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(1, commands)); // ledThread.errorReset(); } } else { @@ -1413,12 +1414,12 @@ // throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); // } // -// if (ledThread != null) { -// String errorMsg = jsonObject.getString("msg"); -// if (!Cools.isEmpty(errorMsg)) { -// MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(5, errorMsg)); -// } -// } + if (ledThread != null) { + String errorMsg = jsonObject.getString("msg"); + if (!Cools.isEmpty(errorMsg)) { + MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(3, errorMsg)); + } + } // News.error(""+mark+" - 3"+" - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); } } catch (Exception e) { @@ -1440,7 +1441,6 @@ * 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� */ public synchronized void ledExecute(Integer mark) { - for (LedSlave led : slaveProperties.getLed()) { // 鑾峰彇杈撻�佺嚎plc绾跨▼ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); @@ -1458,11 +1458,7 @@ } // 鑾峰彇宸ヤ綔妗f暟鎹� WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); -// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; } - if (null == wrkMast) { - continue; - } - News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�"); + if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; } wrkMasts.add(wrkMast); // 缁勮鍛戒护 LedCommand ledCommand = new LedCommand(); @@ -1470,12 +1466,6 @@ ledCommand.setIoType(wrkMast.getIoType()); // 鍑哄簱妯″紡 switch (wrkMast.getIoType()) { - case 1: - ledCommand.setTitle("鍏ㄦ澘鍏ュ簱"); - break; - case 10: - ledCommand.setTitle("绌烘澘鍏ュ簱"); - break; case 101: ledCommand.setTitle("鍏ㄦ澘鍑哄簱"); break; @@ -1493,16 +1483,34 @@ ledCommand.setEmptyMk(true); break; default: - News.error(""+mark+" - 1"+" - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); + News.error("浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType()); break; } ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); - ledCommand.setLocNo(wrkMast.getLocNo()); ledCommand.setStaNo(wrkMast.getStaNo()); -// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo()); - if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { + ledCommand.setBarcode(wrkMast.getBarcode()); + if (wrkMast.getIoType() != 110) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); - wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getSpecs()))); + + wrkDetls.forEach(wrkDetl -> { + Double total = 0.0; + EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); + LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); + if (Cools.isEmpty(locDetl)) { + total = wrkDetl.getAnfme(); + } else { + total = locDetl.getAnfme(); + } + if (wrkMast.getIoType() == 101) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); + } + if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); + } + if (wrkMast.getIoType() == 107) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); + } + }); } commands.add(ledCommand); } @@ -1513,32 +1521,11 @@ if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) { continue; } -// 鍛戒护涓嬪彂 ------------------------------------------------------------------------------- -// if (!commands.isEmpty()) { -// if (led.getId() < 7) { -// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) { -// News.error(""+mark+" - 2"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); -// continue; -// } else { -// ledThread.setLedMk(false); -// } -// } else { -// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { -// News.error(""+mark+" - 3"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); -// continue; -// } else { -// ledThread.setLedMk(false); -// } -// } -// -// } // 鍛戒护涓嬪彂 ------------------------------------------------------------------------------- if (!commands.isEmpty()) { - if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) { + if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); continue; - }else { - ledThread.setLedMk(false); } } @@ -1548,7 +1535,6 @@ wrkMast.setOveMk("Y"); wrkMast.setModiTime(new Date()); if (wrkMastMapper.updateById(wrkMast) == 0) { - News.errorNoLog(""+mark+" - 4"+" - 鏇存柊宸ヤ綔妗eけ璐�"); throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�"); } } @@ -1562,17 +1548,13 @@ } } -// News.infoNoLog(""+mark+" - 0"+" - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�"); } /** * 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 */ - public synchronized void ledReset(Integer mark) { - -// News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅"); + public synchronized void ledReset() { for (LedSlave led : slaveProperties.getLed()) { - // 鑾峰彇杈撻�佺嚎plc绾跨▼ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); // 鍛戒护闆嗗悎 @@ -1580,27 +1562,25 @@ for (Integer staNo : led.getStaArr()) { // 鑾峰彇鍙夎溅绔欑偣 StaProtocol staProtocol = devpThread.getStation().get(staNo); - if (staProtocol == null) { - continue; - } - if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) { + if (staProtocol == null) { continue; } + if (staProtocol.getWorkNo() != 0) { reset = false; break; } } // 鑾峰彇led绾跨▼ - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId()); // led鏄剧ず榛樿鍐呭 - if (reset && !ledThread.isLedMk()) { - ledThread.setLedMk(true); - if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) { - News.error(""+mark+" - 1"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); - } else { - + if (reset) { + if (ledThread == null) { + continue; + } + ledThread.errorReset(); + if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) { + News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); } } } -// News.infoNoLog(""+mark+" - 0"+" - 鎵ц瀹屾垚锛氬叾浠� ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅"); } /** @@ -2082,7 +2062,7 @@ String data = jsonObject.get("data").toString(); News.info((String) jsonObject.get("msg")+","+data); } else { - News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response); + News.warnNoLog("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response); } } catch (Exception e) { e.printStackTrace(); @@ -2159,7 +2139,7 @@ basRgvMapMapper.updateById(basRgvMapCurrent); //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥� - Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(); + Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo()); BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther); List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute()); Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃� @@ -2193,10 +2173,11 @@ } // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤 - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE - && rgvProtocol.getModeType() == RgvModeType.AUTO - && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 - && (rgvProtocol.getTaskNo1()==0 || rgvProtocol.getTaskNo1()==9999) + if ( +// rgvProtocol.getStatusType() == RgvStatusType.IDLE + rgvProtocol.getModeType() == RgvModeType.AUTO +// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 +// && (rgvProtocol.getTaskNo1()==0 || rgvProtocol.getTaskNo1()==9999) ) { BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); @@ -2327,6 +2308,7 @@ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getLoaded1()==0 + && rgvProtocol.getTaskNo1() == 0 ) { BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); if (basRgvMap == null) { @@ -2535,11 +2517,11 @@ 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) ){ - continue; - } +// 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()); } @@ -2555,7 +2537,7 @@ * */ public synchronized boolean rgvAvoidanceXY(Integer rgvId){ BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo(rgvId); - if (basRgvMap.getStartRoute() == 100){ + if (basRgvMap.getStartRoute() == 100 || basRgvMap.getStartRoute() == 101){ try{ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -2565,7 +2547,7 @@ rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1( (short)100); + rgvCommand.setSourceStaNo1( (short)101); 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浠诲姟鍙� @@ -2587,7 +2569,7 @@ rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1( (short)157); + rgvCommand.setSourceStaNo1( (short)161); 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浠诲姟鍙� diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java index ac86170..b7af940 100644 --- a/src/main/java/com/zy/asrs/utils/RouteUtils.java +++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java @@ -247,6 +247,13 @@ } } + public static Short SouStaEnd(Integer endSta,Integer souSta){ + if (souSta == 159) { + return (short)161; + } + return souSta.shortValue(); + } + public static void main(String[] arge){ diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java index 454a5f6..38fb7d2 100644 --- a/src/main/java/com/zy/common/model/LocTypeDto.java +++ b/src/main/java/com/zy/common/model/LocTypeDto.java @@ -34,7 +34,7 @@ // if (staProtocol.isHigh() == staProtocol.isLow()) { // throw new CoolException("plc楂樹綆妫�娴嬪紓甯�"); // } - if (staProtocol.getSiteId() == 106){ + if (staProtocol.getSiteId() == 106 || staProtocol.getSiteId() == 159){ this.locType1 = 2; // 楂樺簱浣� }else { this.locType1 = 1; // 浣庡簱浣� diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java index 14a2afd..99a2f28 100644 --- a/src/main/java/com/zy/common/model/MatDto.java +++ b/src/main/java/com/zy/common/model/MatDto.java @@ -14,17 +14,33 @@ // 鐗╂枡鍚嶇О private String maknx; - // 搴撲綅瑙勬牸 + private String batch; + private String specs; + + // 瀹㈡埛淇℃伅 + private String manu; + + // 澶囨敞 + private String memo; // 鐗╂枡鏁伴噺 private Double count; - // 搴撲綅鏁伴噺 private Double total; public MatDto() { } + public MatDto(String matnr, String maknx, String batch, String specs, String manu, String memo, Double count, Double total) { + this.matnr = matnr; + this.maknx = maknx; + this.batch = batch; + this.specs = specs; + this.manu = manu; + this.memo = memo; + this.count = count; + this.total = total; + } public MatDto(String matNo, String maknx, Double count) { this.matnr = matNo; diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index f109f36..ac59b57 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -72,14 +72,18 @@ // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� mainService.ledExecute(9); // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 - mainService.ledReset(10); + mainService.ledReset(); mainService.outOfDevp(11); - //绌烘墭鐩樿嚜鍔ㄥ嚭搴� -// mainService.autoEmptyOut(); -// //绌烘墭鐩樿嚜鍔ㄥ叆搴� -// mainService.autoEmptyIn(); + if (i>10){ + //绌烘墭鐩樿嚜鍔ㄥ嚭搴� + mainService.autoEmptyOut(); + //绌烘墭鐩樿嚜鍔ㄥ叆搴� + mainService.autoEmptyIn(); + i=0; + } + i++; // 鍏朵粬 ===>> 鍏ュ嚭搴撴ā寮忓垏鎹� // i++; diff --git a/src/main/java/com/zy/core/model/command/LedCommand.java b/src/main/java/com/zy/core/model/command/LedCommand.java index 36685e8..66271c0 100644 --- a/src/main/java/com/zy/core/model/command/LedCommand.java +++ b/src/main/java/com/zy/core/model/command/LedCommand.java @@ -1,5 +1,6 @@ package com.zy.core.model.command; +import com.core.common.Cools; import com.zy.common.model.MatDto; import lombok.Data; @@ -30,4 +31,23 @@ private boolean emptyMk = false; private Integer ioType; + private String barcode; + + @Override + public String toString() { + StringBuffer s = new StringBuffer(); + s.append("宸ヤ綔鍙穂" + this.workNo + "]\n"); + s.append("宸ヤ綔绫诲瀷[" + this.title + "]\n"); + if (!Cools.isEmpty(this.barcode)) { + s.append("鎵樼洏鐮乕" + this.barcode + "]\n"); + } + if (!this.emptyMk){ + + for (MatDto matDto : matDtos) { + s.append("[鍟嗗搧缂栫爜:" + matDto.getMatnr() + ", 鏁伴噺:" + matDto.getCount() + "]\n"); + } + } + + return s.toString(); + } } diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java index 4d14e25..fb69130 100644 --- a/src/main/java/com/zy/core/thread/LedThread.java +++ b/src/main/java/com/zy/core/thread/LedThread.java @@ -36,13 +36,7 @@ public class LedThread implements Runnable, ThreadHandler { private Slave slave; - private Bx5GScreenClient screen; - ProgramBxFile pf; - TextCaptionBxArea area; - DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]); private Set<Integer> workNos = new HashSet<>(); - private boolean ledMk = false; - private boolean resetStatus = false; // 澶嶄綅鐘舵�� // 鏄剧ず鍣� private StringBuffer stringBuffer = new StringBuffer(); @@ -52,20 +46,12 @@ public LedThread(Slave slave) { this.slave = slave; - try { -// Bx5GEnv.initial(3000); -// screen = new Bx5GScreenClient("my"); - } catch (Exception e) { - e.printStackTrace(); - News.info("Led"+" - 1"+" - led杩炴帴鏋勯�犲櫒閿欒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } } @Override @SuppressWarnings({"InfiniteLoopStatement", "unchecked"}) public void run() { // connect(); - close(); while (true) { try { Task task = MessageQueue.poll(SlaveType.Led, slave.getId()); @@ -79,131 +65,24 @@ case 2: reset(); break; - // 鍐欐暟鎹� 娑叉櫠 case 3: - write7((List<LedCommand>)task.getData()); - break; - // 澶嶄綅 娑叉櫠 - case 4: - reset7(); - break; - case 5: error((String) task.getData()); break; - case 6: + case 4: errorReset(); break; default: break; } } - - Thread.sleep(400); + Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } } } - private void write(List<LedCommand> list) throws Bx5GException { - if (!connect()) { - return; - } - pf = new ProgramBxFile( 0, screen.getProfile()); - pf.setFrameShow(false); - // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eight - area = new TextCaptionBxArea( 0,0,96,48, screen.getProfile()); - // 鍒涘缓涓�涓暟鎹〉 - TextBxPage page = new TextBxPage(); - for (LedCommand command : list) { - page.newLine(command.getTitle() +"锛�"+command.getWorkNo()+")"); - page.newLine("搴撲綅锛�"+ (command.getIoType() < 100 ? command.getLocNo() : command.getSourceLocNo())); - page.newLine("鐩爣绔欙細"+command.getStaNo()); - if (!command.isEmptyMk()) { - for (MatDto matDto : command.getMatDtos()) { - //鍘绘帀灏忔暟鐐� - String strQty = matDto.getCount().toString(); - int idx = strQty.lastIndexOf("."); - if(idx >= 0){ - strQty.substring(0,idx); - } - page.newLine(matDto.getMaknx() + "[鏁伴噺" + strQty +"]"); -// page.newLine(matDto.getMaknx() + "銆愭暟閲�" + matDto.getCount() +"銆�"); - } - } - page.newLine("\n"); - } - - // 璁剧疆瀛椾綋 - page.setFont(new Font("瀹嬩綋",Font.PLAIN,12)); - // 璁剧疆鏂囨湰棰滆壊 - page.setForeground(Color.red); - // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑� - page.setDisplayStyle(styles[6]); - area.clearPages(); - area.addPage(page); - pf.addArea(area); - if (pf.validate() != null) { - News.info("Led"+" - 2"+" - pf out of range"); - } else { - // 鏇存柊鑺傜洰 - screen.writeProgram(pf); -// resetStatus = false; - } - close(); - } - - private void reset() throws Bx5GException { - if (!connect()) { - return; - } -// if (resetStatus) { -// return; -// } - pf = new ProgramBxFile( 0, screen.getProfile()); - pf.setFrameShow(false); - // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eight - area = new TextCaptionBxArea( 0,0,96,48, screen.getProfile()); - // 鍒涘缓涓�涓暟鎹〉 - TextBxPage page = new TextBxPage(); - -// List<String> list = null; -// try { -// String ledDefaultMsg = Parameter.get().getLedDefaultMsg(); -// list = JSON.parseArray(ledDefaultMsg, String.class); -// } catch (Exception ignore) { -// } -// if (!Cools.isEmpty(list)) { -// for (String str : list) { -// page.newLine(str); -// } -// } else { -// page.newLine("鑷姩鍖栫珛浣撲粨搴�"); -// page.newLine("瑗挎牸杩堣偂浠芥湁闄愬叕鍙�"); -// } - page.newLine("鍔涙簮鏅鸿兘浠撳偍"); - - // 璁剧疆瀛椾綋 - page.setFont(new Font("瀹嬩綋",Font.PLAIN,13)); - // 璁剧疆鏂囨湰棰滆壊 - page.setForeground(Color.red); - // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑� - page.setDisplayStyle(styles[6]); - area.clearPages(); - area.addPage(page); - pf.addArea(area); - // 鏇存柊鑺傜洰 - if (pf.validate() != null) { - News.info("Led"+" - 3"+" - pf out of range"); - } else { - // 鏇存柊鑺傜洰 - screen.writeProgram(pf); -// resetStatus = true; - } - close(); - } - - private void write7(List<LedCommand> list) { + private void write(List<LedCommand> list) { commandList = list; StringBuilder sb = new StringBuilder(); @@ -213,9 +92,7 @@ sb.append("鐩爣绔欙細").append(command.getStaNo()).append("\n"); if (!command.isEmptyMk()) { for (MatDto matDto : command.getMatDtos()) { - sb.append("鐗╂枡缂栫爜锛�").append(matDto.getMatnr()).append("\n"); - sb.append("鏁伴噺锛�").append(matDto.getCount()).append("\n"); - sb.append("瑙勬牸锛�").append(matDto.getSpecs()).append("\n"); + sb.append(matDto.getSpecs()).append("-").append(matDto.getBatch()).append("\n"); } } sb.append("\n"); @@ -227,7 +104,7 @@ } - private void reset7() { + private void reset() { commandList = null; stringBuffer.delete(0, stringBuffer.length()); @@ -245,238 +122,11 @@ @Override public boolean connect() { - boolean connRes = false; - try { - connRes = screen.connect(slave.getIp(),slave.getPort()); - screen.turnOn(); - } catch (Exception ignore) { - } - if (connRes) { - News.info("Led"+" - 4"+" - led杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } else { - News.error("Led"+" - 5"+" - led杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } - return connRes; + return true; } @Override public void close() { - - } - - - - public static void main(String[] args) throws Exception { - String strQty = "1234"; - int index = strQty.lastIndexOf("."); - if(index>=0) { - strQty=strQty.substring(0, index); - } - System.out.println("2==>>"+strQty); - - Bx5GEnv.initial(3000); - Bx5GScreenClient screen = new Bx5GScreenClient("my"); - DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]); - if (!screen.connect("192.168.10.101",5005)) { - System.err.println("杩炴帴澶辫触锛侊紒锛侊紒"); - return; - } - screen.turnOn(); - - - while (true) { - Thread.sleep(5000L); - - ProgramBxFile pf = new ProgramBxFile( 0, screen.getProfile()); - pf.setFrameShow(false); - // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eigth - TextCaptionBxArea area = new TextCaptionBxArea( 0,0,192,96,screen.getProfile()); - - // 鍒涘缓涓�涓暟鎹〉 - // 绗竴琛屾暟鎹� - TextBxPage page = new TextBxPage("鍑哄簱浠诲姟锛�303锛�"); - page.newLine("婧愬簱浣嶏細0100204"); - page.newLine("鐩爣绔欙細1000"); - // 璁剧疆瀛椾綋 - page.setFont( new Font("瀹嬩綋",Font.PLAIN,15)); - // 璁剧疆鏂囨湰棰滆壊 - page.setForeground(Color.red); - // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑� - page.setDisplayStyle(styles[6]); - area.clearPages(); - area.addPage(page); - pf.addArea( area ); - - // 鏇存柊鑺傜洰 - // 鏇存柊鑺傜洰 - if (pf.validate() != null) { - System.out.println("pf out of range"); - News.info("Led"+" - 6"+" - pf out of range"); - } else { - // 鏇存柊鑺傜洰 - screen.writeProgram(pf); - } - } - - // 缁у紑涓庢帶鍒跺櫒涔嬮棿鐨勯摼鎺� -// screen.disconnect(); - } - - - public static void main1(String[] args) throws Exception { - Bx5GEnv.initial(3000); - // 鍒涘缓screen瀵硅薄锛岀敤浜庡鎺у埗鍣ㄨ繘琛岃闂紝瀹㈡埛绔ā寮� - Bx5GScreenClient screen = new Bx5GScreenClient("my"); - // 鍒涘缓screen瀵硅薄锛岀敤浜庡鎺у埗鍣ㄨ繘琛岃闂紝涓插彛妯″紡 - // Bx5GScreenRS screen = new Bx5GScreenRS("MyScreen"); - - // 鍦ㄥ鎺у埗鍣ㄤ氦浜掍箣鍓嶏紝闇�瑕佸厛涓庢帶鍒跺櫒寤虹珛杩炴帴 - boolean conn = screen.connect("192.168.10.61",5005); - System.out.println(conn); - // 涓庢帶鍒跺櫒浜や簰瀹屾垚鍚庯紝闇�鏂紑涓庢帶鍒跺櫒涔嬮棿鐨勮繛鎺� -// screen.disconnect(); - - // 浠ヤ笅涓轰竴浜涚畝鍗曟帶鍒跺懡浠ょ殑浣跨敤鏂规硶 - // 寮�鍏虫満鍛戒护 -// screen.turnOff();// 鍏虫満 - screen.turnOn();// 寮�鏈� -// screen.syncTime();// 鏍℃椂 -// screen.ping();// ping鍛戒护 -// // 鏌ヨ鎺у埗鍣ㄧ姸鎬� -// screen.checkControllerStatus(); -// // 鏌ヨ鎺у埗鍣ㄥ綋鍓嶅浐浠剁増鏈� -// screen.checkFirmware(); -// // 鏌ヨ鎺у埗鍣ㄥ唴瀛� -// screen.checkMemVolumes(); -// // 閿佸畾灞忓箷褰撳墠鐢婚潰 -// screen.lock(); -// // 瑙i櫎閿佸畾灞忓箷褰撳墠鐢婚潰 -// screen.unlock(); - - Bx5GScreen.Result <ReturnControllerStatus> result1 = - screen.checkControllerStatus(); - if (result1.isOK()) - { - ReturnControllerStatus status = result1.reply; - System.out.println(status.getBrightness()); - System.out.println(status.getRtcDay()); - System.out.println(status.getScreenOnOff()); - // - // status 杩樻湁寰堝鍏朵粬鎺ュ彛锛屽彲浠ユ牴鎹疄闄呴渶姹傚啀娆¤皟鐢ㄤ互鑾峰彇鐩稿簲鐘舵�� - } - -// - // 浠ヤ笅鏄潤鎬佸尯閮ㄥ垎 Demo - - // 鍒涘缓鑺傜洰鏂囦欢 - ProgramBxFile pf = new ProgramBxFile( 0,screen.getProfile() ); -// 鏄惁鏄剧ず鑺傜洰杈规 - pf.setFrameShow(true); -// 鑺傜洰杈规鐨勭Щ鍔ㄩ�熷害 - pf.setFrameSpeed(20); -// 浣跨敤绗嚑涓唴缃竟妗� - pf.loadFrameImage(13); - - DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]); -// 鍒涘缓涓�涓枃鏈尯 - // 鍒嗗埆杈撳叆X锛孻锛寃idth锛宧eigth - // 娉ㄦ剰鍖哄煙鍧愭爣鍜屽搴﹂珮搴︼紝涓嶈瓒婄晫 - TextCaptionBxArea area = new TextCaptionBxArea( 0,0,160,64,screen.getProfile() ); - - // 鍒涘缓涓�涓暟鎹〉 - // 绗竴琛屾暟鎹� - TextBxPage page = new TextBxPage("鍏ュ簱"); - // 绗簩琛屾暟鎹� - page.newLine( "鐗╂枡锛�" ); - page.newLine("鎺ユ敹鍣� RX18 XH 6V 锛堟暟閲忥細2锛�"); - page.newLine("涓帶 BM钃濈墮 鑻辨枃 6V 锛堟暟閲忥細1锛�"); - page.newLine("绾挎潫 S2588-1-XX 鏃犲疄鐗╋紙鏁伴噺锛�5锛�"); - page.newLine("鐩爣搴撲綅锛�0100204"); - // 璁剧疆瀛椾綋 - page.setFont( new Font("瀹嬩綋",Font.PLAIN,12) ); - // 璁剧疆鏄剧ず鐗规妧涓哄揩閫熸墦鍑� - page.setDisplayStyle( styles[2] ); - - // 鏁版嵁椤靛彲浠ユ槸鍥剧墖 -// ImageFileBxPage iPage = new ImageFileBxPage( "E;a/001.bmp" ); -// -// // 鏁版嵁椤靛彲浠ユ槸txt鏂囦欢 -// TextFileBxPage tPage = new TextFileBxPage("E:a/001.txt"); - - // 灏嗗墠闈㈢殑page娣诲姞鍒癮rea涓� area涓彲浠ユ坊鍔犲涓猵age 鍏朵腑page鍙互鏄瓧绗︿覆锛屽彲浠ユ槸txt鏂囦欢锛屽彲浠ユ槸鍥剧墖锛屼笉鍙互鏄〃鏍硷紝濡傛灉闇�瑕丩ed灞忎笂鏄剧ず琛ㄦ牸锛岃鍏堝皢琛ㄦ牸缁樺埗鎴愬浘鐗� - area.addPage( page ); -// area.addPage( iPage ); -// area.addPage( tPage ); - // 灏哸rea娣诲姞鍒拌妭鐩腑 鑺傜洰涓彲浠ユ坊鍔犲涓猘rea - pf.addArea( area ); - - // 鏇存柊鑺傜洰 - screen.writeProgram( pf ); - - - - - - - - - - - // - // 浠ヤ笅鏄姩鎬佸尯閮ㄥ垎 Demo - // 鍔ㄦ�佸尯鐨勭壒鐐� - - // DynamicBxAreaRule(id, runMode, immediatePlay, timeout) - // runMode 杩愯妯″紡锛� - // 0锛氬惊鐜樉绀恒�� - // 1锛氭樉绀哄畬鎴愬悗闈欐鏄剧ず鏈�鍚庝竴椤垫暟鎹�� - // 2锛氬惊鐜樉绀猴紝瓒呰繃璁惧畾鏃堕棿鍚庢暟鎹粛鏈洿鏂版椂涓嶅啀鏄剧ず銆� - // 3锛氬惊鐜樉绀猴紝瓒呰繃璁惧畾鏃堕棿鍚庢暟鎹粛鏈洿鏂版椂鏄剧ず Logo 淇℃伅銆� - // 4锛氬惊鐜樉绀猴紝鏄剧ず瀹屾渶鍚庝竴椤靛悗灏变笉鍐嶆樉绀恒�� - // immediatePlay 鏄惁绔嬪嵆鎾斁锛� - // 0锛氫笌寮傛鑺傜洰涓�璧锋挱鏀俱�� - // 1锛氬紓姝ヨ妭鐩仠姝㈡挱鏀撅紝浠呮挱鏀惧姩鎬佸尯鍩熴�� - // 2锛氬綋鎾斁瀹岃妭鐩紪鍙锋渶楂樼殑寮傛鑺傜洰鍚庢挱鏀捐鍔ㄦ�佸尯鍩熴�� - - // - // 瀹氫箟涓�涓姩鎬佸尯 - // 鍙互閫氳繃ID鏉ユ洿鏂颁笉鍚岀殑鍔ㄦ�佸尯鍐呭, 姝ゅ ID 涓� 0 -// DynamicBxAreaRule dynRule = new DynamicBxAreaRule(0, (byte) 0, (byte) 1, 0); - //dArea.addProgram("P000"); - //dArea.addProgram("P001"); - -// int posX = 440; -// int posY = 4; -// TextCaptionBxArea dAreaContent = new TextCaptionBxArea(posX, posY, 64, 16, screen.getProfile()); -// TextBxPage page = new TextBxPage("鍔ㄦ�佺涓�娆″皾璇�"); -// page.setDisplayStyle(DisplayStyleFactory.getStyle(4)); -// dAreaContent.addPage(page); -// -// // 鍙戦�佸姩鎬佸尯涔嬪墠锛屽鏋滈渶瑕佸垹闄や箣鍓嶇殑鍔ㄦ�佸尯锛屽彲浠ヨ皟鐢ㄤ互涓嬫帴鍙� -// // 閫氬父濡傛灉鍔ㄦ�佸尯鐨勪綅缃垨澶у皬娌℃湁鍙戠敓鏀瑰彉锛屼笉鐢ㄥ垹闄� -// screen.deleteAllDynamic(); -// -// // 鏇存柊鍔ㄦ�佸尯 -// screen.writeDynamic(dynRule, dAreaContent); -// Thread.sleep(15000); -// -// // -// // 涓嬮潰妯℃嫙鍐嶆鏇存柊鍔ㄦ�佸尯 -// page = new TextBxPage("鍐嶆灏濊瘯"); -// TextBxPage page2 = new TextBxPage("鎴愬姛"); -// -// dAreaContent.clearPages(); -// dAreaContent.addPage(page); -// dAreaContent.addPage(page2); -// -// // 鏇存柊鍔ㄦ�佸尯 -// screen.writeDynamic(dynRule, dAreaContent); - - // - // 缁у紑涓庢帶鍒跺櫒涔嬮棿鐨勯摼鎺� - screen.disconnect(); - - } } diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index e16e7e5..a91201c 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -11,6 +11,7 @@ import com.zy.asrs.entity.BasRgvOpt; import com.zy.asrs.service.BasRgvOptService; import com.zy.asrs.service.BasRgvService; +import com.zy.common.utils.News; import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; @@ -19,6 +20,7 @@ import com.zy.core.enums.SlaveType; import com.zy.core.model.RgvSlave; import com.zy.core.model.Task; +import com.zy.core.model.command.CrnCommand; import com.zy.core.model.command.RgvCommand; import com.zy.core.model.protocol.RgvProtocol; import lombok.Data; @@ -342,12 +344,92 @@ OperateResult result = siemensNet.Write("DB100.0", array); - if (command.getAckFinish1() == 0) { - short commandFinish = 1; //宸ヤ綅1浠诲姟鍐欏叆 - Thread.sleep(200); - result = siemensNet.Write("DB100.10", commandFinish); + if (!result.IsSuccess){ + News.error("鍐欏叆RGVplc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===> [id:{}],{}",slave.getId(),JSON.toJSON(command)); + MessageQueue.offer(SlaveType.Rgv,slave.getId(),new Task(4,command)); + Thread.sleep(100); + readStatus(); + return false; } + //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔� + Thread.sleep(400); + try { + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 12); + if (resultRead.IsSuccess){ + RgvCommand one = new RgvCommand(); +// one.setAckFinish1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0)); + one.setTaskNo1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); + one.setTaskMode1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); + one.setSourceStaNo1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); + one.setDestinationStaNo1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8)); + if ( + !command.getTaskNo1().equals(one.getTaskNo1()) || + !command.getTaskMode1().equals(one.getTaskMode1()) || + !command.getSourceStaNo1().equals(one.getSourceStaNo1()) || + !command.getDestinationStaNo1().equals(one.getDestinationStaNo1()) + ){ + try{ + News.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + }catch (Exception e){ + try{ + News.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead)); + }catch (Exception e1){ + News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); + } + } + News.error("Rgv鍛戒护鍥炶澶辫触鍚庯紝閲嶆柊娣诲姞浠诲姟鍒伴槦鍒� ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); + MessageQueue.offer(SlaveType.Rgv, slave.getId(), new Task(4, command)); + Thread.sleep(100); + readStatus(); + return false; + }else { + News.info("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + } + } + }catch (Exception e){ + News.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�"); + } + + if (command.getAckFinish1() == 0) { + if (result.IsSuccess) { + Thread.sleep(300); + //浠诲姟涓嬪彂娆℃暟 + int writeCount2 = 0; + + do { + writeCount2++; + short commandFinish = (short) 1; + result = siemensNet.Write("DB100.10", commandFinish); + if(result.IsSuccess){ + //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔� + Thread.sleep(200); + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.10", (short) 2); + if (resultRead.IsSuccess) { + commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); + if (commandFinish != 1){ + News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + }else{ + //浠诲姟鍛戒护鍐欏叆鎴愬姛 + News.info("RGV浠诲姟纭浣�"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + break; + } + }else { + News.error("RGV浠诲姟纭浣�"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + } + } else { + News.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + } + }while (writeCount2<5); + } + } + +// if (command.getAckFinish1() == 0) { +// short commandFinish = 1; //宸ヤ綅1浠诲姟鍐欏叆 +// Thread.sleep(200); +// result = siemensNet.Write("DB100.10", commandFinish); +// } + try { // 鏃ュ織璁板綍 BasRgvOptService bean = SpringUtils.getBean(BasRgvOptService.class); diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 1865943..fd32e52 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -231,12 +231,12 @@ } } BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class); - //RGV灏忚溅 - Thread.sleep(200); + //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) && basRgvMap.getStartRoute() == 100){ + if (!Cools.isEmpty(basRgvMap)){ Integer siteId = 1; StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { @@ -248,12 +248,12 @@ staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 8))); } } - //RGV灏忚溅 - Thread.sleep(200); + //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) && (basRgvMap.getStartRoute() == 161 || basRgvMap.getStartRoute() == 157)){ + if (!Cools.isEmpty(basRgvMap)){ Integer siteId = 2; StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { @@ -266,6 +266,24 @@ } } + //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)); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 874489d..0cdf7d1 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -198,33 +198,33 @@ devpPlcId: ${wcs-slave.devp[0].id} staNo: 103 # RGV绌挎杞�2 -# rgv[2]: -# id: 3 -# ip: 10.10.10.66 -# port: 502 -# rack: 0 -# slot: 0 -# #RGV鍏ュ簱婧愮珯鐐� -# rgvInSStn[0]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 100 -# rgvInSStn[1]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 101 -# #RGV鍑哄簱婧愮珯鐐� -# rgvOutSStn[0]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 110 -# rgvOutSStn[1]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 112 -# #RGV鐩爣绔欑偣 -# rgvDestStn[0]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 102 -# rgvDestStn[1]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 103 + rgv[2]: + id: 3 + ip: 10.10.10.66 + port: 502 + rack: 0 + slot: 0 + #RGV鍏ュ簱婧愮珯鐐� + rgvInSStn[0]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 100 + rgvInSStn[1]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 101 + #RGV鍑哄簱婧愮珯鐐� + rgvOutSStn[0]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 110 + rgvOutSStn[1]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 112 + #RGV鐩爣绔欑偣 + rgvDestStn[0]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 102 + rgvDestStn[1]: + devpPlcId: ${wcs-slave.devp[0].id} + staNo: 103 # 杈撻�佺嚎1 devp[0]: id: 1 @@ -246,32 +246,43 @@ led: ${wcs-slave.led[1].id} # 鎷f枡鍏ュ簱鍙�1 pickSta[0]: - staNo: 106 - barcode: ${wcs-slave.barcode[0].id} - led: ${wcs-slave.led[1].id} - backSta: 105 + staNo: 159 + barcode: ${wcs-slave.barcode[2].id} + led: ${wcs-slave.led[5].id} + backSta: 160 # 鍏ュ簱鍙�1 inSta[1]: staNo: 107 barcode: ${wcs-slave.barcode[1].id} backSta: 108 - led: ${wcs-slave.led[1].id} + led: ${wcs-slave.led[2].id} # 绌烘澘鍏ュ簱鍙�1 emptyInSta[1]: staNo: 107 barcode: ${wcs-slave.barcode[1].id} backSta: 108 - led: ${wcs-slave.led[1].id} - # 鎷f枡鍏ュ簱鍙�1 - pickSta[1]: - staNo: 107 - barcode: ${wcs-slave.barcode[1].id} - led: ${wcs-slave.led[1].id} - backSta: 108 + led: ${wcs-slave.led[2].id} + inSta[2]: + staNo: 159 + barcode: ${wcs-slave.barcode[2].id} + backSta: 160 + led: ${wcs-slave.led[5].id} +# # 鎷f枡鍏ュ簱鍙�1 +# pickSta[1]: +# staNo: 107 +# barcode: ${wcs-slave.barcode[1].id} +# led: ${wcs-slave.led[1].id} +# backSta: 108 # 鍑哄簱鍙�1 outSta[0]: staNo: 100 led: ${wcs-slave.led[0].id} + outSta[1]: + staNo: 152 + led: ${wcs-slave.led[3].id} + outSta[2]: + staNo: 156 + led: ${wcs-slave.led[4].id} # 鏉$爜鎵弿浠�1 barcode[0]: @@ -291,35 +302,42 @@ # LED1 led[0]: id: 1 - ip: 10.10.10.249 + ip: 10.10.10.101 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 100 # LED2 led[1]: id: 2 - ip: 10.10.10.248 + ip: 10.10.10.102 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 106 # LED3 led[2]: id: 3 - ip: 10.10.10.247 + ip: 10.10.10.103 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 107 # LED4 led[3]: id: 4 - ip: 10.10.10.246 + ip: 10.10.10.104 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} - staArr: 126 + staArr: 152 # LED5 led[4]: id: 5 - ip: 10.10.10.245 + ip: 10.10.10.105 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} - staArr: 134 \ No newline at end of file + staArr: 156 + # LED6 + led[5]: + id: 6 + ip: 10.10.10.106 + port: 5005 + devpPlcId: ${wcs-slave.devp[0].id} + staArr: 160 \ No newline at end of file diff --git a/src/main/resources/mapper/BasRgvMapMapper.xml b/src/main/resources/mapper/BasRgvMapMapper.xml index c7374a1..bee3fae 100644 --- a/src/main/resources/mapper/BasRgvMapMapper.xml +++ b/src/main/resources/mapper/BasRgvMapMapper.xml @@ -17,5 +17,9 @@ select * from asr_bas_rgv_map where rgv_no = #{rgvNo} </select> + <select id="selectByOtherRgvNo" resultMap="BaseResultMap"> + select * from asr_bas_rgv_map + where rgv_no != #{rgvNo} + </select> </mapper> diff --git a/src/main/webapp/static/js/console.map.js b/src/main/webapp/static/js/console.map.js index ef61ea5..0277f5f 100644 --- a/src/main/webapp/static/js/console.map.js +++ b/src/main/webapp/static/js/console.map.js @@ -625,11 +625,19 @@ "left": 270, "width": 6, "height": 742 + },{ + "type": "stn", + "id": "site-3", + "text": "3", + "top": -20, + "left": 220, + "width": 60, + "height": 19 }, { "type": "stn", "id": "site-2", "text": "2", - "top": 398, + "top": -20, "left": 220, "width": 60, "height": 19 @@ -637,7 +645,7 @@ "type": "stn", "id": "site-1", "text": "1", - "top": 698, + "top": -20, "left": 220, "width": 60, "height": 19 diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html index 4678401..91ea99a 100644 --- a/src/main/webapp/views/console.html +++ b/src/main/webapp/views/console.html @@ -568,7 +568,7 @@ siteEl.html(sites[i].siteId); } - if (sites[i].siteId === '1' || sites[i].siteId === '2') { + if (sites[i].siteId === '1' || sites[i].siteId === '2' || sites[i].siteId === '3') { carAnimate(Number(sites[i].siteId), Number(sites[i].nearbySta)); } @@ -715,7 +715,7 @@ function carAnimate(id, target) { // debugger var targetTop = 0; - if (id === 1 || id === '1' || id === '2' || id === 2) { + if (id === 1 || id === '1' || id === '2' || id === 2 || id === '3' || id === 3) { switch (target) { case 1: targetTop += 792; diff --git a/src/main/webapp/views/rgv.html b/src/main/webapp/views/rgv.html index b679a84..902a27e 100644 --- a/src/main/webapp/views/rgv.html +++ b/src/main/webapp/views/rgv.html @@ -166,10 +166,10 @@ <!-- <span>鎺�</span>--> <!-- <label><input id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>--> <!-- </div>--> - <div class="select-container-item"> - <span>宸ヤ綅2婧愮珯</span> - <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> - </div> +<!-- <div class="select-container-item">--> +<!-- <span>宸ヤ綅2婧愮珯</span>--> +<!-- <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>--> +<!-- </div>--> <!-- <div class="select-container-item">--> <!-- <span>灞�</span>--> <!-- <label><input id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>--> @@ -188,10 +188,10 @@ <!-- <span>鎺�</span>--> <!-- <label><input id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>--> <!-- </div>--> - <div class="select-container-item"> - <span>宸ヤ綅2鐩爣绔�</span> - <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label> - </div> +<!-- <div class="select-container-item">--> +<!-- <span>宸ヤ綅2鐩爣绔�</span>--> +<!-- <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>--> +<!-- </div>--> <!-- <div class="select-container-item">--> <!-- <span>灞�</span>--> <!-- <label><input id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>--> @@ -206,8 +206,8 @@ <legend>鎵嬪姩鎿嶄綔</legend> <div class="button-group"> <button class="item" onclick="put()">鍙栨斁璐�</button> - <button class="item" onclick="take()">鍙栬揣</button> - <button class="item" onclick="stockMove()">鏀捐揣</button> +<!-- <button class="item" onclick="take()">鍙栬揣</button>--> +<!-- <button class="item" onclick="stockMove()">鏀捐揣</button>--> <!-- <button class="item" onclick="siteMove()">绔欏埌绔�</button>--> <!-- <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>--> <!-- <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>--> @@ -215,7 +215,7 @@ <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button> <!-- <button class="item" onclick="pause()">鏆傚仠</button>--> <!-- <button class="item" onclick="boot()">鍚姩</button>--> - <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button> +<!-- <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button>--> <button class="item" onclick="handleReset()">澶嶄綅</button> </div> </fieldset> -- Gitblit v1.9.1