From fb74f60f1d8397acf5251ae289e80ab8a056857f Mon Sep 17 00:00:00 2001 From: 1 <1> Date: 星期四, 09 十月 2025 09:08:05 +0800 Subject: [PATCH] #和得服务器 --- src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java | 9 src/main/java/com/zy/asrs/entity/BasRgv.java | 29 ++ src/main/java/com/zy/asrs/controller/RgvController.java | 8 src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java | 12 + src/main/java/com/zy/asrs/utils/RouteUtils.java | 2 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 307 +++++++++++++++++++----------- src/main/webapp/views/rgv.html | 36 ++- src/main/java/com/zy/asrs/service/BasRgvService.java | 1 src/main/java/com/zy/asrs/service/WrkMastStaService.java | 4 src/main/resources/mapper/WrkMastStaMapper.xml | 9 src/main/java/com/zy/core/thread/RgvThread.java | 57 ++++- src/main/java/com/zy/core/MainProcess.java | 2 src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java | 4 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 100 +++++++-- src/main/resources/application.yml | 2 15 files changed, 407 insertions(+), 175 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java index 380b8ca..35ede00 100644 --- a/src/main/java/com/zy/asrs/controller/RgvController.java +++ b/src/main/java/com/zy/asrs/controller/RgvController.java @@ -98,6 +98,14 @@ vo.setRgvPos1(rgvProtocol.getRgvPosI2()); vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅"); vo.setPakMk(rgvThread.isPakMk() ? "鏃犻攣" : "閿佸畾"); +// vo.setPakIn(rgvThread.isPakIn() ? "鍙叆" : "涓嶅彲鍏�"); +// vo.setPakOut(rgvThread.isPakOut() ? "鍙嚭" : "涓嶅彲鍑�"); +// vo.setPakRgv(rgvThread.isPakRgv() ? "鏃犻攣" : "閿佸畾"); + vo.setPaking(rgvThread.isPaking()? "鏃犻攣" : "閿佸畾"); +// vo.setPakAll(rgvThread.isPakAll() ? "鏃犻攣" : "閿佸畾"); +// vo.setPakToCrn(rgvThread.isPakToCrn() ? "鏃犻攣" : "閿佸畾"); + + vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙� // vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵�� vo.setLoading2(rgvProtocol.getLoaded2() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅2鏈夌墿 diff --git a/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java b/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java index 020f874..2d9ba0f 100644 --- a/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java +++ b/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java @@ -49,5 +49,17 @@ private Integer RgvPos1 = 0; private String pakMk="-"; + private String pakIn="-"; + + private String pakOut="-"; + + private String pakRgv="-"; + + private String pakToCrn="-"; + + private String paking="-"; + + private String pakAll="-"; + } diff --git a/src/main/java/com/zy/asrs/entity/BasRgv.java b/src/main/java/com/zy/asrs/entity/BasRgv.java index 6cbfd58..499ec7f 100644 --- a/src/main/java/com/zy/asrs/entity/BasRgv.java +++ b/src/main/java/com/zy/asrs/entity/BasRgv.java @@ -118,9 +118,30 @@ @ApiModelProperty(value= "澶囨敞") private String memo; + + @ApiModelProperty(value = "鍏ュ簱鏍囪(1=鍚敤,0=绂佺敤)") + private String pakIn; + + @ApiModelProperty(value = "鍑哄簱鏍囪(1=鍚敤,0=绂佺敤)") + private String pakOut; + + @ApiModelProperty(value = "璺濈璺宠繃鍙栬揣鏍囪(1=鍚敤,0=绂佺敤)") + private String pakRgv; + + @ApiModelProperty(value = "鎺ラ┏鏍囪(1=鍚敤,0=绂佺敤)") + private String pakToCrn; + + @ApiModelProperty(value = "鎺ラ┏鏍囪(1=鍚敤,0=绂佺敤)") + private String paking; + + @ApiModelProperty(value = "鎺ラ┏鏍囪(1=鍚敤,0=绂佺敤)") + private String pakAll; + + public BasRgv() {} - public BasRgv(Integer rgvNo, String inEnable, String outEnable, Integer rgvSts, Integer wrkNo1, Integer wrkNo2, Long rgvErr, String pakMk, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) { + public BasRgv(Integer rgvNo, String inEnable, String outEnable, Integer rgvSts, Integer wrkNo1, Integer wrkNo2, Long rgvErr, String pakMk, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo, + String pakIn, String pakOut,String pakRgv,String pakToCrn,String paking,String pakAll) { this.rgvNo = rgvNo; this.inEnable = inEnable; this.outEnable = outEnable; @@ -135,6 +156,12 @@ this.updateBy = updateBy; this.updateTime = updateTime; this.memo = memo; + this.pakIn = pakIn; + this.pakOut = pakOut; + this.pakRgv = pakRgv; + this.pakToCrn = pakToCrn; + this.paking = paking; + this.pakAll = pakAll; } // BasRgv basRgv = new BasRgv( diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java index 8fcaed7..035f082 100644 --- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java +++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java @@ -40,5 +40,7 @@ List<WrkMastSta> selectByWorkStaList(@Param("workSta") Integer workSta, @Param("rgvNo") Short rgvNo); WrkMastSta selectByWorkSta(@Param("workSta") Integer workSta, @Param("rgvNo") Integer rgvNo); - List<WrkMastSta> selectLockWrk(@Param("rgvNo") Integer rgvNo); + List<WrkMastSta> selectLockWrk(); + List<WrkMastSta> selectLockWrkT(); + } diff --git a/src/main/java/com/zy/asrs/service/BasRgvService.java b/src/main/java/com/zy/asrs/service/BasRgvService.java index 29dac13..69e0167 100644 --- a/src/main/java/com/zy/asrs/service/BasRgvService.java +++ b/src/main/java/com/zy/asrs/service/BasRgvService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.service.IService; import com.zy.asrs.entity.BasRgv; +import com.zy.common.utils.RedisUtil; public interface BasRgvService extends IService<BasRgv> { diff --git a/src/main/java/com/zy/asrs/service/WrkMastStaService.java b/src/main/java/com/zy/asrs/service/WrkMastStaService.java index cd5e055..7d643f6 100644 --- a/src/main/java/com/zy/asrs/service/WrkMastStaService.java +++ b/src/main/java/com/zy/asrs/service/WrkMastStaService.java @@ -6,5 +6,7 @@ import java.util.List; public interface WrkMastStaService extends IService<WrkMastSta> { - List<WrkMastSta> selectLockWrk(Integer rgvNo); + List<WrkMastSta> selectLockWrk(); + List<WrkMastSta> selectLockWrkT(); + } 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 3192f64..d770187 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; import com.core.common.DateUtils; +import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.ArmOrderAssignmentParam; @@ -197,7 +198,9 @@ wrkNo++; staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); + staProtocol.setPakMk(false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + System.out.println(staProtocol); log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); } @@ -244,6 +247,11 @@ int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo())); if (wrkNo1 != 0){ News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); + StaProtocol staProtocolNew = new StaProtocol(); + staProtocolNew.setWorkNo(wrkNo1); + staProtocolNew.setStaNo(RouteUtils.SouStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo())); + staProtocolNew.setSiteId(staProtocol.getSiteId()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew)); if (ledThread != null) { News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯"); MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�="+ wrkMast.getWrkNo())); @@ -1351,7 +1359,7 @@ // if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") // && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { - if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") + if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && !staProtocol.isLoading() ) { // if (slave.getId() == 1 || slave.getId() == 2){ // if (staProtocol.isLoading() || staProtocol.getWorkNo() != 0 || !staProtocol.isOutEnable()){ @@ -3053,18 +3061,21 @@ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId()); continue; } + if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){ + rgvThread.setPaking(true); + } //灏忚溅鏃犱换鍔℃椂璺宠繃 if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){ continue; } if(!rgvThread.isPaking()){ continue; + } - List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(rgv.getId()); - if(wrkMastStaLock.size() == 1){ + if(!basRgv.getPakAll().equals("1")){ continue; } - if(rgvThread.isPakIn()){ + if(basRgv.getPakIn().equals("1")){ for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣 boolean flag = false; @@ -3121,9 +3132,11 @@ } } + basRgv.setPakRgv("1"); + basRgvService.updateById(basRgv); } //鍑哄簱鏀捐揣 - if( rgvThread.isPakOut()){ + if( basRgv.getPakOut().equals("1")){ for(RgvSlave.RgvStn rgvStn : rgv.getRgvOutPStn()){//鍏ュ簱鏀捐揣绔欑偣 boolean flag = false; @@ -3155,7 +3168,7 @@ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� Integer workNo = 0; - if(rgvThread.isPakToCrn()){ + if(basRgv.getPakToCrn().equals("1")){ workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2(); //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀� }else{ workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2():rgvProtocol.getTaskNo1(); //鎺ラ┏鎯呭喌浼樺厛宸ヤ綅2鏀� @@ -3183,8 +3196,9 @@ } } + basRgv.setPakRgv("1"); + basRgvService.updateById(basRgv); } - rgvThread.setPakRgv(true);//浼樺厛鏀捐揣瀹屾垚锛屽紑鍚璋冨害 } } /** @@ -3196,6 +3210,11 @@ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); if (rgvProtocol == null) { + continue; + } + BasRgv basRgv = basRgvService.selectById(rgv.getId()); + if (basRgv == null) { + log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId()); continue; } Long taskNo1 = Long.valueOf(rgvProtocol.getTaskNo1()); @@ -3221,11 +3240,22 @@ && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 && !rgvProtocol.isLoaded1ing() && !rgvProtocol.isLoaded2ing()){ - rgvThread.setPakRgv(true); + List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(); + List<WrkMastSta> wrkMastStaLockT = wrkMastStaService.selectLockWrkT(); + + if(wrkMastStaLock.size() > 0 && rgvProtocol.getRgvNo() == 1){ + continue ; + } + if(wrkMastStaLockT.size() > 0 && rgvProtocol.getRgvNo() == 2){ + continue ; + } + basRgv.setPakRgv("1"); + basRgv.setPakToCrn("1"); + basRgv.setPakIn("1"); + basRgv.setPakOut("1"); + basRgv.setPakAll("1"); + basRgvService.updateById(basRgv); rgvThread.setPakMk(true); - rgvThread.setPakIn(true); - rgvThread.setPakOut(true); - rgvThread.setPakToCrn(true); } } @@ -3243,39 +3273,53 @@ if (rgvProtocol == null) { continue; } + BasRgv basRgv = basRgvService.selectById(rgv.getId()); if (basRgv == null) { log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId()); continue; } if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){ -// log.error("瑙i攣"); rgvThread.setPaking(true); } + if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){ + basRgv.setPakAll("1"); + basRgvService.updateById(basRgv); + } // 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� - if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn() && rgvThread.isPaking()) { + if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && + rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() + && basRgv.getPakToCrn().equals("1") && rgvThread.isPaking()) { News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�"); // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 // rgvRunWrkMastInTest(); if (rgvProtocol.getLastIo().equals("I")) { - if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) { + if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) { //mark - 1 - .... - this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱 + if (rgvProtocol.getTaskNo1()==0){ + this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱 + } rgvProtocol.setLastIo("O"); - } else if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) { + } else if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) { //mark - 2 - .... - this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱 + if (rgvProtocol.getTaskNo2()==0){ + this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱 + } rgvProtocol.setLastIo("I"); } } // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡 else if (rgvProtocol.getLastIo().equals("O")) { - if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) { - this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱 + if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) { + if (rgvProtocol.getTaskNo2()==0){ + this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱 + } rgvProtocol.setLastIo("I"); - } else if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) { - this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱 + } else if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) { + if (rgvProtocol.getTaskNo1()==0){ + this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱 + } rgvProtocol.setLastIo("O"); } } @@ -3285,9 +3329,9 @@ if(wrkMastSta1 != null && wrkMastSta2 != null){ rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹� } - if(!rgvThread.isPakToCrn()){ - rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟 - } +// if(!rgvThread.isPakToCrn()){ +// rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟 +// } // if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){ // rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣 // } @@ -3344,6 +3388,11 @@ public synchronized void rgvRunWrkMastIn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark) { for (RgvSlave.RgvStn rgvStn : slave.getRgvInTStn()) {//rgv鍏ュ簱鍙栬揣绔欑偣 boolean flag = false; + BasRgv basRgv = basRgvService.selectById(slave.getId()); + if (basRgv == null) { + log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId()); + continue; + } //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); @@ -3409,7 +3458,10 @@ result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣 } if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣 - rgvThread.setPakRgv(false); + basRgv.setPakRgv("0"); + basRgvService.updateById(basRgv); + +// rgvThread.setPakRgv(false); continue; } wrkMastSta.setWorkSta(wrkMastSta2 !=null ? 1 : 2); @@ -3419,6 +3471,9 @@ if (sign){ if(wrkMastSta3 != null){ wrkMastSta3.setMk(1); + basRgv.setPakAll("0"); + basRgvService.updateById(basRgv); + try{ wrkMastStaMapper.updateById(wrkMastSta3); log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); @@ -3427,8 +3482,12 @@ } } + basRgv.setPakOut("0"); + basRgvService.updateById(basRgv); rgvThread.setPaking(false); - rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁� +// rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁� +// basRgvService.updateById(basRgv); + try{ wrkMastSta.setWrkSts(1); wrkMastStaMapper.updateById(wrkMastSta); @@ -3453,6 +3512,11 @@ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); + BasRgv basRgv = basRgvService.selectById(slave.getId()); + if (basRgv == null) { + log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId()); + continue; + } StaProtocol staProtocol2 = null; WrkMastSta wrkMastSta3 = null; @@ -3515,7 +3579,10 @@ result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣 } if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣 - rgvThread.setPakRgv(false); + basRgv.setPakRgv("0"); + basRgvService.updateById(basRgv); + +// rgvThread.setPakRgv(false); continue; } wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣� @@ -3524,7 +3591,10 @@ sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){ - rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔� + basRgv.setPakToCrn("0"); + basRgvService.updateById(basRgv); + +// rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔� } if(wrkMastSta3 != null){ wrkMastSta3.setMk(1); @@ -3536,8 +3606,11 @@ } } + basRgv.setPakIn("0"); + basRgvService.updateById(basRgv); + rgvThread.setPaking(false); - rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� +// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� try{ wrkMastSta.setWrkSts(1); wrkMastStaMapper.updateById(wrkMastSta); @@ -3556,94 +3629,94 @@ /** * 灏忚溅鍑哄簱鎺ラ┏浠诲姟鍙栬揣涓嬪彂 */ - public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){ - for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣 - boolean flag = false; - //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); - StaProtocol staProtocol2 = null; - if(rgvStn.getStaNo2()!= null ){ - staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2()); - if (staProtocol2 == null) { - News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); - continue; - } else { - staProtocol2 = staProtocol2.clone(); - } - BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2()); - if (staDetl2 == null) { - News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); - continue; - } - } - if (staProtocol == null) { - News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); - continue; - } else { - staProtocol = staProtocol.clone(); - } - - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo()); - if (staDetl == null) { - News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); - continue; - } - - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 - && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) { - flag = true; - } - if (!flag) { - News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):" - + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading() - + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable() - + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting()); - continue; - } - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - List<Integer> route = new ArrayList<>(); - switch (rgvProtocol.getRgvNo()){ - case 1: route = RouteUtils.getRouteOne();break; - case 2: route = RouteUtils.getRouteTwo();break; - } - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 - if( null == wrkMastSta ) { - News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); - continue; - } - WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1()); - boolean result = false; - if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠� - result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣 - } - if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣 - rgvThread.setPakRgv(false); - continue; - } - wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣� - wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo()); - boolean sign = false; - sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 - if (sign){ - rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� - try{ - wrkMastSta.setWrkSts(1); - wrkMastStaMapper.updateById(wrkMastSta); - log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); - }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); - } - } else { - log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); - } - - - } - } +// public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){ +// for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣 +// boolean flag = false; +// //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣 +// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); +// StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); +// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); +// StaProtocol staProtocol2 = null; +// if(rgvStn.getStaNo2()!= null ){ +// staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2()); +// if (staProtocol2 == null) { +// News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); +// continue; +// } else { +// staProtocol2 = staProtocol2.clone(); +// } +// BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2()); +// if (staDetl2 == null) { +// News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); +// continue; +// } +// } +// if (staProtocol == null) { +// News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); +// continue; +// } else { +// staProtocol = staProtocol.clone(); +// } +// +// // 鏌ヨ绔欑偣璇︾粏淇℃伅 +// BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo()); +// if (staDetl == null) { +// News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); +// continue; +// } +// +// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 +// && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) { +// flag = true; +// } +// if (!flag) { +// News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):" +// + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading() +// + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable() +// + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting()); +// continue; +// } +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// List<Integer> route = new ArrayList<>(); +// switch (rgvProtocol.getRgvNo()){ +// case 1: route = RouteUtils.getRouteOne();break; +// case 2: route = RouteUtils.getRouteTwo();break; +// } +// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� +// WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 +// if( null == wrkMastSta ) { +// News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); +// continue; +// } +// WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1()); +// boolean result = false; +// if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠� +// result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣 +// } +// if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣 +// rgvThread.setPakRgv(false); +// continue; +// } +// wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣� +// wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo()); +// boolean sign = false; +// sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 +// if (sign){ +// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� +// try{ +// wrkMastSta.setWrkSts(1); +// wrkMastStaMapper.updateById(wrkMastSta); +// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); +// }catch (Exception e){ +// log.error("鏇存柊灏忚溅浠诲姟澶辫触"); +// } +// } else { +// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); +// } +// +// +// } +// } /** * 鎵ц灏忚溅鎼繍浠诲姟 * diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java index 32717ff..4c0ffab 100644 --- a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java @@ -11,8 +11,11 @@ @Service("wrkMastStaService") public class WrkMastStaServiceImpl extends ServiceImpl<WrkMastStaMapper, WrkMastSta> implements WrkMastStaService { @Override - public List<WrkMastSta> selectLockWrk(Integer rgvNo){ - Integer rgvNo1 = rgvNo; - return this.baseMapper.selectLockWrk(rgvNo); + public List<WrkMastSta> selectLockWrk(){ + return this.baseMapper.selectLockWrk(); + } + @Override + public List<WrkMastSta> selectLockWrkT(){ + return this.baseMapper.selectLockWrkT(); } } diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java index aa3e001..a472b6e 100644 --- a/src/main/java/com/zy/asrs/utils/RouteUtils.java +++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java @@ -50,7 +50,7 @@ //1妤兼垬绔欑偣 public static final List<Integer> TRACK_POSITION_ONE = Arrays.asList( 1004, 1007, 1010, 1014, 1018, 1021, 1024, 1028, 1031, 1035,1042,1105,1106,1041, - 1038,1036 + 1038,1036,1108,1109 ); //2妤兼垬绔欑偣 public static final List<Integer> TRACK_POSITION_TWO = Arrays.asList( diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 85c5b9f..1502c9b 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -132,7 +132,7 @@ try{ //RGV灏忚溅鍑哄叆搴撳彇璐т笅鍙� mainService.rgvIoExecute(11); - if(k > 2){ + if(k > 3){ mainService.rgvOutExecute(); k = 0; } diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index c41d911..988a264 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -5,6 +5,7 @@ import HslCommunication.Profinet.Siemens.SiemensPLCS; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SpringUtils; @@ -35,6 +36,7 @@ import lombok.Data; import lombok.extern.slf4j.Slf4j; +import java.sql.Wrapper; import java.text.MessageFormat; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -64,15 +66,17 @@ //閿佸畾鏍囪 private boolean PakMk = true; //鍏ュ簱鏍囪 - private boolean PakIn = true; - //鍑哄簱鏍囪 - private boolean PakOut = true; - //鏍规嵁璺濈璺宠繃鍙栬揣 - private boolean PakRgv = true; - //鎺ラ┏鏍囪 - private boolean PakToCrn = true; +// private boolean PakIn = true; +// //鍑哄簱鏍囪 +// private boolean PakOut = true; +// //鏍规嵁璺濈璺宠繃鍙栬揣 +// private boolean PakRgv = true; +// //鎺ラ┏鏍囪 +// private boolean PakToCrn = true; // 浠诲姟閿佸畾 - private boolean Paking = true; + private boolean Paking = true; +// //杩炵画浠诲姟涓嬪彂 +// private boolean PakAll = true; public RgvThread(RgvSlave slave) { this.slave = slave; @@ -234,6 +238,40 @@ buffer[byteIndex] &= ~(1 << bitIndex); // 娓呴浂 } } + private void updateFlagInDb(String field, boolean value) { + try { + BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class); + + EntityWrapper<BasRgv> wrapper = new EntityWrapper<>(); + wrapper.eq("rgv_no", slave.getId()); + + BasRgv entity = new BasRgv(); + switch (field) { + case "pak_mk": entity.setPakMk(value ? "1" : "0"); break; + case "pak_in": entity.setPakIn(value ? "1" : "0"); break; + case "pak_out": entity.setPakOut(value ? "1" : "0"); break; + case "pak_rgv": entity.setPakRgv(value ? "1" : "0"); break; + case "pak_to_crn":entity.setPakToCrn(value ? "1" : "0"); break; + case "paking":entity.setPaking(value ? "1" : "0"); break; + case "pak_all":entity.setPakAll(value ? "1" : "0"); break; + default: + log.warn("鏈煡鏍囧織浣嶅瓧娈�: {}", field); + return; + } + + basRgvService.update(entity, wrapper); +// log.info("RGV鏍囧織浣嶆洿鏂版垚鍔� [rgv_no:{}] {}={}", slave.getId(), field, value ? "1" : "0"); + + } catch (Exception e) { + log.error("鏇存柊RGV鏍囧織浣嶅紓甯� [rgv_no:{}] {}={} 閿欒锛歿}", slave.getId(), field, value, e.getMessage()); + } + } + + + public void setPakMk(boolean pakMk) { + this.PakMk = pakMk; + updateFlagInDb("pak_mk", pakMk); + } /** * 璇诲彇鐘舵�� @@ -274,8 +312,7 @@ rgvProtocol.setErr10(status3[1]); rgvProtocol.setErr11(status3[2]); rgvProtocol.setErr12(status3[3]); - BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class); - +// BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class); OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId())); try { // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index f146152..8a804a7 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -107,7 +107,17 @@ put(1101, 2508);put(1102, 2600);put(1103, 2692);put(1104, 2784);put(1105, 2876); put(1106, 2968);put(1107, 3060);put(1108, 3152);put(1109, 3244);put(1110, 3336); + put(2001, 392);put(2002, 116);put(2003, 208);put(2004, 0);put(2005, 300); + put(2006, 508);put(2007, 692);put(2008, 600);put(2009, 808);put(2010, 992); + put(2011, 900);put(2012, 1108);put(2013, 1500);put(2014, 1292);put(2015, 1200); + put(2016, 1384);put(2017, 1616);put(2018, 1708);put(2019, 1800);put(2020, 1916); + put(2021, 2008);put(2022, 2100);put(2023, 2216);put(2024, 2308);put(2025, 2400); + put(2026, 2516);put(2027, 2608);put(2028, 2792);put(2029, 2700);put(2030, 2908); + put(2031, 464);put(2032, 348);put(2033, 556);put(2034, 92);put(2035, 0); + put(2037, 256); + put(4001, 0);put(4002, 116);put(4003, 508);put(4004, 392);put(4005, 300); + put(4006, 208); // 鍏朵粬绔欑偣鍚岀悊缁х画鍔� }}; @@ -118,11 +128,11 @@ // 鐗规畩绔欑偣闆嗗悎 private static final Set<Integer> specialSites = new HashSet<>( - Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039)); + Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039,2004,2001,2007,2010,2016,2013,2019,2022,2025,2030,4001,4004)); // 鐗规畩绔欑偣闆嗗悎 private static final Set<Integer> specialSites2 = new HashSet<>( - Arrays.asList(1051,1055,1057,1065,1067,1069,1077,1081,1083,1086,1089,1092,1095,1097,1100)); + Arrays.asList(1051,1055,1057,1065,1067,1069,1077,1081,1083,1086,1089,1092,1095,1097,1100,2034)); private static final Set<Integer> specialSites3 = new HashSet<>(//鏈烘鑷傜珯鐐� Arrays.asList(1098,1093,1087,1082,1074,1071,1061,1058)); @@ -250,7 +260,7 @@ staProtocol.setEmptyMk(false); // 绌烘澘淇″彿 staProtocol.setStaNo((short) 0); // 鐩爣绔� - if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { + if (!staProtocol.isPakMk() && staProtocol.isLoading()) { staProtocol.setPakMk(true); } } @@ -287,12 +297,25 @@ ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); OperateResultExOne<byte[]> result = null; - OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028 - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037 - OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB104.0", (short) (1268));//1042-1053 - OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079 - OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110 - OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB3.0", (short) (536));//1080-1110 + OperateResultExOne<byte[]> result1 = null; + OperateResultExOne<byte[]> result2 = null;//1029-1037 + OperateResultExOne<byte[]> result3 = null;//1042-1053 + OperateResultExOne<byte[]> result4 = null;//1054-1079 + OperateResultExOne<byte[]> result5 = null;//1080-1110 + OperateResultExOne<byte[]> resultErr = null;//1080-1110 + if(staNoSize == 99){ + result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028 + result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037 + result3 = siemensS7Net.Read("DB104.0", (short) (1268));//1042-1053 + result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079 + result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110 + resultErr = siemensS7Net.Read("DB3.0", (short) (536));//1080-1110 + }else{ + result1 = siemensS7Net.Read("DB200.0", (short) (3000));//2001-2030 + result2 = siemensS7Net.Read("DB201.0", (short) (720));//2031-2037 + result3 = siemensS7Net.Read("DB400.0", (short) (600));//4001-4006 + } + @@ -305,16 +328,26 @@ staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } - if(siteId < 1029){ - result = result1; - }else if(siteId < 1042){ - result = result2; - }else if(siteId < 1054){ - result = result3; - }else if(siteId < 1080){ - result = result4; - }else if(siteId < 1111){ - result = result5; + if (staNoSize == 99) { + if (siteId < 1029) { + result = result1; + } else if (siteId < 1042) { + result = result2; + } else if (siteId < 1054) { + result = result3; + } else if (siteId < 1080) { + result = result4; + } else if (siteId < 1111) { + result = result5; + } + }else{ + if (siteId < 2031) { + result = result1; + } else if (siteId < 4001) { + result = result2; + } else { + result = result3; + } } // 鑾峰彇璇ョ珯鐐瑰搴旂殑鍋忕Щ閲� Integer offset = siteOffsetMap.get(siteId); @@ -367,7 +400,7 @@ // staProtocol.setHigh(status[6]); // 楂樺簱浣� // staProtocol.setLow(status[7]); // 浣庡簱浣� - if (!staProtocol.isPakMk() && (!staProtocol.isLoading() || !staProtocol.isInEnable())) { + if (!staProtocol.isPakMk() && (!staProtocol.isLoading() || staProtocol.getWorkNo()==0)) { staProtocol.setPakMk(true); } } @@ -490,7 +523,32 @@ write1 = siemensS7Net.Write("DB102." + (offset + offset2 + 48), staProtocol.getStaNo().intValue()); // 鐩爣绔� }else{ write1 = siemensS7Net.Write("DB102." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔� - } } + } + }else if(siteId < 2031){ + write = siemensS7Net.Write("DB200." + (offset + offset2), staProtocol.getWorkNo()); // 宸ヤ綔鍙� + Thread.sleep(200); + if(specialSites2.contains(siteId)){ + write1 = siemensS7Net.Write("DB200." + (offset + offset2 + 48), staProtocol.getStaNo().intValue()); // 鐩爣绔� + }else{ + write1 = siemensS7Net.Write("DB200." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔� + } + }else if(siteId < 4000){ + write = siemensS7Net.Write("DB201." + (offset + offset2), staProtocol.getWorkNo()); // 宸ヤ綔鍙� + Thread.sleep(200); + if(specialSites2.contains(siteId)){ + write1 = siemensS7Net.Write("DB201." + (offset + offset2 + 48), staProtocol.getStaNo().intValue()); // 鐩爣绔� + }else{ + write1 = siemensS7Net.Write("DB201." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔� + } + }else{ + write = siemensS7Net.Write("DB400." + (offset + offset2), staProtocol.getWorkNo()); // 宸ヤ綔鍙� + Thread.sleep(200); + if(specialSites2.contains(siteId)){ + write1 = siemensS7Net.Write("DB400." + (offset + offset2 + 48), staProtocol.getStaNo().intValue()); // 鐩爣绔� + }else{ + write1 = siemensS7Net.Write("DB400." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔� + } + } if(write.IsSuccess && write1.IsSuccess){ log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); break; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 51ba1fa..a53a9ec 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -477,7 +477,7 @@ # 杈撻�佺嚎1 devp[1]: id: 2 - ip: 10.10.10.50 + ip: 10.10.10.61 port: 102 rack: 0 slot: 0 diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml index 81852a1..749f852 100644 --- a/src/main/resources/mapper/WrkMastStaMapper.xml +++ b/src/main/resources/mapper/WrkMastStaMapper.xml @@ -153,8 +153,13 @@ </select> <select id="selectLockWrk" resultMap="BaseResultMap"> select * from asr_wrk_mast_sta - where mk = 1 - and rgv_no = #{rgvNo} + where wrk_sts > 0 + and sta_end < 2000 + </select> + <select id="selectLockWrkT" resultMap="BaseResultMap"> + select * from asr_wrk_mast_sta + where wrk_sts > 0 + and sta_end > 2000 </select> diff --git a/src/main/webapp/views/rgv.html b/src/main/webapp/views/rgv.html index a36ad90..1fad76a 100644 --- a/src/main/webapp/views/rgv.html +++ b/src/main/webapp/views/rgv.html @@ -91,18 +91,19 @@ <tr> <th>RGV</th> <th>褰撳墠妯″紡</th> - <th>褰撳墠鐘舵��</th> +<!-- <th>褰撳墠鐘舵��</th>--> <th>浠诲姟鍙�</th> <th>宸ヤ綔鐘舵��</th> <th>鏈夌墿</th> <th>RGV浣嶇疆</th> - <th>璧拌瀹氫綅</th> -<!-- <th>浠诲姟鍙�2</th>--> -<!-- <th>鐘舵��2</th>--> -<!-- <th>鏈夌墿2</th>--> +<!-- <th>璧拌瀹氫綅</th>--> <th>鏁呴殰浠g爜</th> <th>鏁呴殰鎻忚堪</th> - <th>閿佸畾鐘舵��</th> + <th>鍏ュ簱鏍囪</th> + <th>鍑哄簱鏍囪</th> + <th>浼樺厛鏀捐揣</th> +<!-- <th>鎺ラ┏鏍囪</th>--> + <th>杩炵画鍙栬揣</th> </tr> </thead> <tbody> @@ -326,7 +327,7 @@ headers: {'token': localStorage.getItem('token')}, method: 'POST', success: function (res) { - // console.log(res) + // console.log(res); if (res.code === 200){ var table = res.data; if (table.length > rgvStateTableBlankRows && table.length !== rgvStateTableFullRows) { @@ -337,18 +338,21 @@ var tr = tableEl.find("tr").eq(i); setVal(tr.children("td").eq(0), table[i-1].rgvNo); setVal(tr.children("td").eq(1), table[i-1].statusType); - setVal(tr.children("td").eq(2), table[i-1].status); - setVal(tr.children("td").eq(3), table[i-1].workNo1); - setVal(tr.children("td").eq(4), table[i-1].status1); - setVal(tr.children("td").eq(5), table[i-1].loading1); - setVal(tr.children("td").eq(6), table[i-1].rgvPos1); - setVal(tr.children("td").eq(7), table[i-1].walkPos); + setVal(tr.children("td").eq(2), table[i-1].workNo1); + setVal(tr.children("td").eq(3), table[i-1].status1); + setVal(tr.children("td").eq(4), table[i-1].loading1); + setVal(tr.children("td").eq(5), table[i-1].rgvPos1); + // setVal(tr.children("td").eq(6), table[i-1].walkPos); // setVal(tr.children("td").eq(8), table[i-1].workNo2); // setVal(tr.children("td").eq(9), table[i-1].status2); // setVal(tr.children("td").eq(10), table[i-1].loading2); - setVal(tr.children("td").eq(8), table[i-1].warnCode); - setVal(tr.children("td").eq(9), table[i-1].alarm); - setVal(tr.children("td").eq(10), table[i-1].pakMk); + setVal(tr.children("td").eq(6), table[i-1].warnCode); + setVal(tr.children("td").eq(7), table[i-1].alarm); + setVal(tr.children("td").eq(8), table[i-1].pakIn); + setVal(tr.children("td").eq(9), table[i-1].pakOut); + setVal(tr.children("td").eq(10), table[i-1].pakRgv); + setVal(tr.children("td").eq(11), table[i-1].pakAll); + } } else if (res.code === 403){ window.location.href = baseUrl+"/login"; -- Gitblit v1.9.1